Name: ffmpeg
URL: http://ffmpeg.org/
License: LGPL 2.1
License File: CREDITS.fuchsia
Upstream Git: git://source.ffmpeg.org/ffmpeg.git
Last Upstream Merge: 6a97ba521558ce131fe839eed2d51ff745280e1d, Feb 11 2018
Description:

This file documents the layout of the Fuchsia copy of FFmpeg, some common
tasks, and how to create the build files and related configurations.

FFmpeg Layout:
==============

Fuchsia's copy of FFmpeg is a fork of the upstream git repository, see the
tags above for the latest merged upstream revision.  All of the
Fuchsia-specific bits, minus the gn files, are located under the fuchsia/
folder off the root.

    BUILD.gn: Has the targets for building FFmpeg for Fuchsia.

    ffmpeg_generated.gni: Pregenerated listing of files necessary to build
      every variation.  See fuchsia/scripts/generate_gn.py for more details.

    fuchsia/scripts: Utilities for building the gn and config files.

    fuchsia/config/...: Pregenerated FFmpeg config options for each profile
      and architecture.

    fuchsia/patches/README: Details of Fuchsia-specific changes that haven't
      yet made it upstream.


Help w/ Common Tasks:
=====================

-- Submitting changes to Fuchsia's FFmpeg Git repository.

The goal of Fuchsia's FFmpeg repository is to just be a mirror of the upstream
Git repository.  This means every change made must be upstreamed.  If you make
a change, please add an entry to fuchsia/patches/README with a link to the
tracking issue and code review for your change.

-- Upstreaming a patch.

  <checkout copy of upstream repo>
  git checkout <hash of last Fuchsia FFmpeg, see tag above> -b my_patch
  git apply <patch. pulled from code review or cherry-picked from this repo>
  git rebase origin/master
  < Follow FFmpeg guide: http://ffmpeg.org/developer.html#Submitting-patches-1 >

Once your change has been upstreamed, please update the fuchsia/patches/README
file with the status.  The next time an upstream merge is done, the committer
will clear out all the patches which have been upstreamed.

-- Cherry-picking a patch from upstream.

  # Tell our repo about the upstream one.
  git remote add upstream git://source.ffmpeg.org/ffmpeg.git
  git fetch upstream

  # Create a new branch based off of master for committing our patch.
  git checkout origin/master -b my_new_branch

  # Pull the patch out of upstream.
  git cherry-pick -x <hash of commit in upstream>

  <Follow rest of "Submitting changes to Fuchsia's FFmpeg Git repository.">


Performing An Upstream Merge
============================

  # Note: upstream/master automatically tracks upstream.

  # Create a new branch based off of master.
  git checkout origin/master -b my_new_branch

  # Merge with master, taking theirs in case of conflicts.
  git merge -X theirs upstream/master
  # Remove removed files.
  git diff --name-only --diff-filter=U | xargs git rm

  # Install nasm
  sudo apt-get install nasm

  # Build the ffmpeg for all profiles and architectures
  ./fuchsia/scripts/build_ffmpeg.py x64
  ./fuchsia/scripts/build_ffmpeg.py arm64

  # Update Fuchsia stuff based on the results of the builds
  ./fuchsia/scripts/copy_config.sh
  ./fuchsia/scripts/generate_gn.py
  ./fuchsia/scripts/remove_unneeded_files.sh

  # Use 'git add' to add new files as necessary (not the build.* dirs)
  # Commit changes
  # Test for regressions
  # Submit
