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
============================

  # Update upstream/master to the desired upstream commit
  TODO(dalesat): details

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

  # Rebase the Fuchsia changes on top of upstream/master in my_new_branch
  TODO(dalesat): details

  # 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
