summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/APIchanges46
-rw-r--r--doc/bitstream_filters.texi2
-rw-r--r--doc/build_system.txt24
-rw-r--r--doc/decoders.texi50
-rw-r--r--doc/demuxers.texi4
-rw-r--r--doc/developer.texi249
-rw-r--r--doc/encoders.texi69
-rw-r--r--doc/eval.texi14
-rw-r--r--doc/faq.texi74
-rw-r--r--doc/fate.txt6
-rw-r--r--doc/ffmpeg-mt-authorship.txt4561
-rw-r--r--doc/ffmpeg.texi18
-rw-r--r--doc/ffplay.texi27
-rw-r--r--doc/ffprobe.texi6
-rw-r--r--doc/ffserver.conf2
-rw-r--r--doc/ffserver.texi4
-rw-r--r--doc/fftools-common-opts.texi2
-rw-r--r--doc/filters.texi310
-rw-r--r--doc/general.texi78
-rw-r--r--doc/git-howto.txt18
-rw-r--r--doc/indevs.texi6
-rw-r--r--doc/issue_tracker.txt39
-rw-r--r--doc/libavfilter.texi8
-rw-r--r--doc/metadata.texi4
-rw-r--r--doc/multithreading.txt4
-rw-r--r--doc/muxers.texi75
-rw-r--r--doc/optimization.txt8
-rw-r--r--doc/outdevs.texi4
-rw-r--r--doc/protocols.texi4
-rw-r--r--doc/soc.txt6
30 files changed, 5451 insertions, 271 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index 90dd0ec10e..fe77697d93 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,19 @@ libavutil: 2011-04-18
API changes, most recent first:
+2011-05-22 - xxxxxx - lavf 53.2.0 - avformat.h
+ Introduce avformat_alloc_output_context2() and deprecate
+ avformat_alloc_output_context().
+
+2011-05-22 - xxxxxx - lavfi 2.10.0 - vsrc_buffer.h
+ Make libavfilter/vsrc_buffer.h public.
+
+2011-05-XX - XXXXXX - lavfi 2.8.0 - avcodec.h
+ Add av_vsrc_buffer_add_frame() to libavfilter/avcodec.h.
+
+2011-05-XX - XXXXXX - lavfi 2.6.0 - avcodec.h
+ Add avfilter_get_video_buffer_ref_from_frame() to libavfilter/avcodec.h.
+
2011-05-25 - 30315a8 - lavf 53.1.0 - avformat.h
Add fps_probe_size to AVFormatContext.
@@ -25,6 +38,30 @@ API changes, most recent first:
min_partition_order, max_partition_order, lpc_type, lpc_passes.
Corresponding FLAC encoder options should be used instead.
+2011-05-07 - xxxxxxx - lavfi 2.5.0 - avcodec.h
+ Add libavfilter/avcodec.h header and avfilter_copy_frame_props()
+ function.
+
+2011-05-07 - xxxxxxx - lavc 53.5.0 - AVFrame
+ Add format field to AVFrame.
+
+2011-05-07 - xxxxxxx - lavc 53.4.0 - AVFrame
+ Add width and height fields to AVFrame.
+
+2011-05-01 - xxxxxxx - lavfi 2.4.0 - avfilter.h
+ Rename AVFilterBufferRefVideoProps.pixel_aspect to
+ sample_aspect_ratio.
+
+2011-05-01 - xxxxxxx - lavc 53.3.0 - AVFrame
+ Add a sample_aspect_ratio field to AVFrame.
+
+2011-05-01 - xxxxxxx - lavc 53.2.0 - AVFrame
+ Add a pkt_pos field to AVFrame.
+
+2011-04-xx - xxxxxxx - lavu 51.2.0 - mem.h
+ Add av_dynarray_add function for adding
+ an element to a dynamic array.
+
2011-04-26 - bebe72f - lavu 51.1.0 - avutil.h
Add AVPictureType enum and av_get_picture_type_char(), deprecate
FF_*_TYPE defines and av_get_pict_type_char() defined in
@@ -127,6 +164,9 @@ API changes, most recent first:
2011-03-25 - 34b47d7 - lavc 52.115.0 - AVCodecContext.audio_service_type
Add audio_service_type field to AVCodecContext.
+2011-XX-XX - XXXXXXX - lavu XX.XXX.X - pixfmt.h
+ Add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE pixel formats
+
2011-03-02 - 863c471 - lavf 52.103.0 - av_pkt_dump2, av_pkt_dump_log2
Add new functions av_pkt_dump2, av_pkt_dump_log2 that uses the
source stream timebase for outputting timestamps. Deprecate
@@ -193,6 +233,12 @@ API changes, most recent first:
2011-02-02 - dfd2a00 - lavu 50.37.0 - log.h
Make av_dlog public.
+2011-01-31 - X - lavfi 1.76.0 - vsrc_buffer
+ Add sample_aspect_ratio fields to vsrc_buffer arguments
+
+2011-01-31 - X - lavfi 1.75.0 - AVFilterLink sample_aspect_ratio
+ Add sample_aspect_ratio field to AVFilterLink.
+
2011-01-15 - r26374 - lavfi 1.74.0 - AVFilterBufferRefAudioProps
Rename AVFilterBufferRefAudioProps.samples_nb to nb_samples.
diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi
index c33fca6c51..1ad67cd5ef 100644
--- a/doc/bitstream_filters.texi
+++ b/doc/bitstream_filters.texi
@@ -1,7 +1,7 @@
@chapter Bitstream Filters
@c man begin BITSTREAM FILTERS
-When you configure your Libav build, all the supported bitstream
+When you configure your FFmpeg build, all the supported bitstream
filters are enabled by default. You can list all available ones using
the configure option @code{--list-bsfs}.
diff --git a/doc/build_system.txt b/doc/build_system.txt
index 1011f57f66..36c141e9e4 100644
--- a/doc/build_system.txt
+++ b/doc/build_system.txt
@@ -1,4 +1,4 @@
-Libav currently uses a custom build system, this text attempts to document
+FFmpeg currently uses a custom build system, this text attempts to document
some of its obscure features and options.
Makefile variables:
@@ -9,13 +9,19 @@ V
DESTDIR
Destination directory for the install targets, useful to prepare packages
- or install Libav in cross-environments.
+ or install FFmpeg in cross-environments.
Makefile targets:
all
Default target, builds all the libraries and the executables.
+fate
+ Run the fate test suite, note you must have installed it
+
+fate-list
+ Will list all fate/regression test targets
+
install
Install headers, libraries and programs.
@@ -28,3 +34,17 @@ libavcodec/api-example
libswscale/swscale-test
Build the swscale self-test (useful also as example).
+
+Useful standard make commands:
+make -t <target>
+ Touch all files that otherwise would be build, this is useful to reduce
+ unneeded rebuilding when changing headers, but note you must force rebuilds
+ of files that actually need it by hand then.
+
+make -j<num>
+ rebuild with multiple jobs at the same time. Faster on multi processor systems
+
+make -k
+ continue build in case of errors, this is useful for the regression tests
+ sometimes but note it will still not run all reg tests.
+
diff --git a/doc/decoders.texi b/doc/decoders.texi
new file mode 100644
index 0000000000..18ac2fa8db
--- /dev/null
+++ b/doc/decoders.texi
@@ -0,0 +1,50 @@
+@chapter Decoders
+@c man begin DECODERS
+
+Decoders are configured elements in FFmpeg which allow the decoding of
+multimedia streams.
+
+When you configure your FFmpeg build, all the supported native decoders
+are enabled by default. Decoders requiring an external library must be enabled
+manually via the corresponding @code{--enable-lib} option. You can list all
+available decoders using the configure option @code{--list-decoders}.
+
+You can disable all the decoders with the configure option
+@code{--disable-decoders} and selectively enable / disable single decoders
+with the options @code{--enable-decoder=@var{DECODER}} /
+@code{--disable-decoder=@var{DECODER}}.
+
+The option @code{-codecs} of the ff* tools will display the list of
+enabled decoders.
+
+@c man end DECODERS
+
+@chapter Video Decoders
+@c man begin VIDEO DECODERS
+
+A description of some of the currently available video decoders
+follows.
+
+@section rawvideo
+
+Rawvideo decoder.
+
+This decoder decodes rawvideo streams.
+
+@subsection Options
+
+@table @option
+@item top @var{top_field_first}
+Specify the assumed field type of the input video.
+@table @option
+@item -1
+the video is assumed to be progressive (default)
+@item 0
+bottom-field-first is assumed
+@item 1
+top-field-first is assumed
+@end table
+
+@end table
+
+@c man end VIDEO DECODERS
diff --git a/doc/demuxers.texi b/doc/demuxers.texi
index 98f9fdeff8..ffaadfe4f9 100644
--- a/doc/demuxers.texi
+++ b/doc/demuxers.texi
@@ -1,10 +1,10 @@
@chapter Demuxers
@c man begin DEMUXERS
-Demuxers are configured elements in Libav which allow to read the
+Demuxers are configured elements in FFmpeg which allow to read the
multimedia streams from a particular type of file.
-When you configure your Libav build, all the supported demuxers
+When you configure your FFmpeg build, all the supported demuxers
are enabled by default. You can list all available ones using the
configure option "--list-demuxers".
diff --git a/doc/developer.texi b/doc/developer.texi
index 37b9f3e889..69c2951620 100644
--- a/doc/developer.texi
+++ b/doc/developer.texi
@@ -23,27 +23,21 @@ audio or video streams.
@end itemize
-@section Integrating libav in your program
-
-Shared libraries should be used whenever is possible in order to reduce
-the effort distributors have to pour to support programs and to ensure
-only the public api is used.
-
-You can use Libav in your commercial program, but you must abide to the
-license, LGPL or GPL depending on the specific features used, please refer
-to @url{http://libav.org/legal.html} for a quick checklist and to
-@url{http://git.libav.org/?p=libav.git;a=blob;f=COPYING.GPLv2},
-@url{http://git.libav.org/?p=libav.git;a=blob;f=COPYING.GPLv3},
-@url{http://git.libav.org/?p=libav.git;a=blob;f=COPYING.LGPLv2.1},
-@url{http://git.libav.org/?p=libav.git;a=blob;f=COPYING.LGPLv3} for the
-exact text of the licenses.
-Any modification to the source code can be suggested for inclusion.
-The best way to proceed is to send your patches to the Libav mailing list.
+@section Integrating libavcodec or libavformat in your program
+
+You can integrate all the source code of the libraries to link them
+statically to avoid any version problem. All you need is to provide a
+'config.mak' and a 'config.h' in the parent directory. See the defines
+generated by ./configure to understand what is needed.
+
+You can use libavcodec or libavformat in your commercial program, but
+@emph{any patch you make must be published}. The best way to proceed is
+to send your patches to the FFmpeg mailing list.
@anchor{Coding Rules}
@section Coding Rules
-Libav is programmed in the ISO C90 language with a few additional
+FFmpeg is programmed in the ISO C90 language with a few additional
features from ISO C99, namely:
@itemize @bullet
@item
@@ -60,7 +54,7 @@ These features are supported by all compilers we care about, so we will not
accept patches to remove their use unless they absolutely do not impair
clarity and performance.
-All code must compile with GCC 2.95 and GCC 3.3. Currently, Libav also
+All code must compile with GCC 2.95 and GCC 3.3. Currently, FFmpeg also
compiles with several other compilers, such as the Compaq ccc compiler
or Sun Studio 9, and we would like to keep it that way unless it would
be exceedingly involved. To ensure compatibility, please do not use any
@@ -82,7 +76,7 @@ The TAB character is forbidden outside of Makefiles as is any
form of trailing whitespace. Commits containing either will be
rejected by the git repository.
-The main priority in Libav is simplicity and small code size in order to
+The main priority in FFmpeg is simplicity and small code size in order to
minimize the bug count.
Comments: Use the JavaDoc/Doxygen
@@ -135,33 +129,17 @@ should also be avoided if they don't make the code easier to understand.
an "or any later version" clause is also acceptable, but LGPL is
preferred.
@item
- All the patches MUST be reviewed in the mailing list before they are
- committed.
-@item
- The Libav coding style should remain consistent. Changes to
- conform will be suggested during the review or implemented on commit.
-@item
- Patches should be generated using @code{git format-patch} or directly sent
- using @code{git send-email}.
- Please make sure you give the proper credit by setting the correct author
- in the commit.
-@item
- The commit message should have a short first line in the form of
- @samp{topic: short description} as header, separated by a newline
- from the body consting in few lines explaining the reason of the patch.
- Referring to the issue on the bug tracker does not exempt to report an
- excerpt of the bug.
+ You must not commit code which breaks FFmpeg! (Meaning unfinished but
+ enabled code which breaks compilation or compiles but does not work or
+ breaks the regression tests)
+ You can commit unfinished stuff (for testing etc), but it must be disabled
+ (#ifdef etc) by default so it does not interfere with other developers'
+ work.
@item
- Work in progress patches should be sent to the mailing list with the [WIP]
- or the [RFC] tag.
-@item
- Branches in public personal repos are advised as way to
- work on issues collaboratively.
-@item
- You do not have to over-test things. If it works for you and you think it
- should work for others, send it to the mailing list for review.
- If you have doubt about portability please state it in the submission so
- people with specific hardware could test it.
+ You do not have to over-test things. If it works for you, and you think it
+ should work for others, then commit. If your code has problems
+ (portability, triggers compiler bugs, unusual environment etc) they will be
+ reported and eventually fixed.
@item
Do not commit unrelated changes together, split them into self-contained
pieces. Also do not forget that if part B depends on part A, but A does not
@@ -169,32 +147,73 @@ should also be avoided if they don't make the code easier to understand.
Keeping changes well split into self-contained parts makes reviewing and
understanding them on the commit log mailing list easier. This also helps
in case of debugging later on.
-@item
- Patches that change behavior of the programs (renaming options etc) or
- public API or ABI should be discussed in depth and possible few days should
- pass between discussion and commit.
- Changes to the build system (Makefiles, configure script) which alter
- the expected behavior should be considered in the same regard.
+ Also if you have doubts about splitting or not splitting, do not hesitate to
+ ask/discuss it on the developer mailing list.
+@item
+ Do not change behavior of the programs (renaming options etc) or public
+ API or ABI without first discussing it on the ffmpeg-devel mailing list.
+ Do not remove functionality from the code. Just improve!
+
+ Note: Redundant code can be removed.
+@item
+ Do not commit changes to the build system (Makefiles, configure script)
+ which change behavior, defaults etc, without asking first. The same
+ applies to compiler warning fixes, trivial looking fixes and to code
+ maintained by other developers. We usually have a reason for doing things
+ the way we do. Send your changes as patches to the ffmpeg-devel mailing
+ list, and if the code maintainers say OK, you may commit. This does not
+ apply to files you wrote and/or maintain.
+@item
+ We refuse source indentation and other cosmetic changes if they are mixed
+ with functional changes, such commits will be rejected and removed. Every
+ developer has his own indentation style, you should not change it. Of course
+ if you (re)write something, you can use your own style, even though we would
+ prefer if the indentation throughout FFmpeg was consistent (Many projects
+ force a given indentation style - we do not.). If you really need to make
+ indentation changes (try to avoid this), separate them strictly from real
+ changes.
+
+ NOTE: If you had to put if()@{ .. @} over a large (> 5 lines) chunk of code,
+ then either do NOT change the indentation of the inner part within (do not
+ move it to the right)! or do so in a separate commit
+@item
+ Always fill out the commit log message. Describe in a few lines what you
+ changed and why. You can refer to mailing list postings if you fix a
+ particular bug. Comments such as "fixed!" or "Changed it." are unacceptable.
+ Recommanded format:
+ area changed: Short 1 line description
+
+ details describing what and why and giving references.
+@item
+ Make sure the author of the commit is set correctly. (see git commit --author)
+ If you apply a patch, send an
+ answer to ffmpeg-devel (or wherever you got the patch from) saying that
+ you applied the patch.
@item
When applying patches that have been discussed (at length) on the mailing
list, reference the thread in the log message.
@item
- Subscribe to the libav-devel and libav-commits mailing list.
- Bugs and possible improvements or general questions regarding commits
- are discussed on libav-devel. We expect you to react if problems with
- your code are uncovered.
+ Do NOT commit to code actively maintained by others without permission.
+ Send a patch to ffmpeg-devel instead. If no one answers within a reasonable
+ timeframe (12h for build failures and security fixes, 3 days small changes,
+ 1 week for big patches) then commit your patch if you think it is OK.
+ Also note, the maintainer can simply ask for more time to review!
+@item
+ Subscribe to the ffmpeg-cvslog mailing list. The diffs of all commits
+ are sent there and reviewed by all the other developers. Bugs and possible
+ improvements or general questions regarding commits are discussed there. We
+ expect you to react if problems with your code are uncovered.
@item
Update the documentation if you change behavior or add features. If you are
- unsure how best to do this, send an [RFC] patch to libav-devel.
+ unsure how best to do this, send a patch to ffmpeg-devel, the documentation
+ maintainer(s) will review and commit your stuff.
@item
- All discussions and decisions should be reported on the public developer
- mailing list, so that there is a reference to them.
- Other media (e.g. IRC) should be used for coordination and immediate
- collaboration.
+ Try to keep important discussions and requests (also) on the public
+ developer mailing list, so that all developers can benefit from them.
@item
Never write to unallocated memory, never write over the end of arrays,
always check values read from some untrusted source before using them
- as array index or other risky things. Always use valgrind to doublecheck.
+ as array index or other risky things.
@item
Remember to check if you need to bump versions for the specific libav
parts (libavutil, libavcodec, libavformat) you are changing. You need
@@ -207,12 +226,13 @@ should also be avoided if they don't make the code easier to understand.
Incrementing the third component means a noteworthy binary compatible
change (e.g. encoder bug fix that matters for the decoder).
@item
- Compiler warnings indicate potential bugs or code with bad style.
+ Compiler warnings indicate potential bugs or code with bad style. If a type of
+ warning always points to correct and clean code, that warning should
+ be disabled, not the code changed.
+ Thus the remaining warnings can either be bugs or correct code.
If it is a bug, the bug has to be fixed. If it is not, the code should
be changed to not generate a warning unless that causes a slowdown
or obfuscates the code.
- If a type of warning leads to too many false positives, that warning
- should be disabled, not the code changed.
@item
If you add a new file, give it a proper license header. Do not copy and
paste it from a random place, use an existing file as template.
@@ -220,48 +240,45 @@ should also be avoided if they don't make the code easier to understand.
We think our rules are not too hard. If you have comments, contact us.
-Note, some rules were borrowed from the MPlayer project.
+Note, these rules are mostly borrowed from the MPlayer project.
@section Submitting patches
-First, read the (@pxref{Coding Rules}) above if you did not yet, in particular
-the rules regarding patch submission.
+First, read the (@pxref{Coding Rules}) above if you did not yet.
-As stated already, please do not submit a patch which contains several
-unrelated changes.
+When you submit your patch, please use @code{git format-patch} or
+@code{git send-email}. We cannot read other diffs :-)
+
+Also please do not submit a patch which contains several unrelated changes.
Split it into separate, self-contained pieces. This does not mean splitting
file by file. Instead, make the patch as small as possible while still
keeping it as a logical unit that contains an individual change, even
if it spans multiple files. This makes reviewing your patches much easier
for us and greatly increases your chances of getting your patch applied.
-Use the patcheck tool of Libav to check your patch.
+Use the patcheck tool of FFmpeg to check your patch.
The tool is located in the tools directory.
-Run the @pxref{Regression Tests} before submitting a patch in order to verify
-it does not cause unexpected problems.
+Run the regression tests before submitting a patch so that you can
+verify that there are no big problems.
Patches should be posted as base64 encoded attachments (or any other
encoding which ensures that the patch will not be trashed during
-transmission) to the libav-devel mailing list, see
-@url{https://lists.libav.org/mailman/listinfo/libav-devel}
+transmission) to the ffmpeg-devel mailing list, see
+@url{http://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel}
It also helps quite a bit if you tell us what the patch does (for example
'replaces lrint by lrintf'), and why (for example '*BSD isn't C99 compliant
-and has no lrint()'). This kind of explanation should be the body of the
-commit message.
+and has no lrint()')
Also please if you send several patches, send each patch as a separate mail,
do not attach several unrelated patches to the same mail.
-Use @code{git send-email} when possible since it will properly send patches
-without requiring extra care.
-
Your patch will be reviewed on the mailing list. You will likely be asked
to make some changes and are expected to send in an improved version that
incorporates the requests from the review. This process may go through
-several iterations. Once your patch is deemed good enough, it will be
-committed to the official Libav tree.
+several iterations. Once your patch is deemed good enough, some developer
+will pick it up and commit it to the official FFmpeg tree.
Give us a few days to react. But if some time passes without reaction,
send a reminder by email. Your patch should eventually be dealt with.
@@ -287,8 +304,8 @@ send a reminder by email. Your patch should eventually be dealt with.
even if it is only a decoder?
@item
Did you add a rule to compile the appropriate files in the Makefile?
- Remember to do this even if you are just adding a format to a file that
- is already being compiled by some other rule, like a raw demuxer.
+ Remember to do this even if you're just adding a format to a file that is
+ already being compiled by some other rule, like a raw demuxer.
@item
Did you add an entry to the table of supported formats or codecs in
@file{doc/general.texi}?
@@ -310,15 +327,20 @@ send a reminder by email. Your patch should eventually be dealt with.
@enumerate
@item
- Do the regression tests pass with the patch applied?
+ Does 'make fate' pass with the patch applied?
+@item
+ Was the patch generated with git format-patch or send-email?
+@item
+ Did you sign off your patch? (git commit -s)
+ See @url{http://kerneltrap.org/files/Jeremy/DCO.txt} for the meaning
+ of sign off.
@item
- Does @code{make checkheaders} pass with the patch applied?
+ Did you provide a clear git commit log message?
@item
- Is the patch against latest Libav git master branch?
+ Is the patch against latest FFmpeg git master branch?
@item
- Are you subscribed to libav-devel?
- (@url{https://lists.libav.org/mailman/listinfo/libav-devel}
- the list is subscribers)
+ Are you subscribed to ffmpeg-dev?
+ (the list is subscribers only due to spam)
@item
Have you checked that the changes are minimal, so that the same cannot be
achieved with a smaller patch and/or simpler final code?
@@ -348,7 +370,7 @@ send a reminder by email. Your patch should eventually be dealt with.
If the patch fixes a bug, did you provide enough information, including
a sample, so the bug can be reproduced and the fix can be verified?
Note please do not attach samples >100k to mails but rather provide a
- URL, you can upload to ftp://upload.libav.org
+ URL, you can upload to ftp://upload.ffmpeg.org
@item
Did you provide a verbose summary about what the patch does change?
@item
@@ -361,18 +383,22 @@ send a reminder by email. Your patch should eventually be dealt with.
patch easily?
@item
If you added a new file, did you insert a license header? It should be
- taken from Libav, not randomly copied and pasted from somewhere else.
+ taken from FFmpeg, not randomly copied and pasted from somewhere else.
@item
You should maintain alphabetical order in alphabetically ordered lists as
long as doing so does not break API/ABI compatibility.
@item
Lines with similar content should be aligned vertically when doing so
improves readability.
+@item
+ Consider to add a regression test for your code.
+@item
+ If you added YASM code please check that things still work with --disable-yasm
@end enumerate
@section Patch review process
-All patches posted to libav-devel will be reviewed, unless they contain a
+All patches posted to ffmpeg-devel will be reviewed, unless they contain a
clear note that the patch is not for the git master branch.
Reviews and comments will be posted as replies to the patch on the
mailing list. The patch submitter then has to take care of every comment,
@@ -386,22 +412,37 @@ After a patch is approved it will be committed to the repository.
We will review all submitted patches, but sometimes we are quite busy so
especially for large patches this can take several weeks.
-When resubmitting patches, if their size grew or during the review different
-issues arisen please split the patch so each issue has a specific patch.
+When resubmitting patches, please do not make any significant changes
+not related to the comments received during review. Such patches will
+be rejected. Instead, submit significant changes or new features as
+separate patches.
+
+@section Regression tests
+
+Before submitting a patch (or committing to the repository), you should at least
+test that you did not break anything.
-@anchor{Regression Tests}
-@section Regression Tests
+The regression tests build a synthetic video stream and a synthetic
+audio stream. These are then encoded and decoded with all codecs or
+formats. The CRC (or MD5) of each generated file is recorded in a
+result file. A 'diff' is launched to compare the reference results and
+the result file. The output is checked immediately after each test
+has run.
-Before submitting a patch (or committing to the repository), you should at
-least make sure that it does not break anything.
+The regression tests then go on to test the FFserver code with a
+limited set of streams. It is important that this step runs correctly
+as well.
-If the code changed has already a test present in FATE you should run it,
-otherwise it is advised to add it.
+Run 'make test' to test all the codecs and formats. Commands like
+'make regtest-mpeg2' can be used to run a single test. By default,
+make will abort if any test fails. To run all tests regardless,
+use make -k. To get a more verbose output, use 'make V=1 test' or
+'make V=2 test'.
-Improvements to codec or demuxer might change the FATE results. Make sure
-to commit the update reference with the change and to explain in the comment
-why the expected result changed.
+Run 'make fulltest' to test all the codecs, formats and FFserver.
-Please refer to @file{doc/fate.txt}.
+[Of course, some patches may change the results of the regression tests. In
+this case, the reference results of the regression tests shall be modified
+accordingly].
@bye
diff --git a/doc/encoders.texi b/doc/encoders.texi
index d507b66f51..9b5c2af008 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -1,10 +1,10 @@
@chapter Encoders
@c man begin ENCODERS
-Encoders are configured elements in Libav which allow the encoding of
+Encoders are configured elements in FFmpeg which allow the encoding of
multimedia streams.
-When you configure your Libav build, all the supported native encoders
+When you configure your FFmpeg build, all the supported native encoders
are enabled by default. Encoders requiring an external library must be enabled
manually via the corresponding @code{--enable-lib} option. You can list all
available encoders using the configure option @code{--list-encoders}.
@@ -369,6 +369,71 @@ is highly recommended that it be left as enabled except for testing purposes.
@end table
+@c man end AUDIO ENCODERS
+
+@chapter Video Encoders
+@c man begin VIDEO ENCODERS
+
+A description of some of the currently available video encoders
+follows.
+
+@section libx264
+
+H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 format supported through
+libx264.
+
+Requires the presence of the libx64 headers and library during
+configuration. You need to explicitely configure the build with
+@code{--enable-libx264}.
+
+@subsection Options
+
+@table @option
+
+@item preset @var{preset_name}
+Set the encoding preset.
+
+@item tune @var{tune_name}
+Tune the encoding params.
+Deprecated in favor of @var{x264_opts}
+
+@item fastfirstpass @var{bool}
+Use fast settings when encoding first pass, default value is 1.
+Deprecated in favor of @var{x264_opts}.
+
+@item profile @var{profile_name}
+Set profile restrictions.
+Deprecated in favor of @var{x264_opts}.
+
+@item level @var{level}
+Specify level (as defined by Annex A).
+Deprecated in favor of @var{x264_opts}.
+
+@item passlogfile @var{filename}
+Specify filename for 2 pass stats.
+Deprecated in favor of @var{x264_opts}.
+
+@item wpredp @var{wpred_type}
+Specify Weighted prediction for P-frames.
+Deprecated in favor of @var{x264_opts}.
+
+@item x264opts @var{options}
+Allow to set any x264 option, see x264 manual for a list.
+
+@var{options} is a list of @var{key}=@var{value} couples separated by
+":".
+@end table
+
+For example to specify libx264 encoding options with @file{ffmpeg}:
+@example
+ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
+@end example
+
+For more information about libx264 and the supported options see:
+@url{http://www.videolan.org/developers/x264.html}
+
+@c man end VIDEO ENCODERS
+
@subheading Floating-Point-Only AC-3 Encoding Options
These options are only valid for the floating-point encoder and do not exist
diff --git a/doc/eval.texi b/doc/eval.texi
index d8c693f304..25c0ea6524 100644
--- a/doc/eval.texi
+++ b/doc/eval.texi
@@ -1,7 +1,7 @@
@chapter Expression Evaluation
@c man begin EXPRESSION EVALUATION
-When evaluating an arithemetic expression, Libav uses an internal
+When evaluating an arithemetic expression, FFmpeg uses an internal
formula evaluator, implemented through the @file{libavutil/eval.h}
interface.
@@ -72,6 +72,13 @@ integer. For example, "floor(-1.5)" is "-2.0".
@item trunc(expr)
Round the value of expression @var{expr} towards zero to the nearest
integer. For example, "trunc(-1.5)" is "-1.0".
+
+@item sqrt(expr)
+Compute the square root of @var{expr}. This is equivalent to
+"(@var{expr})^.5".
+
+@item not(expr)
+Return 1.0 if @var{expr} is zero, 0.0 otherwise.
@end table
Note that:
@@ -89,11 +96,6 @@ is equivalent to
A*B + not(A)*C
@end example
-When A evaluates to either 1 or 0, that is the same as
-@example
-A*B + eq(A,0)*C
-@end example
-
In your C code, you can extend the list of unary and binary functions,
and define recognized constants, so that they are available for your
expressions.
diff --git a/doc/faq.texi b/doc/faq.texi
index 3d7a275f89..225f139b3c 100644
--- a/doc/faq.texi
+++ b/doc/faq.texi
@@ -1,8 +1,8 @@
\input texinfo @c -*- texinfo -*-
-@settitle Libav FAQ
+@settitle FFmpeg FAQ
@titlepage
-@center @titlefont{Libav FAQ}
+@center @titlefont{FFmpeg FAQ}
@end titlepage
@top
@@ -11,43 +11,43 @@
@chapter General Questions
-@section When will the next Libav version be released? / Why are Libav releases so few and far between?
+@section When will the next FFmpeg version be released? / Why are FFmpeg releases so few and far between?
-Like most open source projects Libav suffers from a certain lack of
+Like most open source projects FFmpeg suffers from a certain lack of
manpower. For this reason the developers have to prioritize the work
they do and putting out releases is not at the top of the list, fixing
bugs and reviewing patches takes precedence. Please don't complain or
request more timely and/or frequent releases unless you are willing to
help out creating them.
-@section I have a problem with an old version of Libav; where should I report it?
-Nowhere. We do not support old Libav versions in any way, we simply lack
+@section I have a problem with an old version of FFmpeg; where should I report it?
+Nowhere. We do not support old FFmpeg versions in any way, we simply lack
the time, motivation and manpower to do so. If you have a problem with an
-old version of Libav, upgrade to the latest git snapshot. If you
+old version of FFmpeg, upgrade to the latest git snapshot. If you
still experience the problem, then you can report it according to the
-guidelines in @url{http://libav.org/bugreports.html}.
+guidelines in @url{http://ffmpeg.org/bugreports.html}.
-@section Why doesn't Libav support feature [xyz]?
+@section Why doesn't FFmpeg support feature [xyz]?
-Because no one has taken on that task yet. Libav development is
+Because no one has taken on that task yet. FFmpeg development is
driven by the tasks that are important to the individual developers.
If there is a feature that is important to you, the best way to get
it implemented is to undertake the task yourself or sponsor a developer.
-@section Libav does not support codec XXX. Can you include a Windows DLL loader to support it?
+@section FFmpeg does not support codec XXX. Can you include a Windows DLL loader to support it?
No. Windows DLLs are not portable, bloated and often slow.
-Moreover Libav strives to support all codecs natively.
+Moreover FFmpeg strives to support all codecs natively.
A DLL loader is not conducive to that goal.
-@section My bug report/mail to libav-devel/user has not received any replies.
+@section My bug report/mail to ffmpeg-devel/user has not received any replies.
Likely reasons
@itemize
@item We are busy and haven't had time yet to read your report or
investigate the issue.
-@item You didn't follow @url{http://libav.org/bugreports.html}.
-@item You didn't use git master.
+@item You didn't follow @url{http://ffmpeg.org/bugreports.html}.
+@item You didn't use git HEAD.
@item You reported a segmentation fault without gdb output.
@item You describe a problem but not how to reproduce it.
@item It's unclear if you use ffmpeg as command line tool or use
@@ -55,10 +55,10 @@ libav* from another application.
@item You speak about a video having problems on playback but
not what you use to play it.
@item We have no faint clue what you are talking about besides
-that it is related to Libav.
+that it is related to FFmpeg.
@end itemize
-@section Is there a forum for Libav? I do not like mailing lists.
+@section Is there a forum for FFmpeg? I do not like mailing lists.
You may view our mailing lists with a more forum-alike look here:
@url{http://dir.gmane.org/gmane.comp.video.ffmpeg.user},
@@ -124,7 +124,7 @@ problem and an NP-hard problem...
@section ffmpeg does not work; what is wrong?
Try a @code{make distclean} in the ffmpeg source directory before the build. If this does not help see
-(@url{http://libav.org/bugreports.html}).
+(@url{http://ffmpeg.org/bugreports.html}).
@section How do I encode single pictures into movies?
@@ -272,7 +272,7 @@ material, and try '-top 0/1' if the result looks really messed-up.
@section How can I read DirectShow files?
-If you have built Libav with @code{./configure --enable-avisynth}
+If you have built FFmpeg with @code{./configure --enable-avisynth}
(only possible on MinGW/Cygwin platforms),
then you may use any file that DirectShow can read as input.
@@ -368,11 +368,11 @@ examining all of the vbv_delay values and making complicated computations."
@chapter Development
-@section Are there examples illustrating how to use the Libav libraries, particularly libavcodec and libavformat?
+@section Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat?
-Yes. Read the Developers Guide of the Libav documentation. Alternatively,
+Yes. Read the Developers Guide of the FFmpeg documentation. Alternatively,
examine the source code for one of the many open source projects that
-already incorporate Libav at (@url{projects.html}).
+already incorporate FFmpeg at (@url{projects.html}).
@section Can you support my C compiler XXX?
@@ -383,14 +383,14 @@ with @code{#ifdef}s related to the compiler.
@section Is Microsoft Visual C++ supported?
No. Microsoft Visual C++ is not compliant to the C99 standard and does
-not - among other things - support the inline assembly used in Libav.
+not - among other things - support the inline assembly used in FFmpeg.
If you wish to use MSVC++ for your
project then you can link the MSVC++ code with libav* as long as
you compile the latter with a working C compiler. For more information, see
-the @emph{Microsoft Visual C++ compatibility} section in the Libav
+the @emph{Microsoft Visual C++ compatibility} section in the FFmpeg
documentation.
-There have been efforts to make Libav compatible with MSVC++ in the
+There have been efforts to make FFmpeg compatible with MSVC++ in the
past. However, they have all been rejected as too intrusive, especially
since MinGW does the job adequately. None of the core developers
work with MSVC++ and thus this item is low priority. Should you find
@@ -398,23 +398,33 @@ the silver bullet that solves this problem, feel free to shoot it at us.
We strongly recommend you to move over from MSVC++ to MinGW tools.
-@section Can I use Libav or libavcodec under Windows?
+@section Can I use FFmpeg or libavcodec under Windows?
-Yes, but the Cygwin or MinGW tools @emph{must} be used to compile Libav.
-Read the @emph{Windows} section in the Libav documentation to find more
+Yes, but the Cygwin or MinGW tools @emph{must} be used to compile FFmpeg.
+Read the @emph{Windows} section in the FFmpeg documentation to find more
information.
+To get help and instructions for building FFmpeg under Windows, check out
+the FFmpeg Windows Help Forum at
+@url{http://ffmpeg.arrozcru.org/}.
+
@section Can you add automake, libtool or autoconf support?
No. These tools are too bloated and they complicate the build.
@section Why not rewrite ffmpeg in object-oriented C++?
-Libav is already organized in a highly modular manner and does not need to
+FFmpeg is already organized in a highly modular manner and does not need to
be rewritten in a formal object language. Further, many of the developers
favor straight C; it works for them. For more arguments on this matter,
read "Programming Religion" at (@url{http://www.tux.org/lkml/#s15}).
+@section Why are the ffmpeg programs devoid of debugging symbols?
+
+The build process creates ffmpeg_g, ffplay_g, etc. which contain full debug
+information. Those binaries are stripped to create ffmpeg, ffplay, etc. If
+you need the debug information, use the *_g versions.
+
@section I do not like the LGPL, can I contribute code under the GPL instead?
Yes, as long as the code is optional and can easily and cleanly be placed
@@ -431,16 +441,16 @@ the compilation failure then you are probably not qualified for this.
@section I'm using libavcodec from within my C++ application but the linker complains about missing symbols which seem to be available.
-Libav is a pure C project, so to use the libraries within your C++ application
+FFmpeg is a pure C project, so to use the libraries within your C++ application
you need to explicitly state that you are using a C library. You can do this by
-encompassing your Libav includes using @code{extern "C"}.
+encompassing your FFmpeg includes using @code{extern "C"}.
See @url{http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.3}
@section I have a file in memory / a API different from *open/*read/ libc how do I use it with libavformat?
You have to implement a URLProtocol, see @file{libavformat/file.c} in
-Libav and @file{libmpdemux/demux_lavf.c} in MPlayer sources.
+FFmpeg and @file{libmpdemux/demux_lavf.c} in MPlayer sources.
@section I get "No compatible shell script interpreter found." in MSys.
diff --git a/doc/fate.txt b/doc/fate.txt
index b23d3f6a64..6ca302c024 100644
--- a/doc/fate.txt
+++ b/doc/fate.txt
@@ -1,19 +1,19 @@
FATE Automated Testing Environment
FATE provides a regression testsuite that can be run locally or configured
-to send reports to fate.libav.org.
+to send reports to fate.ffmpeg.org.
In order to run, it needs a large amount of data (samples and references)
that is provided separately from the actual source distribution.
Use the following command to get the fate test samples
-# rsync -aL rsync://fate-suite.libav.org:/fate-suite/ fate-suite
+# make fate-rsync SAMPLES=fate-suite/
To inform the build system about the testsuite location, pass
`--samples=<path to the samples>` to configure or set the SAMPLES Make
variable or the FATE_SAMPLES environment variable to a suitable value.
-For information on how to set up FATE to send results to the official Libav
+For information on how to set up FATE to send results to the official FFmpeg
testing framework, please refer to the following wiki page:
http://wiki.multimedia.cx/index.php?title=FATE
diff --git a/doc/ffmpeg-mt-authorship.txt b/doc/ffmpeg-mt-authorship.txt
new file mode 100644
index 0000000000..d8c405f948
--- /dev/null
+++ b/doc/ffmpeg-mt-authorship.txt
@@ -0,0 +1,4561 @@
+This file lists authorship of commits that have been merged from
+ffmpeg-mt. These commits where not classically merged because this
+would have pulled in duplicated history of all commits in ffmpeg.
+Which a majority of developers opposed.
+
+
+commit 002a0939cdf01faa8270d41b3045c08ac12d8975
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 20:24:36 2010 -0500
+
+ Update todo
+
+commit 0040d6f2ba7189ca9bab4cf17c0d150416391dec
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 18:33:16 2010 -0500
+
+ Remove a malloc() per frame by keeping an array of 32 buffers.
+
+ Requested in original review. Should be slightly faster but does
+ have a 32-element linear search (since buffers are freed out of order).
+
+ Introducing array_next_nonzero or something would speed up this
+ and h264 decoding.
+
+commit 00425e98fba903dceecb89763b57b8f3b7a1abf3
+Merge: 20997d6 e320c22
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 2 04:59:42 2009 -0400
+
+ Merge mainline.
+
+ Having to move the setting of key_frame confused me for far too
+ long.
+
+commit 0097d3b01e33d1e0f636a19778a0435a730d4590
+Merge: 9e981c8 44c4fd1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 9 19:19:34 2010 -0400
+
+ Merge mainline and libswscale.
+
+ Another one coming after h264 is converted to yasm.
+
+ Conflicts:
+ libavcodec/avcodec.h
+
+commit 00bbca77f3fe0960cbf0986ea214ce022204837c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 16 02:18:12 2011 -0500
+
+ h264: Early-exit condition for await_references()
+
+ Saves even more zero checking in refs[][], although it still leaves many
+ useless checks when nrefs[i]>1, because the array indexes are scattered.
+
+ About ~.8% faster decoding.
+
+commit 00c4b0bb5a7801d14627015d38762ec314639d3d
+Merge: 63d086d feadf1b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Mar 13 23:50:33 2009 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h263.c
+ libavcodec/h263dec.c
+ libavcodec/h264.c
+ libavcodec/mpeg12.c
+ libavcodec/mpegvideo.c
+ libavcodec/options.c
+ libavutil/log.c
+
+commit 01006069782b1b8fe0bfe0eabe4876062e057c11
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jan 13 01:30:01 2009 -0500
+
+ Fix possibly not allocating obmc_scratchpad with PAFF/weighted prediction
+
+commit 011a76824f384a315ce4b0474a2811d463b5746b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Sep 1 00:40:40 2008 -0400
+
+ Whitespace and variable name cosmetics for clarity.
+
+commit 02376cec6531a931330798af67c62a029a3435a1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 11 14:40:27 2009 -0700
+
+ Normalize how decode_postinit() is called.
+
+ Move it next to the hwaccel call to save an if statement.
+
+commit 031abc50708c616058020dcf7a1b62bc9b895446
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Aug 22 20:43:38 2008 -0400
+
+ Improve comments in thread.h
+
+commit 032432ad56fd88a7e9ba6ce9ccd39925854b027a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 20:48:10 2010 -0500
+
+ Remove FF_THREAD_DEFAULT.
+
+ It obviously makes no sense to define the default in a public header.
+
+commit 03980f22907206b52e64439ebcc4445719801035
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 11 17:22:22 2008 -0400
+
+ Mark functions inline to avoid unused function warnings.
+
+commit 0488ed2d9ff609ec4a6be008c81603b62ce67785
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 4 15:55:00 2008 -0400
+
+ Align the stack in decode_frame_thread.
+
+commit 0553196aa797d58f0687890c66e1b1cdfa52f419
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 00:44:13 2008 -0400
+
+ Add the frame-threading support code.
+
+commit 056dce6c969acec1224eaa9fc73d930d1e56b299
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Aug 15 16:44:33 2008 -0400
+
+ h264: Redo finding the output frame during header parsing after merging mainline.
+
+ This works with PAFF and CODEC_FLAG2_CHUNKS, though the second is useless and should be removed.
+
+commit 05a3af85edd15fef223f0376d3241cc5c7aa3ed5
+Merge: 8ba50a9 fa43cf8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Apr 19 02:41:54 2010 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+
+commit 05e37cada02dc1ac58e7ce93418cbf33e3a09ad6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 27 21:00:34 2008 -0400
+
+ Add the AVCodec/AVCodecContext fields needed for multithreading and increment the API minor version.
+
+commit 061586a260a564080be8c1ed9af4e83888fe3543
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 4 01:41:53 2008 -0400
+
+ Remove error check that can never fail.
+
+commit 06407ff8706c7fe28c5b925c4b1dd52641714cb9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 16 18:21:04 2008 -0400
+
+ Multithreading support for MPEG-1.
+
+commit 065ee0d04a6539c08bddfa1edc628906494c22f2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 1 12:24:37 2010 -0400
+
+ vp3: Report INT_MAX instead of height at the end of a frame
+
+ This saves having to clip to height in await_reference_row.
+
+commit 067c30c63499d5cca5613725de936fb70047aec3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 22 03:29:23 2008 -0400
+
+ Cosmetics: opening function braces on their own line.
+
+commit 06ac5ac98dbf03889eb7cccf67fe0cb95615613d
+Merge: febe154 987789a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 20 04:29:03 2010 -0700
+
+ Merge mainline.
+
+ Document ONLY_IF_THREADS_ENABLED along the way.
+
+ Conflicts:
+ libavutil/internal.h
+
+commit 07474003407915e5462ed3582a1dae8baa06f296
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 10 11:25:48 2009 -0700
+
+ Move frame_thread_init() down to avoid prototyping its callees.
+
+commit 076bf916d79c39ec055a53f2ee5eadf20c21b988
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 25 14:32:41 2008 -0400
+
+ Increase max delayed buffers for safety
+
+commit 079cd64ef92cb1670a420a16e38c645cc8f28caa
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Sep 2 11:38:29 2008 -0400
+
+ Ignore codecs returning NULL when draining frames.
+
+commit 090c1f4c99b9c5cefa3bad7698f33516baa87c6e
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue Nov 6 13:08:04 2007 +0000
+
+ fix predictor initialization for adpcm-ima encoder not to lose first sample
+ in block in adpcm-ima decoder
+ Patch by Timofei V. Bondarenko: tim commit 09bb0dafa746203f98ff478a5121b3b0ffb3f46e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jul 22 22:20:47 2008 -0400
+
+ Switch from MB row to pixel row precision for h264 progress.
+
+ This makes it easier to think about interlacing and the deblock filter, and also fixes decoding entirely.
+
+commit 0a51c1e9ebf09d302e44daaca3147e7cca2f0457
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 3 16:04:31 2008 -0400
+
+ Use threading macros in mpeg12.c.
+
+commit 0ac282b447075a0645036fba56d2881bbcc8f471
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 17 03:44:26 2011 -0500
+
+ Update multithreading.txt for thread_safe_callbacks and pkt_dts
+
+commit 0b64ceb6b15560313d0a6ac7cffe9270d7b8e0e8
+Merge: 9ec9f08 e220e91
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 10 03:22:51 2010 -0700
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+
+commit 0b8add0862f841dfc8dbbc8d89dfb3712ce3a698
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 16:47:21 2008 -0400
+
+ Allow avcodec_default_release_buffer to be called after avcodec_default_free_buffers.
+
+commit 0b8c3d23339b5f646ae702f30141e223596f9ff9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 27 21:55:53 2008 -0400
+
+ Reindent.
+
+commit 0be0d5714347f63b0e391ad3e9202f9d5107bb5f
+Merge: f550857 8c00628
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Mar 28 03:40:27 2010 -0400
+
+ Merge mainline.
+
+commit 0c73945d0cc40a6ade8ca78dfa0d9bea178f4743
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 01:07:17 2008 -0400
+
+ Clarify comment for new AVFrame members
+
+ They are set by libavcodec even if they aren't used for anything useful ATM.
+
+commit 0cac0f3bd81287db20bbbae5aaff22e381e09663
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 13 02:40:22 2008 -0400
+
+ Add report/await_decode_progress for progressive H264
+ Multithreading works with no visible problems for progressive sequences, but there is still some problem causing framecrc differences.
+ 1 thread - 99% cpu 14s
+ 2 threads - 183% cpu 8.6s
+
+commit 0cae6d85e8a33b826611ced69902f2a4d16f0c7a
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Fri Jun 1 12:03:33 2007 +0000
+
+ A bit more clear FAQ 1.2
+ Patch by V
+�commit 0d25fc9993407335bc98b91296f9f78b634dd8a0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 24 21:39:39 2008 -0400
+
+ Remove newly-duplicated memset().
+
+commit 0e41f7596f06a758c0f1cb9e48e67ef896c5c05a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 11 18:09:02 2008 -0400
+
+ Reindent.
+
+commit 0ef99ed28b24757a30b1e805f2ff1ea6d90b9b71
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 25 03:17:46 2010 -0500
+
+ Remove item from todo
+
+commit 0fad6cca0a7e34dfa62c3934eb5316e2c9649e66
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jul 22 01:00:07 2008 -0400
+
+ Fix height passed to ff_draw_band for interlaced H.264.
+
+ Without this, it passes y 0 h 16, y 32 h 16, etc.
+
+commit 0fb994fbdbf4f985ec9c0d5a681e7a5bf620a765
+Merge: 5eb0c64 ace7af3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jan 20 01:58:15 2010 -0500
+
+ Merge mainline.
+
+ This was done by hand since git can't track the h264/h263 decoder
+ splits properly.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h263.c
+ libavcodec/h263dec.c
+ libavcodec/h264.c
+
+commit 0ff629947b15955603cdb7978770ca64c2323262
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 18 05:09:01 2009 -0400
+
+ Don't call report_field_progress for non-referenced H264 frames.
+
+commit 111fa56db1bfefc245c499f465783a5abc04f7c2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 19 00:12:00 2008 -0400
+
+ Set start/end_mb_y properly in MpegEncContext.
+
+commit 115adc279240b6c7155781b5a16177a140eaad4f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 21 23:10:18 2008 -0400
+
+ Add an update_context for codecs that just use MpegEncContext.
+
+commit 116ca147f03ca02b55c2fceef7b82c1b251b32f6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 14:10:31 2008 -0400
+
+ Merge fallout: move AVCodec additions back to the end of the struct
+
+commit 11b1a8ee92128524a3259903c28da54ffd9a60fa
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 30 10:02:16 2010 -0700
+
+ Update todo.
+
+ I appear to have fixed the bug (the problem doesn't show in test.sh
+ anymore). Of course, there might be more.
+
+commit 120d790a3918f77444eed295aec6d8c34e4b532a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 17 18:00:07 2008 -0400
+
+ Simplify draw_edges changes and handle interlacing properly.
+
+commit 1239bcba12d0c57005ae59405e8b080ac3c7bd65
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 18:59:29 2008 -0400
+
+ Simplify: store FrameThreadContext in the user's context.
+
+commit 1292a1840bb5319f1438b63b7be35363ba4fe5b6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jan 13 01:33:47 2009 -0500
+
+ Copy width/height between thread contexts for all codecs.
+
+ This makes it user-visible and fixes compatibility with
+ bad demuxers that don't set it in avctx.
+
+commit 12c5de8ead7c7a1b4c03eb095a2db4357aa2538d
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Thu Jan 3 08:39:38 2008 +0000
+
+ Make filterDelimiters and optionDelimiters two static constant array of
+ characters, should move them to .rodata.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit 1327c17ca423f248dbce8172476dd69208f7d74b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat May 23 21:52:24 2009 -0400
+
+ Stopgap hack: don't crash with size-changing streams+frame threads
+
+ MPEG1 and H.264 need their own checks, otherwise they immediately
+ deallocate shared data and crash. Another check is added to get_buffer
+ to cover remaining codecs (although it may not actually do this).
+
+ This currently involves ugly code duplication, which can hopefully
+ be eventually removed. Unfortunately this is already not handled
+ well on mainline (such as in the previous commit).
+
+commit 138ec8aad228862d58582aa4bbd367b7fa7b8d81
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 24 16:06:17 2008 -0400
+
+ Factor out copying picture pointers in update_context.
+
+commit 13c48792ac24329c9055f6e98b5e61c278f1aa57
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 00:02:20 2010 -0500
+
+ Fix wrong timestamps with -threads 2 and BBB 1080p Theora
+
+ It was caused by adding thread delay to has_b_frames.
+ -threads 2 -> has_b_frames 1 -> "delay==1" is true and the
+ "invalid dts/pts combination" was triggered. Not sure about this fix,
+ but I think it's harmless.
+
+commit 141516ca4f2b0008539ceeb70b46ebb6cfe4a1c0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 17:44:29 2008 -0400
+
+ Cosmetics: use USE_ macro.
+
+commit 14476d56276a77a237834e88b28427fe491ac689
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 14:11:41 2008 -0400
+
+ Correct AVCodec member comments
+
+commit 14bdf768314413a099fe570891761360733b148c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 01:15:03 2010 -0500
+
+ Update sws.
+
+commit 14df94ceacecf041d33b8600bc9097d4befd79dd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Feb 14 23:57:37 2010 -0500
+
+ Add a convenience function for avoiding deadlocks with decoder errors
+
+commit 156f6ba4db96f57c3c105b71986acaa9be13d5ab
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 17 00:19:10 2008 -0400
+
+ Update todo
+
+commit 16343b25d2ffc7c18a00ec62db8e76d7f8217de5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 22:39:05 2010 -0500
+
+ Rewrite comments for new codec callbacks
+
+commit 16b71c003150c3a44135ffa1bbc870ea43c15f7a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 18 14:37:04 2008 -0500
+
+ Some todo entries I forgot to add
+
+commit 16bde8c7df438f5283de102e3c872ef309a8d0b5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 5 00:11:43 2008 -0400
+
+ Implement avcodec_flush_buffers for multithreaded codecs.
+
+commit 17b3c2a080f7ec1f548494e0e2b905ad0e2690c0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 20:36:54 2008 -0400
+
+ Clarify use of is_copy
+
+commit 17d7a98c7aadc2be1ceadf875ae2ca71b08a5611
+Merge: 0097d3b 981f8d0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Sep 29 22:55:44 2010 -0400
+
+ Merge mainline.
+
+ Fix misplaced lowres check from previous merge. (or maybe it was fine?)
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/utils.c
+
+commit 17dcbec74c0630e44029dd5e4efd8f9bb2ddee13
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 24 16:51:14 2009 -0400
+
+ Fix typo in huffyuv, broke mt decoding with newer huffyuv versions.
+
+commit 17ef916da54e5cbaf2ce97cba565ba4730dcd847
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 14:39:44 2010 -0400
+
+ Cosmetics: remove stray spaces in pthread.c
+
+commit 1846cc0549bf3d45fb2a5a2152b7335c794146e8
+Merge: 5323bc6 cd23ede
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Mar 8 04:30:32 2010 -0500
+
+ Merge mainline.
+
+ The VP3 decoder has been heavily changed upstream and this commit
+ removes mt optimizations. They will be readded later.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+ libavcodec/h264.h
+ libavcodec/h264_direct.c
+ libavcodec/vp3.c
+
+commit 1878dce0e65b2fab94612c950fac51e3de741636
+Merge: b7d1826 2b13612
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 24 01:37:21 2009 -0400
+
+ Merge mainline.
+
+commit 1884de3ffb775bb23cbfbf977ea48841c2b2ae16
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri May 8 00:15:50 2009 -0400
+
+ Correct comment about decoding delay.
+
+commit 18893e1423c3d8a65ca753806638ac160fefe342
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Oct 23 18:13:56 2010 -0400
+
+ Add a -vsync test to test.sh.
+
+ The files x-1-vsync.txt and x-3-vsync.txt should have the same MD5.
+ Even more ideally, all files should have the same MD5, but it's not our problem if they don't.
+
+ h264 and theora pass, didn't test others.
+
+commit 18dc6b6010200c45827d14594a5d7b7b2b28d8e0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:31:04 2008 -0400
+
+ Move ff_frame_thread_init above its uses and make it static since it has only one caller.
+
+commit 190d65b24795208e30c06369e34769ffeb9b5cc8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 01:31:00 2008 -0400
+
+ Add a longer comment for update_context
+
+commit 19b159260eb5eddfd296cac179d59ba218f881ac
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 01:22:43 2011 -0500
+
+ Adopt pkt_pts/pkt_dts in lavc clients
+
+ This makes DTS reliable with threads.
+
+commit 1a0d8d0cd0d7d0dc44d1747b2c8c93c73bc09cd8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 4 03:59:20 2010 -0500
+
+ Note in todo that 'make test' doesn't pass ATM.
+
+ Also note a harmless warning emitted, which I haven't
+ though of a good fix for yet.
+
+commit 1a216093ed2f201814287a32b5d8f22781c6d8d1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 25 01:02:29 2008 -0400
+
+ Comment another strange line
+
+commit 1a4740fed38a69202c762e3cd786dd3c7c23dd40
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jan 15 17:02:46 2011 -0500
+
+ Make ARM asm #error out, since the offset values are out of date here
+
+commit 1ac02d2ff0dd39d8baf68cf7e0490de4db9b88cc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 10 14:24:40 2009 -0400
+
+ Fix the error in avcodec_thread_init to actually not do anything.
+
+commit 1b735c493b0fe8c1aaff3d06214c24e8556b111c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 25 14:40:54 2008 -0400
+
+ Remove some context variable copies which were overwriting user settings
+
+commit 1b755181905bed35b2edd723c137b8f0af9c31c3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 23 23:14:20 2008 -0400
+
+ Add a FIXME for PAFF
+
+commit 1c187ba01c332b3d99681cfffb90f0247a836303
+Merge: 8022069 0309093
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 05:32:06 2010 -0500
+
+ Merge mainline.
+
+ Conflicts:
+ doc/APIchanges
+ libavcodec/avcodec.h
+
+commit 1c39407876cb6689e313ce27a51d83d77ac0c4e4
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 23 03:40:43 2010 -0400
+
+ Fix crash with ffplay.
+
+ Caused by the buffer functions being changed after codec init.
+
+commit 1c70dfb14a5e6e322f66d1175045eb13ac96d2f8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 22:10:38 2010 -0500
+
+ Rewrite thread.h comments for clarity
+
+commit 1c8037ec029ffe790b39b0cf0e67468db5f8c4a8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 25 03:59:02 2010 -0500
+
+ Fix references to renamed avail_motion() in the todo.
+
+ Delete the second entry mentioning it, since I don't think it's a
+ good idea anymore.
+
+commit 1ca44079c06a2080c2a0deb9cbc8fa757a5be540
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 20:34:08 2008 -0400
+
+ Delete unused variables. The frame counters will stay around for now for debugging.
+
+commit 1d15df4fd2b4583d56159a7938ef3699c7f46261
+Merge: 8f759fa b3b80f1
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sat May 31 17:56:44 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 1da82befe53bc245ba94cf1012fcd0156040353c
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jan 7 12:40:39 2008 +0000
+
+ Remove unused symbol.
+
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit 1e8abec2eecd831c55e34c09fc9a38833d69c180
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 10 14:28:54 2009 -0400
+
+ Fix default value of thread_count.
+
+ Adding a flag named "threads" somehow disabled the default value
+ of the option named "threads", which allowed thread_count to be 0
+ for non-ffmpeg/ffplay clients (which don't always reset it).
+
+ Not sure why AVOption works this way.
+
+commit 1eff8ec8e1772334cd74129f8cc068483c757b40
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Fri Aug 10 07:28:18 2007 +0000
+
+ Prefix with "opt_" the functions ffmpeg.c:show_{version,license,formats}.
+ patch by Stefano Sabatini [stefano tod sabatini-lala commit 1fae9e952cee3c499313b5a9b5c2e3dda096ee30
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 10 01:44:05 2011 -0500
+
+ Delete the libswscale submodule for svn->git merge.
+
+commit 2037d9714bc51ccb57a82aba95a52a5b49bdc401
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 21:16:50 2008 -0400
+
+ Comment this just in case someone doesn't get it
+
+commit 2063f77f904af3544021e16d6da76acf5d9beaed
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 05:40:04 2010 -0500
+
+ Delete beosthread.c which is gone from mainline
+
+commit 207f434446b40b29311e81233167bd03de16bf0c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jul 30 20:14:56 2008 -0400
+
+ Cosmetics: whitespace adjustments.
+
+commit 20997d60c8ec84dd0dd68055901e847c4b4e171a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 27 22:33:17 2009 -0400
+
+ Frame threading for VP3 [2/2].
+
+ The performance with different thread counts is different from
+ MPEG codecs; trying more or less granular synchronization would
+ be interesting.
+
+commit 20a85842c46b547331c5884e015dd781108c6d17
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Oct 11 16:43:39 2008 -0400
+
+ Save PAFF vs MBAFF information for pictures.
+
+ This already exists differently in mainline, but this way is more useful
+ since MPEG-2 has field pictures but not MBAFF.
+
+commit 20d6c336b37a7bf7313865a397f19ef33595adf8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Dec 23 17:49:51 2008 -0500
+
+ More todo entries
+
+commit 210b4a63100e5f4ba5ab23e84460614ca59b7817
+Merge: fc957c7 59b0bd5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 24 22:26:23 2010 -0400
+
+ Merge mainline.
+
+commit 21cede4223d4bcfcc0f6a91bbc84354238201fea
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Apr 19 03:30:45 2010 -0400
+
+ Fix possible overlapping memcpy()+crash at the end of decode
+
+ Increasingly dissatisfied with having to do this.
+
+commit 22a56df3f22e5c32c5f2fd06db8d644157da1877
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 23:12:17 2008 -0400
+
+ Remove dead code.
+
+commit 22d953bd1ef2b61ec272be03aa8f81587e0ac046
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 25 04:54:34 2008 -0400
+
+ Remove zeroing mbskip_table
+ It's unnecessary with the previous commit.
+
+commit 22e9455a663acc4d34f76130f2603b41b3940b9e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Aug 22 16:25:45 2008 -0400
+
+ Comment and rename context variables in pthread.c.
+
+commit 2331711a5ff0908a37005a0e500804a5a8a61e5d
+Author: Michael Niedermayer <michaelni@gmx.at>
+Date: Wed Apr 6 00:15:42 2011 +0200
+
+ Fix ffmpeg-mt fixme in h264
+
+ Uncommenting this code no longer seems to cause valgrind problems or crashes.
+ Behavior is unchanged.
+
+commit 234887b836f9b0306388d20499c8025ac916e11b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 21:17:15 2008 -0400
+
+ Normalize if (err)
+
+commit 2412ad4778734a19638c997d5567f5d53d135a9a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 17 15:57:00 2011 -0500
+
+ pthread: Document release_delayed_buffers
+
+commit 24345e509df0b92a3592cfb15db12b1aecd78ffe
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 26 02:26:07 2008 -0400
+
+ Fix spelling and rewrap multithreading.txt to the right number of columns.
+
+commit 2485cfd74cf5012fdce8582b7094ddbd09bd70c9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 24 03:38:22 2009 -0400
+
+ 10l: pred_direct_motion fix missed several mb_type accesses
+
+ I have not proven this correct yet; it's not too hard with some work
+ (record the last row accessed and waited for, and make sure they
+ correspond). Therefore, I suspect it still isn't correct, since
+ framecrc still shows mismatches. It does fix the worst visible
+ errors, though.
+
+commit 25a2f117ad6d6dc2592e77369bed23e53241b218
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 03:24:41 2011 -0500
+
+ Cosmetic: shorter line variable declaration
+
+commit 26151296236e0381c1c40e0d97ead8c5ab26b57c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 2 02:33:12 2010 -0400
+
+ vp3: Lift up loop-invariant checks and simplify away 'border' which == 1
+
+commit 27026500c9a25bf409b55186d9bceada4bf2ba5c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 19 02:09:18 2008 -0400
+
+ Fix mpegvideo crashing without --enable-pthreads due to the number of thread_contexts changing.
+
+ -threads X no longer has any effect since all threading code is now gone without an actual threading library.
+ I think this is a nice minor size optimization, but if it's necessary to keep regression tests working with frame-threaded encoding I'll have to revisit it.
+
+commit 2742b2a142ff98e4611f96ddf47ab5a5233f4692
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Thu Jan 10 10:15:07 2008 +0000
+
+ Reduce the size of the replaceTable entries.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit 287e761820e85514e00eb6c5958496ecb61825cb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 24 22:21:37 2009 -0500
+
+ Fix error return being ignored in VP3 allocate_tables().
+
+ Based on a patch by Yuriy M. Kaminskiy.
+
+commit 29c2b04f5074e49aa63cf50fb90e3a51e853ad9d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Apr 4 00:35:28 2009 -0400
+
+ More todos related to init api
+
+commit 2a7a86a64f153befafabcbb987e2793fa4bb0e18
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 27 22:17:41 2009 -0400
+
+ Split out error returns in VP3.
+
+commit 2a9b493a5a0f46f43959ce2466849dd6a6217012
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Feb 2 02:12:29 2011 -0500
+
+ Fix memory abandonment + unnecessary realloc in mpeg4
+
+ Fixes Sample1.mkv from ffms running out of address space (and more).
+ Note the file doesn't display properly in ffplay, so there's still bugs left.
+
+commit 2ae310bf292c1f34be006e9be7fbceb4c0f1b068
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 3 04:20:42 2008 -0400
+
+ Comment next_*_index.
+
+commit 2b74560715c3d4f331156d8745ce801c1de4d467
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 18 14:31:17 2008 -0500
+
+ Revert accidental warning change
+
+commit 2b7d2acccb45e89bfc77564bcdaee68fcb4ac4c7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Feb 1 23:05:43 2011 -0500
+
+ Revert 99ed04d4d7b7183a4d0a1b8833eee3b506e13ff0
+
+ Broke big_buck_bunny_720p_stereo.ogg with 2 threads.
+
+commit 2bbb64dae018cbb09ea47a6bdcb184f551136c26
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Dec 15 16:15:21 2010 -0500
+
+ Fix definition of CODEC_CAP_FRAME_THREADS to not conflict.
+
+commit 2bc23e009291d727eed7a4f803a2793f5fa715b0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 26 03:03:38 2008 -0400
+
+ Update avcodec.h comments
+
+commit 2bcbffdbf53bd2918ba6ade66d12fb97021032c7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 20:26:59 2008 -0400
+
+ Combine all the condition variables into one.
+
+commit 2beb042a202d00dbb2baef3970f058994aeec027
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 23 19:32:56 2008 -0400
+
+ Split thread_algorithm into two more sanely defined variables.
+
+ Also improves correctness in some ways.
+
+commit 2c0e016af759adfdc34a6a1b8592ec0a1ef56da9
+Merge: d5ea5fc c2c8552
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu May 7 17:36:13 2009 -0400
+
+ Merge mainline.
+
+ Uses the minimal changes to get the new AVPacket API working.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+ libavcodec/mimic.c
+ libavcodec/options.c
+ libavcodec/utils.c
+
+commit 2c3cd96bf1cb1757407c973416f7928d492e2156
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 22:59:19 2008 -0400
+
+ Cosmetic rearranging of MPEG update_context functions
+
+commit 2cb0db5ba7d77ed8180f0551462c836047ea262e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 18 16:19:33 2009 -0400
+
+ Fix invalid Mimic stream handling + frame threads
+
+ Releasing a frame after frame_setup_done isn't allowed, and
+ it must do report_decode_progress as if it was finished.
+
+commit 2d0370118996148f1c64b9c6b4a2ff632fcaf609
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 31 03:56:04 2008 -0400
+
+ Add fixme for copying packet data.
+
+commit 2e121780400cb6630a66a0b7bd3fe84ad539b882
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 11 18:21:08 2008 -0400
+
+ Increase the released buffer size to 16. H264 can release this many at an IDR, can other codecs have even more?
+
+commit 2e5a5baf540ae0d1ac16ae52f66254b7233aabf7
+Merge: 5d82241 31f0027
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 29 04:35:46 2011 -0400
+
+ Merge branch 'master' of git://git.libav.org/libav
+
+ Conflicts:
+ libavcodec/dsputil.c
+ libavcodec/mpegvideo.c
+ libavcodec/snow.c
+ libavcodec/vp8.c
+ libavcodec/x86/dsputil_mmx.c
+
+commit 2e9d8893eac232b782b479378cf13d484ab9cc1e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 22:49:33 2008 -0400
+
+ Add thread.h
+
+commit 2eeab8f6ad07611e46b3377ddf73e1d7f1f2bb78
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 21:16:31 2008 -0400
+
+ General description and porting guide
+
+commit 2f1fec650f4bb351fa819fb7e11b4766a43fa30f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 01:20:32 2008 -0400
+
+ Simplify mimic_decode_end changes
+
+commit 2f48eac011767ba2d60329c10a22499c228a31d8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 18 15:27:24 2008 -0500
+
+ Missed fixing pthread.c in merge.
+
+commit 2f8f77021011eec5af8cab80ee7bdc574ad3f37b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 03:01:42 2011 -0500
+
+ pthread: Style and comment nitpick for validate_thread_parameters()
+
+commit 300b5819426ed6b35aaa480502070382e5295111
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 17 14:07:06 2008 -0400
+
+ Copy aspect ratio info between contexts.
+
+commit 3029628ce39e37c9ae77cb78f22ab9d4846e6610
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 31 15:15:15 2008 -0400
+
+ Fix compiler warnings
+
+commit 303cd6307958792faac1ce8c8c81eea2651b002f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 19 18:31:17 2008 -0400
+
+ Use MPV_report_decode_progress in mpeg12, and call it before mb_y++.
+
+commit 30e540672df8523a47013d92592b744459040904
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Oct 13 15:00:39 2008 -0400
+
+ Make every thread lock the same buffer_mutex for get_buffer.
+
+ Otherwise it isn't actually protecting anything...
+
+commit 3106e8ebe7c55eba3e41f3a11cc23eb249a4ff3b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 23:09:47 2008 -0400
+
+ Always set thread_context[0] in MpegEncContext.
+ This fixes mpeg* encoders always crashing, but most of the regression tests are still failing.
+
+commit 3127a4bd6e36bb2d9cd2fe12a96fa776d94fed94
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sat Nov 2 10:47:44 2002 +0000
+
+ added BeOS net_server support (R5 network stack), basically the same
+ problems as with winsock (sockets != fd), and the broken select().
+ based on older patch by Andrew Bachmann.
+ patch by (Fran
+commit 314c2b1d2f94be3b6aca3dd1ae0f30c05f10f2ee
+Merge: 9816b66 bd8850b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Feb 17 22:41:31 2009 -0500
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+ Conflicts:
+
+ libavcodec/avcodec.h
+ libavcodec/mimic.c
+ libavcodec/mpeg12.c
+ libavcodec/mpegvideo.c
+
+commit 314e5630e389457319ff2d11e856fab6b1d8b250
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jan 7 12:47:14 2008 +0000
+
+ Move wmv1_scantable to .rodata section by making it an array of arrays.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit 31e3f669b598302b2a487dab84e08bf4d1e79983
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu May 7 18:06:52 2009 -0400
+
+ Fix mplayer patch's calculation of extra delay.
+
+ It's only (num_threads-1) frames with MT on, not num_threads.
+
+commit 31f1a603dcfe885c41d123832f102a3ccc55c6dd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 00:20:03 2008 -0400
+
+ Rename threading functions with 'decode' in their name
+
+commit 333777b56b942a11db5d672433357bcbbf0d6e47
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 01:14:48 2008 -0400
+
+ Cosmetic changes to mimic
+
+commit 33bc3cc94a5a6e2679306da899afb1e0ce6b78c6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 14 14:01:15 2008 -0400
+
+ Reindent.
+
+commit 3444ffe523dd65b788791dfb2c6cbd7031cfec97
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:24:44 2008 -0400
+
+ Cosmetics: rename last_thread to prev_thread to avoid final vs. previous confusion.
+
+commit 344df336a0b5e70ef9fcea33f612f759bc045552
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Apr 19 03:31:30 2010 -0400
+
+ Reindent
+
+commit 3547c7f44108f1080f90de1844c36fb172528994
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 19:40:48 2010 -0500
+
+ API simplification: remove ff_report/await_frame_progress()
+
+ The field variants are enough.
+ Note that mpegvideo.c thread code doesn't need to support any codecs
+ with field pictures.
+
+commit 3630d89a7bd6443f9aeda2f6997fb2ea5da5c97d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 18 12:36:20 2008 -0500
+
+ Copy dequant4/8_buffer between H264 decoding threads.
+
+ Fixes at least:
+ MSG00 ED.mkv
+ freedom EP1 sample.mkv
+ made with unknown encoders.
+
+commit 36977df5243521eaa3ab1b67f3c89d1a1ba4c8f7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 22:03:25 2008 -0400
+
+ Move copying idct_algo to the right place
+
+commit 379271216e0d522b675e97189ab5d4e5cf7f5f70
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Apr 19 03:35:28 2010 -0400
+
+ Update todo.
+
+commit 37b38ff868fa39f75df9c1bd543fd1c2dc7134ae
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 20:31:16 2010 -0500
+
+ Update the comment for FF_THREAD_FRAME.
+
+commit 382e06ef4ba568c565b9d67b33b1688a32b2b80e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 06:21:06 2010 -0400
+
+ pthread: Use av_fast_malloc to allocate the frame buffer
+
+ Also delete the FIXME; it's impossible because the AVPacket memory
+ API doesn't actually work.
+
+commit 3934d02026fb67b46441176c4160c0f854c12825
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 21 18:10:58 2008 -0400
+
+ Reindent.
+
+commit 39eee0b91b9b6b75c54ff68d51ecc0ba1816c88f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 22 03:36:24 2008 -0400
+
+ Multithreading support for MPEG-4
+ This requires more parallelism barriers than usual because of the horrible skip MB structure in B-frames.
+
+commit 3ad85b1741ca6d36126bbf674f5b82d550107bae
+Merge: ff4c627 4495490
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Oct 6 16:12:06 2009 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/mpegvideo_enc.c
+ libavcodec/snow.c
+ libavcodec/vp3.c
+
+commit 3afd3f52b940d0bfa756e1a7496a20d103c5a7f0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 25 03:25:00 2008 -0400
+
+ Merge MPV_update_picture_pointers() into its only caller.
+
+commit 3ba8143c5da92197eb45fa120bfa95b38adfd3bf
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sat Nov 2 10:35:07 2002 +0000
+
+ added BeOS net_server support (R5 network stack), basically the same
+ problems as with winsock (sockets != fd), and the broken select().
+ based on older patch by Andrew Bachmann.
+ patch by (Fran
+commit 3bac11e47a0ec7c6036c53a1173bce276abccfeb
+Merge: 53fff22 3d42d49
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Apr 9 21:30:16 2011 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/h264.c
+
+commit 3bef1503e0f23c0f30c2e3b2de64a9b2618807d2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 27 16:18:44 2009 -0400
+
+ Add debugging hooks to show ff_report/ff_await calls.
+
+commit 3c3a3648317737830fc863371b455624d093f8e6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Oct 18 17:39:17 2008 -0400
+
+ Fix possible null pointer access after seek.
+
+commit 3c7a8d94b97003b118c2438343d06ad7cf26198a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 00:04:51 2010 -0500
+
+ Reimplement VP3 multithreading.
+
+ Synchronization is now not very fine-grained, because it reuses
+ vp3_draw_horiz_band which runs every ~64 pixel rows.
+
+commit 3cfd7b2e788c3d8e31c91ed529f3e3730f836395
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 23 23:14:05 2008 -0400
+
+ Wrong kind of #if.
+
+commit 3f7521893b9072181763ea176ef8da0c0ad1922a
+Merge: ed42183 206c937
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Oct 10 01:47:32 2010 -0400
+
+ Merge mainline.
+
+ API change: CODEC_CAP_FRAME_THREADS is now defined as 0x800.
+
+ Conflicts:
+ libavcodec/avcodec.h
+
+commit 3f858091f8f3cd43f1eed396e85f6956ee5068a0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 02:35:52 2008 -0400
+
+ Fix losing frames at the end of an encode
+
+commit 3ffe81697018042b27a31f20c1d30c988b688d60
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 12 18:22:42 2008 -0400
+
+ Reindent.
+
+commit 401a6bc7f0fe26963f63778c5092ae96c4262634
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 25 19:07:58 2009 -0400
+
+ Frame threading for VP3 [1/2]
+
+ update_context function and compatibility fixes.
+
+commit 40265f10de7698bb2fe23857cf261a0f04fe18a1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Oct 13 14:19:27 2008 -0400
+
+ Fix edge drawing for non-mod-16 files.
+
+commit 4074c8bfba918988029ce106eda3d41486f12966
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 12 00:11:35 2008 -0400
+
+ Copy more MpegEncContext variables.
+ These are needed for proper DivX/H.264 decoding.
+
+commit 40ffd3a664e36f44ebdf4d2603e42c7c59502599
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 23 21:40:06 2009 -0400
+
+ 100l, fix compile error introduced by automerge
+
+commit 4118a72e28be1cee657561a1f45dc3ce160dbf07
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 10 02:46:14 2011 -0500
+
+ Update todo.txt
+
+commit 41e0f81a58493a0a15cb18c7ff00920f0fd124a3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 02:52:18 2008 -0400
+
+ Remove unneeded stubs from thread.h
+
+commit 4259f9fcf4edc5c92bc02d37d85493b3eb917075
+Merge: 2615129 fb61692
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 2 02:36:20 2010 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 4293f5ba301cd751257705bfe6fc8b12337dccab
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 23:20:17 2008 -0400
+
+ Disable multithreading for packed B-frames.
+ The bitstream buffer is updated after decoding, so it has to be changed to find the frame end before starting the actual decode. Assuming that's not too slow.
+
+commit 42b521db9177ed2d4e62845659fdcd44c59757f9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri May 8 00:40:57 2009 -0400
+
+ 10l: dequant_coeff must be copied along with dequant_buffer
+
+ Fixes more Blu-Ray streams which change CQM, including Slumdog
+ Millionaire.
+
+ Noticed by Haruhiko Yamagata.
+
+commit 435ace7689e2794ddbb4013de097bdaf487f7365
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Apr 9 21:47:12 2011 -0400
+
+ Update test scripts to use ffmpeg instead of ffmpeg_g
+
+commit 435adcd213762869c6a6f806481450216720b364
+Merge: 6ee99a7 11dcccd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 10 01:25:24 2011 -0500
+
+ Merge remote-tracking branch 'socrep/last_mainline_point' into last_git_point
+
+commit 451af22792e7bec6f3b347ba801ba186102a85da
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 04:13:33 2008 -0400
+
+ Call draw_edges per-MB-row instead of per-frame when possible.
+ This is necessary for multithreading, since rows aren't complete until their edges are mirrored.
+ It should also be somewhat more cache-efficient, but I haven't benchmarked it properly yet.
+ I don't like adding new MpegEncContext variables, but edge_y lets it do the right thing wrt. error resilience and codecs that don't call ff_draw_horiz_slice.
+
+commit 452fb04633126605afbb2cd0d6383bb75fe01f38
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Fri Nov 8 20:54:44 2002 +0000
+
+ ringbuffer patch by (Fran
+commit 4681ac8f618586d4a3ecb04784b9cf896d070f1b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 14:43:29 2010 -0400
+
+ Cosmetics: vertical alignment
+
+commit 468eba33060aa87117ac6b617d4eae776951cbf6
+Merge: 3c7a8d9 aa86abc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 00:55:42 2010 -0500
+
+ Merge mainline.
+
+ The error condition in vp3_decode_frame was uglified to make the
+ diff simpler.
+
+ Conflicts:
+ libavcodec/vp3.c
+
+commit 46a45ad599db4037006b335fca2c7b7bed7018ab
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 2 00:22:16 2008 -0400
+
+ Clear thread variables in avcodec after freeing them.
+
+commit 46b495ebc4a7fb7662580791e4ed10130b00fead
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 12 17:16:31 2008 -0400
+
+ Don't allocate duplicate contexts if they're not going to be used.
+
+commit 46ec6b90e7b2d6b1d83a207025a691c56176d686
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 16 18:21:04 2008 -0400
+
+ Multithreading support for MPEG-1.
+
+commit 46fc25f5c225e2f33430e31a0d0ad375455e9cef
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 1 12:20:12 2010 -0400
+
+ Update todo.txt
+
+commit 473799e0c3b647d73046c3b4de30e85bf57ba610
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 21:16:59 2008 -0400
+
+ Whitespace fix
+
+commit 47869edb7f0aede0a2bfd178ef9937e28bf8b01f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Feb 14 23:41:12 2010 -0500
+
+ Fix buffer leak in VP3 by allowing update_context() with the same context.
+
+ I assumed update_context() would only be used to copy values, so skipped
+ calling it with duplicate parameters (during flush and free) for optimization.
+
+ But VP3's release_buffer call was moved from the end of decoding to the
+ end of update_context(), so flushing would skip releasing a frame and
+ eventually run out of buffers.
+
+ Unfortunately this makes update_context() much uglier in codecs that
+ already worked, because memcpy doesn't allow src and dst to be the same.
+
+commit 480a82da7912bc5034a4b0bc2090879920567521
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 30 01:13:43 2010 -0400
+
+ Update todo.
+
+ ffplay/ffmpeg support for better a/v sync support is in progress.
+ If Theora uses PTS (I think it does), then once ffmpeg.c i
+ ready it can be submitted to mainline.
+
+commit 4845b04ed3d6bc513a272da718629d110bc8186f
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jan 7 12:43:04 2008 +0000
+
+ Mark the tables in g726.c as constant.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit 485d8e9e3c5de803075c8440922e6e09b10a1e57
+Author: Alexander Strange <astrange@resnet-022-195.spsu.edu>
+Date: Sun Sep 14 20:45:58 2008 -0400
+
+ Fix ff_report_*_progress side of H264 multithreading and merge draw_horiz_band into it.
+
+commit 4874d258345ec305b0eca78c41491878d42a900d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 14:45:39 2010 -0400
+
+ Cosmetics: reorder variable declarations
+
+commit 48d2183d902db7cc42c9f84d2bad6eccc35d0221
+Author: Ronald Bultje <rbultje@google.com>
+Date: Mon Apr 11 14:58:11 2011 -0400
+
+ Release unused pictures even when not calling ff_h264_frame_start()
+
+ Unused pictures assigned to the thread can build up and cause it to
+ run out of buffers if the thread only ever decodes bottom field pictures.
+
+commit 48d7f5a8f3f14535d74f0e4b0a736e3f5dc336b2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 19:58:18 2008 -0400
+
+ Factor out freeing delayed released buffers.
+
+commit 49652059c673eb977e5b69ffb0c8a543c3210e16
+Merge: a2efd25 48e59eb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jan 15 17:01:41 2011 -0500
+
+ Merge mainline.
+
+ Conflicts:
+ doc/APIchanges
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+ libavcodec/utils.c
+
+commit 4969bb89e592c003a560e321f3cacb412a192db9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 31 14:30:40 2008 -0400
+
+ Copy avcC variables in H264Context.
+
+commit 496ec27adcef84278e650b29f4d22aba383d705a
+Author: Alexander Strange <astrange@resnet-022-195.spsu.edu>
+Date: Sat Sep 13 16:20:03 2008 -0400
+
+ Correct interlaced draw_edges.
+
+ There is still a race condition when fields are decoded in different threads,
+ so for now we pretend EMU_EDGE is set instead of using the edges.
+
+commit 498ddbb3b2d78819540c1b8fff9a2bc495a33346
+Merge: aaa05da 95b6213
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Nov 3 18:34:04 2010 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+
+commit 49e377f9f23904ed790e98175b1575bba6ecc6cb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jul 15 03:30:28 2008 -0400
+
+ Add update_context() for H.264.
+ This seems to lose reference frames for my PAFF sample, which I'll fix after I find out how PAFF works.
+
+commit 4adb7fbed7dcb12dda0f3919188334a3b96efb0a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 20:02:12 2008 -0400
+
+ Cosmetics: get rid of unhelpful comments, useless braces, and some whitespace/align issues
+
+commit 4af5480a021156089c193ce2215994cfd170e4e6
+Merge: 2f48eac 1bf5327
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Nov 28 22:48:24 2008 -0500
+
+ Merge mainline.
+
+ Conflicts:
+
+ libavcodec/h264.c
+ libavcodec/mpegvideo_enc.c
+
+commit 4b9ce55576ab27f6a45d542bfda7c1e21fb967f8
+Merge: 1fae9e9 435adcd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 10 01:54:16 2011 -0500
+
+ Merge branch 'git_equiv_of_mainline'
+
+commit 4c726e5e30e1f48619eecbec5442acd63e895318
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 22:40:30 2008 -0400
+
+ Rename pthread.c to thread.c
+ The remaining *thread.c files will be merged into it later.
+
+commit 4c802e44f13672dd4527f51fc2f07a1e21be4a5c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 2 04:31:45 2008 -0400
+
+ Simplify ff_await_decode_progress.
+
+ Always set and allocate the progress pointer, so ff_await_decode_progress doesn't have to check for threading to be on.
+
+commit 4cdd15a3cf5dfec32ace278cd445f04130ddbee0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jan 15 19:26:14 2011 -0500
+
+ pthread: Call external get_buffer() on the client's thread by default
+
+ This fixes several mplayer VOs that crashed when they were called from decoding
+ threads.
+
+ Not a complete fix as mplayer still doesn't work right with draw_horiz_band()
+ being called from decoding threads, but that doesn't crash at least.
+
+commit 4d2f536b72ec9121b5afe858b69c93d9cc75f20a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 30 04:20:20 2008 -0400
+
+ Simplify draw_edges changes by removing edge_y (which is useless with slices)
+
+commit 4d8525ab388d34e128629b08ab88c6a16f3aa406
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sun Jul 21 07:59:17 2002 +0000
+
+ nanosleep patch by Fran
+commit 4edb9a7f780a6eaef36512724e6a34c3f38d67ce
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Feb 15 00:31:31 2010 -0500
+
+ Disable mpeg1 frame threading.
+
+ Seeking doesn't work (it triggers false error conditions) and it doesn't
+ pass test.sh (-threads 2-4 match but 1 doesn't somehow). Will be reenabled
+ when those are fixed.
+
+commit 4f9364563f388af84b9a02930b375ff52eee1394
+Merge: 3bac11e 347b375
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Apr 9 21:30:47 2011 -0400
+
+ Merge branch 'master' of git://git.libav.org/libav
+
+commit 4fb1fdf1ca1a48aff176b8f833ca596d245d6d36
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jul 15 03:30:50 2008 -0400
+
+ Reindent.
+
+commit 4fb33e68ec34cbc135ce4ebb86f7e1399ba97115
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 23 22:11:58 2008 -0400
+
+ Merge statements.
+
+commit 5022ee29ac6d4b2ee992115c3bf997e7bd1ab7a4
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 5 20:30:27 2008 -0400
+
+ Add delayed_release_buffer for handling reference frames.
+
+commit 5066a4656963dd3b4e847a540353bf71d318de14
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue Nov 5 00:07:05 2002 +0000
+
+ lrintf detection (based upon a patch by Fran
+commit 50d1ce2db57e39b6115642d3c4397e9f67f758e3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 24 00:08:03 2009 -0400
+
+ Call codec init at a more reasonable time.
+
+ Previously it was delayed until the first decode_video() call,
+ but it can be moved into avcodec_thread_init(). This makes pix_fmt
+ available to clients after init again, which should make them happier.
+
+commit 50eaf4979eb085e2c58c06912bb0c885404d4470
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 28 17:39:28 2008 -0400
+
+ Simplify changes to non-pthreads and don't call thread_init from open if it was already called.
+
+ This will cause an assert failure if clients call thread_init again after open.
+
+commit 51428e56c71512a57f81d85acee3ced7cc0d2983
+Merge: 00425e9 03586fd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 4 16:41:31 2009 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 517d68c2642aee3c14fc71031c1e44c0803a664e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Mar 8 04:43:06 2010 -0500
+
+ h264: change the definition of col_fieldoff to avoid divisions
+
+commit 5186276ed120294fb6a4f2cf5a40d5019012482f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 16 22:01:18 2011 -0500
+
+ libavfilter input_get_buffer is thread-safe
+
+ Slightly faster ffplay playback
+
+commit 51ead6d2c40c5defdd211f435aec49b19f5f6a18
+Author: Ronald Bultje <rbultje@google.com>
+Date: Mon Apr 11 10:14:38 2011 -0400
+
+ h264: Fix decoding race condition with PAFF
+
+ A thread can release a Picture and immediately reuse the same Picture
+ for a different frame. This is fine, unless the picture released was
+ a field-picture. In that case, there may be a future thread still decoding
+ the second field of the picture, and reusing it overwrites the shared fields
+ in the Picture.
+
+ Fixed by tracking ownership of Pictures and allowing it to be reassigned
+ to the second thread's context.
+
+ Fixes conformance sample HPCAMAPALQ_BRCM_B.264.
+ vsync still fails, and therefore FATE does as well.
+
+commit 521f07e3cf2dfb9b0473027ae2fbb6bd4f203ce4
+Merge: 7d0709e 4a8d06e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 31 00:08:08 2009 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+
+commit 52b214211060b56e7aac6b9743fa27bc79f789d1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 02:15:47 2008 -0400
+
+ Enable multithreading for Mimic.
+
+commit 5323bc6e8adbff2b6849a08e9e071f22241fd807
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 22:48:51 2010 -0500
+
+ Cosmetics: add () to function name
+
+commit 5340d1ffae10b1545d88b9dd8ca86a5a3aaffca7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 02:15:47 2008 -0400
+
+ Enable multithreading for Mimic.
+
+commit 534516ac79adc69d8773ff934955532a92db2cf1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 00:01:07 2008 -0400
+
+ Fix a memory corruption bug in update_context and reenable H264 multithreading.
+
+commit 535de6d374ab6b06041f5e3cb392327abd2ce054
+Merge: 6abde3d cc8161e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 04:08:37 2010 -0400
+
+ Merge mainline.
+
+commit 5380fee33a871580fe9f3424767eaf2362c8cde0
+Merge: ef2d866 08c0efd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 13 23:43:37 2010 -0700
+
+ Merge mainline.
+
+commit 538a29e12f115390a64ceb3d4909a4a67cad26cd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 15:48:55 2008 -0400
+
+ Make diff smaller
+
+commit 53c86e82af6757c12df3a99aede6862a311f050b
+Merge: fa8a82e ae2df26
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sat May 3 16:13:06 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 53cd195c8885125351a03cfb6f1d93e66d433b86
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 05:00:01 2010 -0500
+
+ Rewrite multithreading.txt
+
+commit 53fff221cdb9f18df2f2f52bd48731ce0fa9e114
+Author: Maksym Veremeyenko <verem@m1.tv>
+Date: Wed Mar 30 13:20:23 2011 +0300
+
+ mingw32 compilation after 'unbreak avcodec_thread_init'
+
+commit 5402adfa2e9c159e7d13ee07e142cb035a77ef95
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Dec 16 16:54:20 2008 -0500
+
+ Only write to stderr once for each av_log().
+
+ This makes logging somewhat easier to read with multiple threads.
+
+commit 541d79def90226cc9b17e6ccc9eb2ff2549bea46
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri May 15 17:54:20 2009 -0400
+
+ Remove useless volatile qualifiers
+
+ All such accesses must be protected by a mutex anyway, which is
+ already a memory barrier, so this doesn't change anything (assuming
+ a working compiler).
+
+commit 544c6a6709833f1a449b8faf4478ab529e269240
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Mar 29 02:28:29 2009 -0400
+
+ Frame threading support for HuffYUV decoding
+
+commit 54c0c3d2ce69606a5aa508659d3322f48ada77cb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Sep 3 11:59:59 2008 -0400
+
+ Call decode_postinit from the right place to avoid race conditions
+
+commit 552a89508fddc64d4217b9d845e458f504b63593
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 27 15:22:52 2009 -0400
+
+ Print md5s of test output files in test.sh.
+
+commit 55c511eedb24ffb09aef7072c02e911576c9900b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 25 02:47:19 2010 -0500
+
+ Did a todo item
+
+commit 574d2e5b942aa1e093bf768cc6321f3b081d3aeb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 5 23:36:08 2008 -0400
+
+ Merge enum with its only use.
+
+commit 578f45c15026e778ef54694d98a9ec446810a897
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 17:42:56 2008 -0400
+
+ Reindent.
+
+commit 5918efedbb7928031b6af745acb8b4233c08fb06
+Merge: 7d09b68 c2a400d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 14 21:37:03 2008 -0400
+
+ Merge branch 'mainline'
+
+commit 59d787ffccaf42e992229649c23e624ea7d71635
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 05:39:12 2010 -0500
+
+ Delete os2thread.c which is gone from mainline
+
+commit 5a7146bf75a2170f33ff25b88b91f667574d2919
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 11 01:33:20 2010 -0700
+
+ vp3: Fix a crash decoding files with <thread_count frames
+
+commit 5a75822b584676672fbb887d4b828abc80ffd89c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Apr 1 19:19:34 2011 -0400
+
+ pthread: validate_thread_parameters() ignored slice-threading being intentionally off
+
+commit 5b7c668d1f64facfe8b9f86e2491085595fa9bc7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 12 20:26:26 2008 -0400
+
+ Document thread-safety requirements for user callbacks in AVCodecContext.
+
+commit 5bacdcc1a52e2b1d32bad9e9f250ceb6cc37f366
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Oct 11 15:40:47 2008 -0400
+
+ Fix progressive height values in avail_motion()
+
+commit 5c46573ed07b092aea0db6560ade77bc299c28cb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 25 22:16:23 2009 -0400
+
+ Whitespace error
+
+commit 5c4c8ed51da0be4f141a4de339db77f4a0a6c783
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Sep 1 03:18:55 2008 -0400
+
+ Remove unused variable
+
+commit 5d3c2f7512746dd0adf067952ed38d8111d7571d
+Merge: 7041a16 5a70b15
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sun Jul 6 12:38:18 2008 +0900
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 5d53ada4cbd323d66b61965b1442d0abd63361b2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 17:00:18 2010 -0500
+
+ Don't load PerThreadContext until it's needed in ff_await/report_*.
+
+ Should avoid crashes if anything calls them without using ff_get_buffer.
+
+commit 5d7dfbb887f263b036224bf4510db176fa6cff73
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 16 18:18:53 2008 -0400
+
+ Utility functions for mpegvideo threading.
+
+commit 5d82241b49a1fb1dbecd1b279045cce9f099c775
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 24 03:34:48 2011 -0400
+
+ Update todo.
+
+commit 5eb0c649c780e26a77085bd213f945d88761ad00
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 4 04:12:44 2010 -0500
+
+ Make ffplay -drp the default.
+
+ Ignoring reordered/delayed PTS never works with frame threading.
+ This may be changing behavior too much; I haven't tested this
+ with non-mt files, but I think the current behavior must cause
+ A/V desync even there.
+
+commit 5eb679f0fff432ba2c9e0cdada254dbe4bd4a45d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 02:53:14 2010 -0500
+
+ Remove width/height changing checks from h264/mpeg12
+
+ These should be moved to pthread.c update_context_from_thread() if they're needed,
+ not kept in specific codecs. Hopefully the error return from get_buffer() is
+ enough to make it not crash anyway.
+
+commit 5edf2cc5acbb410ba50a3770e8565fb39206f406
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 16 18:20:54 2008 -0400
+
+ Multithreading support for mpegvideo decoding in general.
+
+commit 5ef4af7de47c3913ddc1e09e43887ac04ecfaba3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 01:58:15 2008 -0400
+
+ Fix ff_delayed_release_buffer crashing with slice-threading.
+
+commit 604ee5471f21d310f4014011a20c00c28a31995b
+Merge: 3792712 7838828
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Apr 21 22:04:21 2010 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 607edd221a3b7a300fbaa4a5495ffd30f8dc9fa8
+Author: stefano <stefano@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jul 26 14:30:47 2010 +0000
+
+ Define static functions fill_image_linesize() and
+ fill_image_data_ptr(). ff_fill_linesize() and ff_fill_pointer() now wrap
+ these functions.
+
+ The new functions are more generic, and are going to be exported in a
+ future patch.
+
+ Patch by S.N. Hemanth Meenakshisundaram smeenaks # ucsd commit 60be6c15c4d23c5107f14e408043988918a44c76
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 20 16:07:58 2009 -0400
+
+ Add a valgrind script so I don't have to type it all the time.
+
+commit 614d2308b343ec6af6bf72ada08884684bb66df0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Sep 3 22:55:22 2008 -0400
+
+ Update header guard
+
+commit 62830f5772dd8971032aa9f8d52a8f6c00c92487
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 17 19:04:19 2008 -0400
+
+ Remove next_delayed_pic, it doesn't prevent any race conditions.
+
+ This part is now entirely out of sync with mainline.
+
+commit 62ba7a4acc98b691ab3152356cf0c21a52f7e03b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 19:22:41 2008 -0400
+
+ Fix the main thread hanging if there's an error before all of the frame is decoded.
+
+commit 63d086d2585d3275a6b9068ee1ca957617ecf902
+Merge: 314c2b1 712afbf
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Feb 18 21:29:44 2009 -0500
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 63f663f09320851b9ed76f489fdab590da2fc7f0
+Merge: 64df3aa d61efce
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sat May 10 07:51:22 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 63ff6aa525faf65f86dfbc8ec571fd260844100f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Oct 23 18:07:14 2010 -0400
+
+ Don't set avctx->thread_count to 0 in avcodec_thread_init.
+
+ h264 crashes during decode init with 0 (instead of 1) threads.
+ Note that this isn't a regression from -mt, but is actually a bug present in mainline.
+
+ -threads 0 should preferrably set auto threads, but doesn't.
+
+commit 641f2752c16aaa25c5854d34726b72f226003b87
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sat May 3 12:20:42 2008 +0200
+
+ Ignore stuff
+
+commit 6446d2b0931c6a9637077b18b98af911d438057f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu May 7 01:38:16 2009 -0400
+
+ Update mplayer.diff line numbers to match mplayer r29269 (20090505)
+
+commit 647f6cf3144934e3c2c22b06601d23a1217a2b86
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat May 23 20:09:07 2009 -0400
+
+ H264: Print an error instead of failing silently for size changes with slice threads.
+
+commit 64df3aa6a32a87d96f650b8535c88e1d65b52524
+Merge: 53c86e8 72c8992
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sun May 4 22:24:35 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 65b3e34fc8a52f4f1a48fce7c8cddd80db8fade9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 1 12:20:24 2010 -0400
+
+ Update the test script to show results more clearly
+
+commit 65e8486a1dd1efbf2750d0bc25c326f8dc836bcd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Mar 29 03:10:53 2009 -0400
+
+ Fix nonsense 2am code - left the huffman tables uninited.
+
+ It would be faster to copy the VLCs but it would require more code.
+ And this could be factored into another function.
+
+commit 661ca4010c548e135ce1c0c819d0c05a94b66985
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 10 14:32:04 2009 -0400
+
+ Cosmetics: get rid of pointless parameter.
+
+commit 66204771dd8e479d30ef71ad85c162e1a34e4104
+Merge: 3f75218 76dd0e7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Oct 23 17:41:42 2010 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/options.c
+
+commit 66a34dee4443dd6ccabb53ca09a1c45bc95f4d24
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 12 00:39:28 2008 -0400
+
+ Don't run the last part of decode_update_context() when the last frame was dropped.
+
+ This fixes mplayer -framedrop crashing. Of course, they're still run in some cases when it wouldn't be without threads, but those are all error conditions.
+
+commit 66cf3f781d73fed502d80cce01dbd16b25bc3a71
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 2 19:27:12 2008 -0400
+
+ Correct 6b037a88 for PAFF/MBAFF.
+
+commit 66d9c0c9f6b2a4309dd4a41f88dd9a1dccb323e3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 23 19:56:21 2008 -0400
+
+ Wait for predecode to finish just before calling update_context, instead of as soon as possible.
+
+commit 66ef4712c357514602f6b47311874e9ebf7376e3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 4 15:57:36 2008 -0400
+
+ Handle zero-byte input correctly. (for CODEC_CAP_DELAY)
+
+commit 68682144289b05c830fd64a651526c4708666874
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 04:08:42 2008 -0400
+
+ Fix accidentally calling execute_ref_pic_marking() while draining delayed_pics at the end.
+
+commit 686ea24614fded4d7501f71901aae61f5160f018
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 16 22:15:28 2011 -0500
+
+ Update APIchanges to match mainline_patches branch
+
+commit 68ef172444124e9e6dd2a69df00ae72a64e795cb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 05:34:20 2010 -0400
+
+ Pass the complete AVPacket through pthread.c decoding
+
+ Part of a patch from VLC.
+
+commit 6913bf9451bdaef16cd7748c93358baeec57d33b
+Author: Michael Niedermayer <michaelni@gmx.at>
+Date: Wed Apr 6 00:14:56 2011 +0200
+
+ Fix REBASE_PICTURE with h.264
+
+ It was possible for last_picture_ptr to point into h.ref_list
+ instead of h.s.picture, which caused a bad pointer to be set.
+ Fixes some valgrind warnings, presumably improves behavior but
+ no changes were found.
+
+commit 6998f46dec036f2ab39d6389747a95a7f5808f19
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 22:32:39 2010 -0500
+
+ Cosmetics: Rename init_copy and update_context to have 'thread' in the name
+
+commit 69f085cebf61a64352e623d3c4a5d6032329473d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 10 11:33:47 2009 -0700
+
+ Don't change avctx->thread_count if frame_thread_init() fails.
+
+commit 69f6e77a9a9ddfc386d43f5a350df5c960c0203d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 04:11:52 2008 -0400
+
+ Remove useless check
+
+commit 6a26fe72383c0ab088c8d92733221bf2911231ce
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Oct 17 14:45:47 2008 -0400
+
+ Fix nonsense logic in copy_parameter_set()
+
+commit 6a3821cf92ef5aaba020a0b7c8d06df5926bd362
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 3 04:13:55 2008 -0400
+
+ Merge statements in mimic.
+
+commit 6abde3d9e6ccfb062c6f547334171665386b0d85
+Merge: d8014c6 4448f8c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri May 7 04:42:38 2010 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/options.c
+
+commit 6ae441be729df8064f1b1244acc82fead9cb1918
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 01:27:54 2008 -0400
+
+ Reduce code duplication in MPV_lowest_referenced_row
+
+commit 6b037a889a34f8f2dd8ad188cda6f4d09d9f4710
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 27 00:58:54 2008 -0400
+
+ Avoid a deadlock in damaged streams where the current picture ends up in h->ref_list.
+
+commit 6b5aa5cb4d105c4ed118d5ea07f64bbe1e94d135
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat May 23 23:10:33 2009 -0400
+
+ Remove inaccurate comment.
+
+ ff_report_frame_setup_done() is called properly for the first field.
+
+commit 6c575595d9d0e2974e326ad86db61bb61163753a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 21:01:51 2008 -0400
+
+ Add flag for thread algorithm
+
+commit 6d4679e9d5fedff6aa1eed964aa1449716f02682
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jan 20 02:17:36 2010 -0500
+
+ Add a FIXME comment to a commented-out part of h264.c.
+
+commit 6e508a7ab927ce7280688d822d3529dfbf17ec88
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 4 17:40:59 2008 -0400
+
+ Fix field progress allocation.
+
+commit 6fad2f2300fb9e6288d4c9cdf3028d07d3dd63a9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 17 15:41:20 2011 -0500
+
+ pthread: Fix missing mutex unlock in error condition
+
+ Also remove stray ;
+
+commit 700a6622f378b5169d8d54ea5bdb4d8b67262a22
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 24 23:29:40 2008 -0400
+
+ Merge another ++.
+
+commit 701ddc74e17de9f76eabf00a9e8d16adac7c2954
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue Nov 5 00:38:06 2002 +0000
+
+ BeOS Audio ouput patch by (Fran
+commit 7041a164baed1c643f0cfa1207fbb2fd06d81f38
+Merge: 84cde2e 483385a
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sun Jun 29 16:34:45 2008 +0900
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 70595dcbdbc01bb1f8f331c0998ee11f04577091
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 17:33:22 2010 -0500
+
+ unnecessary freep
+
+commit 706e94d6531daa0b179613dbef51af8ec5bbe1dd
+Merge: 7e928f6 e42b282
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 17 18:47:45 2010 -0700
+
+ Merge mainline and swscale.
+
+ One valgrind test currently fails.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/beosthread.c
+ libavcodec/h264.c
+ libavcodec/options.c
+ libavcodec/os2thread.c
+ libavcodec/utils.c
+ tests/ref/vsynth1/rgb
+ tests/ref/vsynth1/yuv
+ tests/ref/vsynth2/rgb
+ tests/ref/vsynth2/yuv
+
+commit 70bf5912700d0519f3d607784654c394633effac
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 18 21:58:17 2008 -0400
+
+ Add an mpegvideo wrapper around ff_report_decode_progress.
+
+commit 70fb3fdcf2c5f01a555d87f8113efb50286493f7
+Merge: 1d15df4 0b034be
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Mon Jun 9 18:03:54 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 71419720215a7ca7d1b1780564f21cb51d9df0a2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 15:45:52 2008 -0400
+
+ Copy all the MPEG-2 interlacing flags, as well as *_picture, in ff_mpeg_update_context().
+
+commit 73608e1fa14434599aab86d2198a05ec4ca21c59
+Merge: a5285ae 6a7ac9c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Sep 16 14:38:47 2009 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+ The definition of CODEC_CAP_FRAME_THREADS changed, but
+ clients shouldn't have had to check it for anything.
+
+commit 73ad08d3b0867db89e5a81b9aec44b053e855ab3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 24 03:31:14 2011 -0400
+
+ Draw edges in MPV_frame_end when encoding
+
+ These pictures don't get draw_horiz_band called on them.
+ I thought I had tried this, but after thinking about it realized I'd made
+ a typo the first time.
+
+ Fixes make test.
+
+commit 74f382ae597d9cf69c885bc03c716d18fdbd413c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Mar 16 23:12:44 2009 -0400
+
+ Disable frame threading for MPEG-4
+
+ It seems to have problems with packed B-frames in mplayer.
+ I don't know if any other players work (at least ffplay does).
+
+commit 753aecc29f8f4727326f0f371fa99fefbc369d0c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jul 15 02:58:51 2008 -0400
+
+ Lift H.264 display-order code before decode_slices.
+ This is needed for multithreading and should get us closer to CODEC_CAP_DRAW_HORIZ_BAND.
+
+commit 759176e401ebe8911e071f860f59b05d482315d0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 10 02:36:33 2011 -0500
+
+ Reorder picture_count in mpegvideo to fix ARM asm
+
+commit 75d4208c3a6ea4b9973b05ce930258ca8c3db224
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 25 01:06:31 2008 -0400
+
+ Disable mbskip copy avoidance harder with threads on
+ Fixes seeking in mpeg4.
+
+commit 76211d5890819ae687cc73520bcda17115a65697
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 23 23:14:10 2008 -0400
+
+ Update threading comments in avcodec.h
+
+commit 776e2fc2d7df09d184caf414cb1d93829fe1c38d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 01:11:58 2010 -0500
+
+ Fix missed things in previous VP3 commits
+
+ Optimization improvements only, because the pessimizations hid the bugs.
+
+commit 77f7818ac7b881a5aa024e31147255ed3a413141
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 19:00:24 2010 -0500
+
+ Fixed memory leak in todo
+
+commit 78c5ca40fac2dc13dac72cada9cc4b80551ee94c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 16 02:31:44 2011 -0500
+
+ Update todo.txt
+
+commit 78feacc6fae50a72dff68e75d0f718bc136dbe7b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 21 23:05:45 2008 -0400
+
+ Copy the other parts of MpegEncContext needed for h263
+ I'm not sure if mbskip can be made compatible with frame threads yet, so it's all zeroed for now.
+
+commit 795b6f2d87b241e98472c8d9771d4327712c6db9
+Merge: 20d6c33 4f24e1c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jan 13 01:52:27 2009 -0500
+
+ Merge mainline.
+
+ The conflict fix in h264.c has a strange-looking diff
+ but probably isn't a problem.
+ Reverted regression tests to mainline's.
+
+ Conflicts:
+
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+ libavcodec/mpegvideo.c
+ libavcodec/utils.c
+ tests/seek.regression.ref
+
+commit 79f3159ebbc55b4f2f885943badc5a847ecd612f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 26 03:09:09 2008 -0400
+
+ Split longer lines
+
+commit 7a08d7653f38851bd950264fa78174616395fd9a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 21 22:09:12 2008 -0400
+
+ Park all the threads in ff_frame_thread_free before ending them.
+
+commit 7aabc98254731f46d39fb0770b1445fe332797de
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jan 20 02:38:42 2010 -0500
+
+ The mplayer patch doesn't need to change vd_ffmpeg anymore.
+
+commit 7b14ed499f5dab39586f3b75ee03e29425b9383e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Aug 22 16:25:59 2008 -0400
+
+ Remove an unused variable.
+
+commit 7b46b8dc0c04a77108f0150a6fdf58a9b65d4aed
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 11 18:02:57 2008 -0400
+
+ Use USE_AVCODEC_EXECUTE instead of checking thread_count in h264.
+
+commit 7c7f43547b0ad8907d097b99a66f0fc3f171c9f3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 31 18:22:55 2008 -0400
+
+ Rename H264Context got_avcC to got_extradata.
+
+commit 7d0709ea04d6f2023052506c969d6db9b79f2963
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 26 00:39:26 2009 -0400
+
+ Reindent
+
+commit 7d09b684e9948bbe0e663e40ff0ce616018c0091
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 14 20:30:42 2008 -0400
+
+ Revert some h264 multithreading changes to make merging easier.
+
+commit 7e85791de30c9005ac722afd59c713c7faef5d7e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 15:41:14 2008 -0400
+
+ Retypeset/fix comments
+
+commit 7e8d959053b29d975c600eb89eb453496a860961
+Author: stefano <stefano@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sat May 15 17:34:45 2010 +0000
+
+ Avoid mixed declaration and code, fix C89 compatibility.
+
+ Patch by Fran
+commit 7e928f69148f6c90d35715f4380accb6fc4e88c4
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 24 02:41:43 2010 -0700
+
+ todo: Add secondary bug not fixed in last commit
+
+commit 7eac0bccc22daa54db7c40b530cf692af3f41274
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 18 16:55:03 2009 -0400
+
+ Update todo.
+
+commit 7ec92357ae09969eb5254ab6954b712d95b4630f
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue May 22 07:58:22 2007 +0000
+
+ cosmetic v1/v2 renaming
+ patch by Andreas
+�commit 7f86539559480910beab0ef568571dbe524ecda1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 25 02:46:29 2010 -0500
+
+ Rename avail_motion() and associated functions to something better.
+
+ What did "avail" mean, anyway?
+
+commit 7fc3b0d1f996b8a832017095244a3187b8d80f38
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Apr 4 00:23:21 2009 -0400
+
+ Remove client calls to avcodec_thread_init.
+
+ This function has no effect under ffmpeg-mt, since avcodec_open()
+ calls it anyway.
+
+commit 802206985550e6f685e42595f529133186388acc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 05:19:58 2010 -0500
+
+ Update todo.txt
+
+commit 8047714299aa3fb377b011cd68858b76a666c7cc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 25 19:39:24 2008 -0400
+
+ Whitespace nits
+
+commit 80a20f0fda854e6c8de05b971164d25425105c82
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 23 21:52:47 2008 -0400
+
+ Don't call ff_report_decode_progress for h264 B-frames.
+
+commit 80a7538f955a9cd931d840e1cb4e4c81e9d85165
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 04:14:51 2010 -0500
+
+ Write APIchanges.
+
+ avcodec_thread_init() will not be deprecated in this repository to
+ avoid generating warnings for users who shouldn't remove it just yet.
+
+commit 80ab88e74f9864442afca19ecc6ee0428623ff22
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 17:46:30 2008 -0400
+
+ Cosmetics: rename context variable.
+
+commit 8218d5319067aa1ac06c601e5dc530ebdab7c01f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 18:43:02 2008 -0400
+
+ Properly handle error returns from codec functions.
+
+commit 821c4d0996689ab27d5ab1b6bca0695503b02670
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 21 22:54:52 2008 -0400
+
+ Add 16x8 and 8x8 MVs to MPV_lowest_referenced_row()
+
+commit 822ed86c0ac4de7c38d443e23fcabf1b627118ea
+Merge: e340cac 17c125c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 18 13:58:23 2008 -0500
+
+ Merge mainline.
+
+ Conflicts:
+
+ libavcodec/h264.c
+ libavcodec/mpegvideo_enc.c
+
+commit 82324906156d303d5f3b3e10a1855bf05614ebfc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 18 02:24:09 2010 -0700
+
+ Revisit d812c6f8b1d897734d6f7b5f1a5c95d3aa10a3ea
+
+ The sps/pps_buffers logic wasn't correct, considering that SPS/PPS
+ can be found far before the first working frame.
+
+ Unfortunately this adds more code than it removes.
+
+ Fixes a crash and a memory leak in premiere_paff.ts.
+
+commit 824ee1ac826b89b84cc93fb77f38ec6530909f2b
+Merge: 686ea24 11dcccd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 17 03:39:49 2011 -0500
+
+ Merge remote branch 'mainline/master'
+
+commit 83b344d87b97ef6b72e84c145f2185f87ce22e9b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Apr 4 00:27:47 2009 -0400
+
+ Forbid calling avcodec_thread_init after avcodec_open.
+
+ Although ffplay used to do this, it never worked, since codecs
+ were free to check thread_count in their init functions.
+
+commit 83c7cc1ca1afe68b339b8554634a3a1effc76b45
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 21:24:03 2008 -0400
+
+ Add more to todo
+
+commit 83cbbb1a92d58a850d5b254b5f54e78a7bad8ca5
+Merge: ae7e6bb 7e61a90
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 30 09:59:29 2010 -0700
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+
+commit 8414fc85d03776bc622c9451e9b08f047af42676
+Author: Uoti Urpala <uau@glyph.nonexistent.invalid>
+Date: Sun Jan 2 11:52:30 2011 +0200
+
+ pthread: fix failure to initialize frame fields after flush
+
+ Commit b67d7055bf ("Clear returned pictures immediately after copying
+ them.") moved some code used to (re)initialize per-thread data before
+ starting to decode a new frame. The commit changed this to be done
+ after the results of decoding the previous frame had been returned to
+ the caller. This was buggy: when decoding state is flushed some
+ decoded frames may never be returned to caller, and thus there would
+ be no reinitialization before reusing the same thread for another
+ frame after the flush. In particular, *got_picture_ptr could be
+ incorrectly set when calling avcodec_decode_video2() after seeking.
+
+ Move the initialization code back to the previous location before
+ starting to decode a frame, but leave a line setting
+ PerThreadContext->got_picture to 0 also after returning a frame and
+ add a comment explaining why it is there.
+
+commit 846ae640182b4775db5b32cb027d964bf85d54a5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 03:16:03 2011 -0500
+
+ Longer comments in thread.h
+
+commit 84a94407509525ffca2e1691a73d186d0d10b1fd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 01:14:36 2008 -0400
+
+ Remove whitespace change from mainline
+
+commit 84cde2e4c7d97f3a9b5f9d4a4c722ccf38c82742
+Merge: f139f42 e73c602
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Tue Jun 24 13:31:01 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 854cff1a75a0c4433d6a25517326b2660a56693d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 01:05:33 2008 -0400
+
+ Enable multithreaded MDEC.
+
+commit 85730bc96115f75524f2780059a26ee6dbd8695e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 01:30:59 2008 -0400
+
+ H264: Skip filling in the parts of frame num gaps that are bigger than the number of reference frames.
+
+ My sample with a 256 frame or so gap doesn't work with ff_delayed_release_buffer otherwise.
+ No change on MR3_TANDBERG_B.264.
+
+commit 8666b987a1df652d830db8bae9c2d56287a8fc88
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 14:18:13 2008 -0400
+
+ Clarify comment for AVCodecContext frame_number
+
+ Number of frames returned vs. decoded isn't the same anymore
+
+commit 8682f8c0c7396bfe1bf9b4be3293beb4c6a10927
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Aug 22 03:25:03 2008 -0400
+
+ Rename and update comments for AVCodecContext variables.
+
+commit 86c6c4cff0bf8a734592f31591ec6fafb456387b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 01:46:32 2010 -0500
+
+ Cosmetics: fix overindent
+
+commit 878ad7601ad8eddec124877eb9b30b3df4a8c8b8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Feb 1 21:45:18 2011 -0500
+
+ Add missing test script.
+
+ Haven't used this one in a while.
+
+commit 87a9ad1b28ec7a4c9b08b949486010098c06a752
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 23:17:13 2008 -0400
+
+ Don't copy padding_bug_score.
+ This changes during h263 decode so it introduces a race condition.
+ Having a score for only every 1/n-threads frames is hopefully not too much less inaccurate.
+
+commit 880990f352fd8d557538535fc0496aec47d1c407
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 00:42:56 2008 -0400
+
+ Cosmetics: rename input and output context members
+
+commit 8884655418183d2ccde654febc9a88e8398c978a
+Merge: 8232490 f991c07
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 1 04:46:21 2010 -0700
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/vp8.c
+
+commit 8919a66d8ff492adc9455fd73f1da05d154281ff
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jan 15 19:27:39 2011 -0500
+
+ Re-enable multithreaded mpeg4.
+
+ Seems to work in mplayer, and is needed so I can investigate fixing the buffer
+ age+skip optimization.
+
+commit 8969edf8b07437e9110db82b7c75e57c00c3e842
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Aug 22 02:53:04 2008 -0400
+
+ Split a long line further.
+
+commit 899a30063b23ff008bbea3560c28fa194cfb1d77
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 11 18:04:42 2008 -0400
+
+ Simple patch to keep the non-pthreads OSes working.
+
+ They ignore thread_algorithm being set by the user for some minor simplicity gain, since I'd still like to see these files gone from mainline.
+
+commit 8a2e487269389d778ddf517baaff590b0a7b3f46
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 16:55:35 2010 -0500
+
+ Don't allocate thread_opaque progress with frame threading off.
+
+ It's not needed for anything and the extra check in ff_await/report_*
+ isn't slow.
+
+commit 8aa204a70a7f068f46f00e0983b4617f8030544a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu May 29 00:19:26 2008 -0400
+
+ Fix comments for new avcodec fields.
+
+commit 8ae6601b670156b36b227e2a3c0d9cdc72294bd5
+Merge: c91d7a2 cef0309
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 23 01:43:27 2010 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+
+commit 8ae9683ebce1e42c5bd1a24a2bcdcbf2cbfe6ccb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 16 02:29:08 2011 -0500
+
+ Update mplayer.diff to work around incompatibility with draw_horiz_band()
+
+commit 8af63f450185c3b15cc2ca32d2bc1a19f5d2a28e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 20:02:34 2010 -0500
+
+ Cosmetics: rename thread.h functions for consistency
+
+commit 8b7a5375ad0956f546c2b614594b79c3ec54de3d
+Merge: 3ad85b1 875fcc3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Oct 28 13:11:58 2009 -0400
+
+ Merge mainline.
+
+commit 8ba50a98f87edb2b87df042f09573ea8be4a8696
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Mar 28 03:54:31 2010 -0400
+
+ h264: Fix ff_h264_execute_ref_pic_marking() not being called with PAFF+threads
+
+ With some PAFF files, field_end() can call ff_h264_execute_ref_pic_marking()
+ during slice header decoding. This was disabled with threads on, which was wrong.
+
+ This patch fixes it at the cost of making control flow more confusing.
+
+ Partial fix for Chalet-Tire.mp4 from ffdshow.
+
+commit 8c946d1672281fc997dfb2679e7cbed48dd09216
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 23:07:07 2008 -0400
+
+ Set decoding progress as high as possible when multithreading is off.
+ This avoids possible crashes from trying to lock progress_mutex when it hasn't been created.
+
+commit 8d466e182aa89ca8cfbe57ce60f2a1e2a7ecebc7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Oct 13 14:37:22 2008 -0400
+
+ Fix incorrect frame num gap handling.
+
+ Fixes ORF1HD.Demo-Loop.720p.DD5.1.mkv from x264 samples.
+
+commit 8d8229014f489e1b2417676d9753f784d995e6c0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Dec 1 17:21:38 2008 -0500
+
+ Don't crash if flush_buffers is called after init and before the first decode.
+
+ Fixes mplayer -ss
+
+commit 8f759fa0e956f8cc33ccd423cefae23e25c16caf
+Merge: 9be00ab 1e8ecf7
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Tue May 20 11:46:04 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 9017898687ebedca27e47fdd13e6e5e208a5fbb6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 28 00:52:29 2008 -0400
+
+ Pad the frame data properly
+
+commit 9059683b29cd601361e477289a194e679aa72f8c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 12 16:22:27 2008 -0400
+
+ Limit ff_find_unused_picture to only part of s->picture.
+
+ Otherwise, a thread may call delayed_release_buffer and then later allocate a picture in the same place, reusing the other Picture variables while they're still in use.
+
+commit 9077d0ba4ed18e1f106723d155e81461c8951764
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Feb 17 00:55:36 2010 -0500
+
+ Comment recent change to update_context API.
+
+ Notes:
+ - It might be possible to revert this by making the vp3 decoder
+ behave like mpegvideo. Not faster but the code will be simpler.
+ - I don't like any of the old comments, they're too wordy.
+
+commit 9153938f1c1f0933ec59cee14cc26b8f99bd9090
+Merge: 661ca40 e48fb07
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 23 21:14:58 2009 -0400
+
+ Merge mainline.
+
+commit 91a7b18346baf82e0ccf6dfb53ada22299396f17
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 16:42:33 2008 -0400
+
+ Call codec init and free on the first thread context instead of the main context.
+
+ This is needed so we can stop using the main context for decoding threads.
+
+commit 91a7c2254bb3e82862c4cd916bd9f2ac1dd4c170
+Author: lucabe <lucabe@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Thu Sep 23 09:16:05 2010 +0000
+
+ Allow to set the frame rate in v4l2 devices
+ Patch by Jos
+� Miguel Gon
+commit 91cd95a84759702b85de68047d21a6ef9d32eaca
+Merge: 77f7818 f9f7b02
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 21:39:20 2010 -0500
+
+ Merge mainline and libswscale.
+
+ Upstream now always calls avcodec_thread_init().
+ It's better to do that differently here, so the
+ current code in ffmpeg.c has been kept.
+
+commit 92672ea0eee93244cc78e5023f6469c5b21754b5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 19:10:01 2008 -0400
+
+ Simplify: better use of variable names instead of weird struct accesses
+
+commit 93ac615ccf788df20279aa613f3fdc78d4bfcf18
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 23:56:22 2008 -0400
+
+ Simplify assert.
+
+commit 9457fb1458998f893b7e1f06f1144f8203cd0025
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 25 22:38:36 2009 -0400
+
+ Don't try to check list1 when it's not filled.
+
+ 9.1s -> 9.0s on 5cm.mp4
+
+commit 94985fa9745e2affd0cf3145fa35cb8ae87e7848
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 31 00:08:41 2009 -0400
+
+ Ensure the minor version is higher than mainline.
+
+ Missed this in previous merges, but I think it's important
+ to avoid confusing anyone reading ffmpeg tool output.
+
+commit 9576774bbee0215c0ab7bbb868ff35dff00ab900
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 03:02:44 2008 -0400
+
+ Merge ff_*_release_buffer into one function for simplicity and correctness (the non-delayed version was not really ever safe).
+
+commit 967e65496780c089956f2dc199b541dae3a3d9cb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 18 14:37:04 2008 -0500
+
+ Some todo entries I forgot to add
+
+commit 96d6751af35556785037bdddb500eeb7b47795e6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 23:08:45 2008 -0400
+
+ Call ff_thread_init() before the codec init.
+ This makes USE_AVCODEC_EXECUTE() properly available during init.
+
+commit 9816b66fb55fe03fd6f2a4db9390bdaa59eac697
+Merge: 1292a18 918f7b5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jan 22 03:39:04 2009 -0500
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+ Changed the value of CODEC_CAP_FRAME_THREADS and
+ adjusted use of config variables to match mainline.
+
+ Conflicts:
+
+ libavcodec/h263.c
+ libavcodec/h264.c
+ libavcodec/mpeg12.c
+ libavcodec/mpegvideo.c
+ libavcodec/pthread.c
+ libavutil/common.h
+
+commit 99ed04d4d7b7183a4d0a1b8833eee3b506e13ff0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 01:34:57 2011 -0500
+
+ Remove change to compute_pkt_fields which is no longer needed
+
+ May have been fixed by introduction of pkt_dts, but I'm not sure.
+ Either way, tests pass.
+
+commit 9a88884c03cd40d1fcbd247f1b004848fb629a11
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:55:20 2008 -0400
+
+ Simplify thread init and make more of its functions static.
+
+commit 9b27ce1e721a021128380e47e83a06f25c52e998
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri May 15 15:53:28 2009 -0400
+
+ Fix race condition decoding H264 direct prediction
+
+ There may be some code merging possible here.
+
+commit 9bac2ee137d9b8152e3beb98681b07f665cd58ee
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 5 20:36:38 2008 -0400
+
+ Cosmetics: rename ff_mt_*_buffer.
+
+commit 9be00ab6113d71a020eea4fd4483b8483efbb29d
+Merge: 63f663f 1531623
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sun May 11 08:53:10 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit 9c241058a255e1da6adec7db81e22d4ff8b2b6b2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 04:09:25 2008 -0400
+
+ Copy the entire reference list arrays in case they're used.
+
+ And that's it for SoC period commits.
+
+commit 9cd1083269334de974acdf13dd94451c178a0eca
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 29 04:47:23 2011 -0400
+
+ Fix mdec
+
+ init_copy rotted due to data structure changes.
+
+commit 9e0e492fe88ec0c7ec400e9afdbef8356280fc16
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 5 00:21:25 2008 -0400
+
+ Update the guard clause on avcodec_thread_execute().
+
+ It already works fine, since all codecs check USE_AVCODEC_EXECUTE themselves before calling it, but the function is for some reason part of the public API.
+
+commit 9e615b8534c98947cbbe6ada5047e95c36e14cde
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Sep 3 20:40:45 2008 -0400
+
+ Rename symbols to not mention decoding
+
+commit 9e981c8d263986e67de6170895125b1de7e62ddd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 11 02:05:50 2010 -0700
+
+ vp3: fix mt decode of 4:2:2 and 4:4:4 content
+
+ The threading improvements are poor and looks strange:
+ real 0m14.337s
+ user 0m13.200s
+ sys 0m1.132s
+
+ real 0m13.434s
+ user 0m19.409s
+ sys 0m7.091s
+
+ real 0m11.610s
+ user 0m21.870s
+ sys 0m7.303s
+
+ real 0m7.976s
+ user 0m20.681s
+ sys 0m3.277s
+
+ There may be a bug related to await_reference_row() being called too many times,
+ as it's in a loop per-chroma superblock and there are 2x as many of those
+ in 4:2:2, but not 2x as many MVs.
+
+ No idea why 4 threads have less sys overhead.
+
+commit 9ec47e33af6776b94875c91288db852a333a6f63
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 21 22:01:43 2008 -0400
+
+ Split the code for completing all current frames out of ff_frame_thread_flush.
+
+commit 9ec9f0868de2df3d3448dec887e7440ebb006b27
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 2 16:14:21 2010 -0700
+
+ Fix the last commit testing the wrong variable.
+
+ Luckily the idea was still right.
+
+commit 9ede817a98a263093ca7965f8754a1770ef031de
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 11 23:01:47 2008 -0400
+
+ Add a new -debug for tracing get_buffer calls.
+
+commit 9f15b87679392902206264383c16c7440d8c0f06
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 6 15:35:10 2008 -0400
+
+ Extra line snuck in while merging mainline.
+
+commit 9f6a425684e0fd0ac3f8bbd37ca4e2bc96e05d5b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 25 20:30:08 2009 -0400
+
+ Fix race condition with MBAFF frames.
+
+ mb_linesize is 2*linesize for MB_MBAFF too, which wasn't counted
+ in mc_dir_part_y, so the part of the MV added to 16*mb_y was 1/2
+ the right magnitude. Fix this by halving mb_y too (safe) and
+ doubling row values for MBAFF later.
+
+commit 9ff8764a15cce3fcf3f64270d7d4ec52a3ca7d1a
+Merge: 94985fa 08bbd7d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 31 01:19:07 2009 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit a1005396f05f5bc13c6aa6875337dbd0e6c4cd03
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:45:06 2008 -0400
+
+ Merge framethread.c into pthread.c.
+
+ Git doesn't track this very well...
+
+commit a1a5c549efd3a376fd5c8c77d49acfab89f8fdba
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 12 02:19:59 2008 -0400
+
+ Factor out size of delayed_pic.
+
+commit a210b422361b051ba73c115fe6bf65eaa745b19a
+Merge: f9515a4 ec6213f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 24 22:08:34 2009 -0500
+
+ Merge mainline and update swscale.
+
+ As a side effect, this fixes Theora/VP3 decode being broken.
+
+ Conflicts:
+ ffmpeg.c
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+ libavcodec/mpeg12.c
+ libavcodec/mpegvideo.c
+ libavcodec/vp3.c
+
+commit a2371d6c9b8837b472e22539642883979eac2ddf
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 18 14:26:37 2008 -0500
+
+ Update todo.
+
+commit a2efd25ba04e0cb61823cbf765651f437b691b09
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jan 6 06:31:45 2011 -0500
+
+ Update todo.txt and move one issue out of bug fixes that isn't a major issue
+
+commit a2fb22fb6988742ee28ee61e2e21fa05125517a9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 30 04:20:03 2008 -0400
+
+ Don't prefix static function names.
+
+commit a3a2674e27f8f2641d1603ee9e92e854289a0527
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Feb 1 23:13:49 2011 -0500
+
+ Fix pkt_pts change to ffmpeg.c
+
+ Caused tons of regressions in make fate.
+ This needs to be merged to mainline_patches.
+
+commit a4599a7f4e4a865a0b402297b4f5a11e9ca34a27
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Thu Jan 10 10:16:36 2008 +0000
+
+ Make pp_help a constant array of characters to move it to .rodata.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit a5285ae4d452abed92f43e2a7a24dd821343a39c
+Merge: a7b8cb3 6a3f0e9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 23 22:31:19 2009 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit a564fda546ce3bfd04cf8a0e4ec4fb1b6d40e010
+Merge: 287e761 5b4608b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 4 03:56:32 2010 -0500
+
+ Merge mainline and libswscale.
+
+ Auto-merge failed on h263.c for no apparent reason; the patch was
+ reimplemented by hand. Note that mt isn't enabled for h263 at the moment.
+
+ Conflicts:
+ ffmpeg.c
+ ffplay.c
+ libavcodec/h263.c
+
+commit a5cdcc9d4efcc043c01019f632dc1e5ad318802a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 25 20:16:54 2009 -0400
+
+ Rewrite mc_dir_part_y().
+
+ The previous one used a completely wrong value for filter_height
+ and didn't properly account for MVs extending past the top of the screen.
+ I'm not sure if MVs can be more than -pic_height, if they can this
+ may still be wrong.
+
+commit a61ab604725f647c1bcb46aa8cfb303a5c78a2b0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 25 16:39:14 2009 -0400
+
+ Theora: factor out updating last_frame.
+
+commit a74b85567073a424d5b7fc4bd8cc1e125df170f5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Sep 1 02:34:59 2008 -0400
+
+ Comment adjustment
+
+commit a7b8cb3c942fed6c80111519ba5505f11d61f3af
+Merge: 17dcbec 23e6da5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 20 16:47:50 2009 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit a903974adc7c8dd33dfb0acc4e2d6d10c09a23c8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Nov 11 12:45:09 2009 -0500
+
+ Add a next_outputed_poc to H264Context.
+
+ Doesn't do anything yet, but makes the next merge easier.
+
+commit aa11b5e0df5dfcaba21552e4864807f7aa65f5c5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 06:36:55 2010 -0400
+
+ pthread: Remove pointless line from frame_worker_thread()
+
+ It was introduced in the first commit, where it probably did something.
+
+commit aaa05da15fa7710503544d4a94319cb10d49a8f2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 2 02:59:16 2010 -0400
+
+ vp3: Remove redundant y*fragment_width+x calculations
+
+commit aacc74c0e2b047340a1a22f5c28aa03a4294aa03
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 03:40:15 2008 -0400
+
+ Reindent.
+
+commit ab4c84dd28c0375a6ed4f77f37ada3b94b2136a0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Dec 1 17:20:10 2008 -0500
+
+ Don't hide the warning about direct rendering in mplayer.
+
+commit abb53ce0e02d31fb282f55cecb58f9b0c4f5c136
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Feb 6 19:18:31 2011 -0500
+
+ pthread: Remove useless line
+
+commit ac2e1b12b5e608b80581d731c4f3a0d6c033e9e0
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue May 29 14:35:29 2007 +0000
+
+ allocate PPS and SPS dynamically
+ patch by Andreas
+�commit ac4539fba6d825d683d4a7d27f0045d068fe4595
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jan 7 12:48:42 2008 +0000
+
+ Mark the ff_svq1_frame_size_table as constant.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit ac4c37360b21a14e9b26502a299f831b8448a10b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 02:43:15 2010 -0500
+
+ Cosmetics: remove the COPY() macro
+
+commit ac7f2102c4249a89144c36944e13bf6be56e9190
+Author: kabi <kabi@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Apr 8 12:32:01 2002 +0000
+
+ * support for .au .gif .mov .mp4 by Fran
+commit adfaa1f86196156e30c54799303269f4a4f84a2d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 26 16:14:00 2008 -0400
+
+ Cosmetics: split a long line.
+
+commit ae2790af78a332a6aa836607a14546c5cc1865e5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Oct 12 18:55:48 2008 -0400
+
+ Add multithreading for PAFF/MBAFF.
+
+commit ae4251429ee5e333fc705c61959417c1d9364b9e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 18 14:15:24 2008 -0500
+
+ Switch to mphq git module
+
+commit ae7e6bb9708a0f0dac89295c788266e0f15899d2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 25 03:14:27 2010 -0400
+
+ H.264: Fix rare race condition.
+
+ h->mb was not cleared when initializing a new decoder thread.
+ This could cause wrong pixel values in the first macroblock of
+ the first frame to be decoded by each thread.
+
+ I suspect this is nearly the last visible bug affecting x264 content.
+
+ Fixes [SS]_Angel_Beats!_-_06_(1280x720_H.264)_[A01DDBD8].mkv.
+
+commit af52a126f36cd6339f9f4a1152103ef88b4b8fee
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 27 18:09:49 2009 -0400
+
+ Call handle_delayed_releases() before update_context().
+
+ This allows releasing frames in update_context(), which would
+ previously cause a race condition/deadlock.
+
+commit af79370b65b396e05c319d29356e456a8f5e8233
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jan 7 12:44:49 2008 +0000
+
+ Make the av_class member of PPContext a poiner to constant AVClass.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit afafe7361da5a9373d02dc60d597da8f2185edd3
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sat Nov 2 10:31:37 2002 +0000
+
+ added perm inheritance from ffmpeg_g (it looks like 'strip' in BeOS doesn't keep them, though the Linux one does !?)
+ patch by (Fran
+commit afc391b7ab5eda271733bbe55ef46118aba75bff
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sat Jul 20 20:05:50 2002 +0000
+
+ beos/mov/adpcm patch by Fran
+commit afe0428ae38f68a467b43cc9358b7a1a2f85d36b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 18:09:11 2008 -0400
+
+ Fix memory leak in mpegvideo
+
+commit b05eb30ba838b981c769217e1d2215777484f25a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 02:34:46 2011 -0500
+
+ Make the src parameter of update_thread_context() const
+
+commit b07e45974b2772e3a747502f976dc08d0ffcff74
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 18 16:21:03 2009 -0400
+
+ Indent.
+
+commit b125b68fe6dc2d0064d45d0cffc3bcb47263f32c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 18:50:32 2010 -0500
+
+ Remove fixed entry from the todo.
+
+commit b18683e3adc997b19cf56f459ce5f8a7428c0909
+Author: diego <diego@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sun Oct 18 14:34:45 2009 +0000
+
+ Fix typo that mistakenly slipped into previous commit:
+ CONFIG_MPEG_XVMC_DECODER was changed to CONFIG_MPEGVIDEO_XVMC_DECODER.
+ patch by Onur K
+�
+commit b1c8c18fe11d3155b1df6a19117d14fa633bcd15
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sat Nov 2 10:39:22 2002 +0000
+
+ added MACE (Macintosh Audio Compression/Expansion) 3:1 & 6:1 support
+ contribution by Laszlo Torok <torokl@alpha.dfmk.hu>
+ 4CC 'MAC3' and 'MAC6' in Quicktime.
+ It works for mono streams, needs to be fixed for stereo when I get my hands on a stereo sample :)
+ patch by (Fran
+commit b3cdfccd2b11e247e0c17e02d0c958888da5585b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 04:14:41 2010 -0500
+
+ avcodec.h: Update comments
+
+commit b3d5e9333051802b20446076605b404e418323c4
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 26 00:34:11 2009 -0400
+
+ Skip unnecessary lock-wait-unlocks for condition variables.
+
+commit b3e3f071ca5ad99444bac95e4128c01a8ae7bae3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 11 11:32:00 2009 -0700
+
+ Split out if (current_slice == 1)
+
+commit b4221d5453d6dc893e87b77eecc845da121ddb56
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 18 17:06:32 2008 -0400
+
+ Reorder ff_frame_thread_free to fix memory errors.
+
+ This fixes using mutexes after they're destroyed and not calling release_buffer on every buffer.
+ Unfortunately the change to MPV_common_end is exactly the opposite of what's needed for supporting width/height changes.
+
+commit b483ed4f4af9444cfaa6ff9336645d799d2254dd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:33:51 2008 -0400
+
+ Remove the unused debugging counters from frame threading.
+
+commit b67d7055bf60313c40b6369f98cfc9d1eae3aefb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Sep 2 00:52:48 2008 -0400
+
+ Clear returned pictures immediately after copying them.
+
+ This isn't protected by a mutex but is still safe.
+ Needed for the next commit.
+
+commit b68110d079914d16c9fc5d1cc8c6e10d78dbdbca
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 15:05:49 2008 -0400
+
+ H264: Set the decode progress for fake reference frames to the maximum.
+
+ Fixes deadlock in premiere-paff.ts at the expense of some indeterminism on the first frame.
+
+commit b77accec9077ae8f072091fc7301d661bc9487ba
+Merge: 5d3c2f7 392faa1
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Tue Jul 29 15:11:05 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit b7d182610b592eef0714c1d2de18c3233a289b69
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 24 01:06:33 2009 -0400
+
+ Update mplayer.diff whitespace
+
+commit b7e0f1a3bfd00b0256dcdd3efc4b7b77c086e70e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 22:38:42 2008 -0400
+
+ Rename doxygen group to not conflict with h264
+
+commit b88c3baf94247f2687ca0c05b0ce6af7c905e02a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 24 22:40:00 2010 -0400
+
+ Fix more old merge glitches.
+
+commit b9a8973031be583af53be890ccdef07841394385
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 22:31:35 2008 -0400
+
+ Use output_cond for notifying the main thread.
+
+commit ba073d39f18679835b48b96f20feae96dad1f343
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Apr 11 23:00:19 2011 -0400
+
+ h264: cosmetic whitespace change
+
+commit ba8b789143dc6a14c29393e40fb361c1a3e2ccd4
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 01:53:10 2008 -0400
+
+ Update todo
+
+commit babb66241ae51e2956aa698d425c645ad056936e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Oct 17 14:52:35 2008 -0400
+
+ Copy avctx->height/width for mpegvideo.
+
+ Not sure what the difference between the three width variables is, really.
+
+commit bad2bf8621c04791f0d9a0a2873a3b6042d4ba83
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun May 24 00:48:57 2009 -0400
+
+ Copy new fields in update_context_from_copy().
+
+commit bb67674aa57e23893f2f19bd4ffb4a92b5a01e83
+Merge: 06ac5ac 6051838
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 20 17:39:15 2010 -0700
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit bba0e098a75f14af80bfd4fdfdf9edcaf8f3fee5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 20 03:32:19 2009 -0400
+
+ Factor out vp3 table allocation into new function.
+
+commit bbc5744117da188c43e00c4f02f6ff0fe984d4f8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 13 15:52:21 2008 -0400
+
+ Print the AVCodecContext address in av_log instead of AVClass.
+ This makes logging much easier to read when there's more than one context.
+
+commit bc1cc6f39a0f6df2cc1d0fecd3eb14efd150763a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Feb 3 01:29:21 2010 -0500
+
+ Cosmetics: Don't use #if HAVE_PTHREADS in thread.h.
+
+ These two macros will be removed entirely in the future.
+
+commit bd392934097dc5c909e9b06550ec1d13d92fa134
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Aug 15 23:34:32 2008 -0400
+
+ Set output_size properly before calling the decoder so it doesn't return nonsense and crash at the end
+
+commit bd63cf4721466aea490f6f0455a32060d572d5ba
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sun Jul 21 07:54:53 2002 +0000
+
+ YUV410P to YUV420P patch by Fran
+commit bdaeaaa58f24393027e112c02896b23fe0b3cc01
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Oct 13 11:23:47 2008 -0400
+
+ Add buffer padding to the end of bitstream_buffer.
+
+ Fixes a warning in valgrind.
+
+commit bdef29429d4f488012cb492e61cf20ffe0b858a7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 6 15:48:52 2008 -0400
+
+ Fix compilation with threads disabled.
+
+commit be45bc423ba576e1d06df3664cfe91e02d78ffa5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Feb 15 00:00:35 2010 -0500
+
+ Fix a deadlock in mpeg1 threaded decoding
+
+ Fake frames need their progress set to INT_MAX.
+
+ This can be triggered by seeking in mpeg1, but this is not the correct fix,
+ since seeking to keyframes does seem to work properly without threads.
+
+commit bf806642ab67148d93a4f24e7dbdc8644575c45b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 18:59:28 2010 -0500
+
+ When frame_thread_init() fails, free the failed thread context as well.
+
+commit bffb1c874ec2c9f7ea9c6830d852955a3c2805a0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:51:34 2008 -0400
+
+ Make ff_*_thread_free static.
+
+commit c01185fe11dd2ce35f798d16faec17fcfc64c7c4
+Author: kabi <kabi@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Fri Mar 8 09:09:57 2002 +0000
+
+ * BeOS patch by Fran
+commit c05a51580b56d1479083b1460dc29492b3fb6b16
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 00:53:15 2008 -0400
+
+ Track allocated buffer size properly. Don't allocate buffer padding since the user already did it.
+
+commit c1b0bddeaf947ef49c63b412918d73fe7a645ba5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 04:08:01 2010 -0500
+
+ pthread: Update and sort the fields copied in update_context_from_thread/update_context_from_user
+
+ Changes to pthread.c are finished.
+
+commit c29d645dfd2c8168e7c9009638ddb88928e706be
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 06:12:26 2010 -0400
+
+ Copy time_base between threads.
+
+ Appears to be used by the h263 decoder.
+
+commit c2a400d3a5da10f8f2a9c2aa89d9396efe428029
+Merge: b77acce e96a4b0
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Thu Aug 14 22:16:09 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit c2e19261fe08c2d96d4bf082e97bebcdf12566f2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 20 21:24:24 2010 -0500
+
+ Remove USE_FRAME_THREADING and USE_AVCODEC_EXECUTE macros.
+
+ Requested in original review, might help making sure pthread emulation
+ works for encoding tests.
+
+commit c2e9a1fc965de63271c7c4ddffd7e938ce1bfd93
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue Nov 6 16:28:32 2007 +0000
+
+ ffplay currently needs special handling for pausing in some protocols.
+ Patch by Bj
+�rn Axelsson: bjorn ; axelsson commit c2eed2a91101a90f2172e81755ca4d655de90443
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Nov 3 22:13:07 2010 -0400
+
+ vp3: Cosmetic changes
+
+commit c370b927b6d1f0e092e43d58ee29046e5accad1a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Feb 6 19:18:10 2011 -0500
+
+ Improve comment in avcodec.h
+
+commit c378f545f65d536e55ebe1ac85d170a15e7748eb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:12:01 2008 -0400
+
+ Reindent.
+
+commit c45bb41ec61522dcdb97618a0f6fafd8a32d529b
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jan 7 12:42:02 2008 +0000
+
+ Make v4l.c's video_formats constant and static.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit c4649d2e370c04c7f5cfcf0b444edc6116ba03f8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 25 03:16:09 2010 -0500
+
+ Avoid freeing buffers twice when closing mpegvideo.
+
+ This fixes a harmless "unreleased buffers" warning due to the design
+ of delayed releasing. This is probably a bad way to do it (won't
+ work if resolution changing is supported) but I can't think of a
+ better one that's simple.
+
+commit c5137d0d9e355aecc7e60cef0d2314468b77a147
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jan 15 22:52:30 2011 -0500
+
+ Update todo.txt
+
+commit c563b57b187279c1af0f723110bdab815fac6385
+Merge: 65e8486 6a3327b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Apr 3 21:23:47 2009 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/mpegvideo.c
+
+commit c58218c681e51a1b392ddb0177dcff8fc8e99d1c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 12 00:45:01 2008 -0400
+
+ Use HAVE_PTHREADS instead of ENABLE_PTHREADS for mplayer compatibility.
+
+commit c5ca1f6b5227f8f7a26f889c123c4358ee15596e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jan 15 22:51:43 2011 -0500
+
+ Pass pkt_dts properly through multithreading
+
+ A/V sync should work in all cases now once guess_correct_pts()/clients
+ adopt AVFrame.pkt_dts.
+
+commit c6a59ddd734c7ca92862bce47ec686e16da627ee
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jun 19 18:32:12 2009 -0400
+
+ Remove frame_num stuff from todo.
+
+ The current code is actually correct.
+
+commit c6bbd5d91408d6dd795dfbbdfba2cef62696d765
+Author: michael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sun Jan 8 17:06:26 2006 +0000
+
+ fixing second last time Fran
+commit c6f5097967de5ed420cd56a1a77b60a705fcee48
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 05:09:03 2008 -0400
+
+ Disable frame threading if low_delay or randomly truncated frames are used.
+
+commit c75cec5217fc23206476e2d1c894e8a6ddcd81b9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Mar 29 02:25:19 2009 -0400
+
+ Fix missing ff_get/release_buffer calls in mdec.
+
+commit c83670eeb613b9509555d4ddcac559a37cc1c5bc
+Merge: 2063f77 dde06af
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Dec 15 15:20:06 2010 -0500
+
+ Merge mainline.
+
+ Version wasn't updated this time.
+
+ Conflicts:
+ doc/APIchanges
+ libavcodec/avcodec.h
+
+commit c91d7a205df4dd224461b96749b9ce12e2bf6825
+Merge: 4874d25 04c74fc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 19 16:51:42 2010 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/options.c
+ libavcodec/utils.c
+
+commit ca89b49eff34604b1354888cd041f474d988c122
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 23 04:16:16 2008 -0400
+
+ Fix ff_frame_thread_flush()
+ It should setup the context to be just like decoding starting from scratch.
+
+commit cac4bca0570a9b9ffdd3b49590fe1e41fd5568b0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 27 15:02:21 2009 -0400
+
+ Fix conditions for drawing edges.
+
+ They shouldn't be drawn for B-frames/intra only (for speed)
+ and when hwaccel is on (for correctness).
+
+commit cba830597c99b7a6de57b3cd2209d22598bb72b1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Feb 13 22:45:07 2010 -0500
+
+ Backport VP3 crash/deadlock fix from mainline r21781.
+
+ Previously, if get_buffer() failed when allocating a golden frame,
+ it would access it in a later frame without checking it first.
+ r21781 unintentionally fixed this.
+
+ This should be impossible to trigger, but some other bug in -mt
+ causes this with frequent seeking.
+
+commit cbaa375d4cb1320093199e8abe1ce7bcf389036d
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sat Nov 2 21:05:54 2002 +0000
+
+ gcc optimization on BeOS (patch by Fran
+commit cbc8d8bec42b371522b0724f27454a96881c4164
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Apr 19 02:47:32 2010 -0400
+
+ Disable multithreading the first field in PAFF.
+
+ At least one PAFF .mp4 file has two fields per packet, which can't
+ work with -mt - instead it needs to split the fields up like packed
+ B-frames do.
+
+ Fixes Chalet-Tire.mp4. Pessimizes otherwise working files.
+
+commit cc33ba7cd7ebbf14b62b0783fb7272e41b484aea
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 14:41:53 2010 -0400
+
+ Cosmetics: arbitrary reordering of some pthread struct members
+
+commit ccd0d039a3d2fd70a9e947cc2faf79ca091dd687
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Fri Apr 25 21:52:45 2008 +0200
+
+ Incorporate swscale as submodule
+
+commit cd71fb4386961bc860c3abc4cf464b580366d57d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jan 25 16:33:26 2011 -0500
+
+ Forgot to git add the test failures list
+
+commit cdc193d0dbc2f0775d177f46036eca0d813f56ff
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 6 15:53:33 2008 -0400
+
+ Use static functions instead of macros for consistency.
+
+commit cf2561f8dcc3143f9c479bba1d9be91339f23726
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 02:22:56 2011 -0500
+
+ Write longer comments for callbacks
+
+ Also neglected to update get_buffer to mention thread_safe_callbacks
+
+commit cf528d74cd7321219880eb06b94a8de0ba5741ff
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 17 16:50:51 2008 -0400
+
+ Fix another memory leak.
+
+commit cf56bb126e7c056740e51c6c13304b03260b4b47
+Merge: ccd0d03 08baa31
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sat May 3 12:18:40 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit d0c772c8021702ca79ce2aceeba75902231c0101
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue Jul 23 22:05:35 2002 +0000
+
+ patch by Fran
+commit d103d4fac41b32915b45534d49d1e6a195b4220b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Feb 3 01:00:14 2010 -0500
+
+ Simplify thread.h by removing the stub functions.
+
+ They don't really help anything, if (HAVE_PTHREADS && ...) is sufficient.
+
+commit d15ab0f03a257293c0e13eac8b9b031da73c48f3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 3 04:41:33 2008 -0400
+
+ Macroize some threading checks.
+
+commit d21f769ead6bd4c24d867b7e9beeb8ffcc86b271
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Aug 6 20:36:04 2008 -0400
+
+ Revert renaming pthread.c.
+
+commit d2f8287d8526f814bcc88d827775d39ddc5c5f22
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 17 14:34:22 2011 -0500
+
+ Update todo.txt to put important things at the top
+
+commit d359ab19a25afa7dae20229e62dc0e37b6179ea7
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Mon Jul 22 01:44:08 2002 +0000
+
+ adpcm encoding patch by Fran
+commit d419a1c1d30e1b171fba7dc31a909e77a08016ba
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 24 03:51:18 2008 -0400
+
+ Comment utility functions in pthread.c
+
+commit d460fd8d253c90f20536dffe69a6ea20dc113106
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 15:57:28 2008 -0400
+
+ Simplify codec close
+
+commit d4fad7c7f05e6fd7d677eaf1069e04c94b946a0c
+Merge: f3f3d11 980ab8d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Feb 2 21:41:11 2010 -0500
+
+ Merge mainline and libswscale.
+
+ ffplay's pts reordering is better now, so ffplay.c has been reverted
+ to mainline.
+
+ Conflicts:
+ ffplay.c
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+
+commit d5227efafd855f028338480f937b6ad4a86ef7ac
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 12 18:24:28 2008 -0400
+
+ Don't check MAX_THREADS unless slice threading is on.
+
+commit d5c16c23327d84373fca125b884254550b79c8d7
+Author: mmu_man <mmu_man@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Sun Jan 23 09:59:36 2005 +0000
+
+ Revert the fixed-size-sample patch as it brokes and others
+ WTF I thought I had commited this yesterday... was probably too asleep :commit d5ea5fc7342e3a1b082659bccd5ffd90a911b780
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu May 7 01:19:55 2009 -0400
+
+ Replace the number of frames option with a number of frames to skip.
+
+ The old option wasn't really useful (ffmpeg -t saves more time)
+ and this is needed to deal with broken stream clips, which are
+ common and tend to decode differently under mt anyway, which I
+ don't really care about.
+
+commit d611b2bcb3ce231242f566cee08a61798a36abc8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 18 05:03:36 2009 -0400
+
+ Fix race condition upon return from decode_init().
+
+ We can't call report_frame_progress on every returned frame,
+ because they may be returned while a past thread is still decoding
+ them. Instead ensure frames always have this called on them after
+ their decode is done.
+
+ Should fix all bugs for valid H.264 streams without frame num gaps.
+
+commit d62b7c03b163c3dc067f122ab9fec44de87b37ae
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 01:54:27 2010 -0500
+
+ VP3: Only call await_reference_row() for luma
+
+ 4.3% -> 2.1% cpu on big_buck_bunny_1080p_stereo.ogg.
+ It should be further reducable since VP3 has limited MV range.
+
+commit d6bb0443c9b316b8cf29720524b4819fb2e6b6a1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 4 01:50:20 2008 -0400
+
+ Don't mention nonexistant variables in comments
+
+commit d71a7eef9e540b00b0f91d840116e43206390645
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 24 16:45:27 2010 -0400
+
+ h264: Delete lines accidentally left behind during a merge
+
+commit d7cfe6d5cbffa42e178d88d7c647d37431e21861
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Feb 1 22:20:19 2011 -0500
+
+ Fix dropped frames at the beginning of h264 decoding, fixes FATE tests
+
+ Patch by Ronald Bultje (rsbultje@gmail.com)
+
+commit d8014c67ff1ef20ca05302dea9e262a3089d996e
+Merge: 604ee54 4ce0d81
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat May 1 04:03:03 2010 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit d812c6f8b1d897734d6f7b5f1a5c95d3aa10a3ea
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 24 02:25:25 2010 -0700
+
+ Fix crash on close when decoding a single-frame h264 file with 3+ threads
+
+ Problematic code path:
+ 1. sps_buffers[0] is allocated in the first thread's codec context when the
+ decoder is opened.
+ 2. The first thread context is memcpy'd to the other threads by frame_thread_init().
+ 3. The first thread is closed and its sps_buffers[0] is freed.
+ 4. The third thread is closed.
+ Because it never got to decode a frame, update_thread_context was never called,
+ and sps_buffers[0] still contained the first thread's pointer.
+
+ Fixed by not trying to free sps/pps buffers if the thread wasn't initialized.
+ I didn't properly consider this when designing it but this seems to be the
+ best approach anyway.
+
+ Fixes still2.mp4 crash from Chromium
+
+commit d84fc3dfd3e051c782d063ccba4cc8cadba38797
+Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue Nov 5 00:56:08 2002 +0000
+
+ MIN/MAX sys/param.h patch by (Fran
+commit d93fe0ea6b1b8121fdb9521fa7eeac0dc494deeb
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue Nov 6 16:19:09 2007 +0000
+
+ Allow propagation of stream selection through the ASF demuxer to the
+ MMSH protocol handler.
+ Patch by Bj
+�rn Axelsson: bjorn ; axelsson commit d955ab0dfa73578eaa6a9d1dcb821ce9db409738
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 29 04:53:11 2011 -0400
+
+ Update todo. More items appeared...
+
+commit da70ded7141aa191b92672c343cd29a0014d861f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 18 13:27:51 2008 -0500
+
+ Update todo
+
+commit da7bdb1273da15a90bfe08ead91e397247916d11
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 24 03:24:17 2008 -0400
+
+ Get rid of tabs
+
+commit da86d2da9f6a76238a9d788ecd77f714981e666d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 4 01:40:51 2008 -0400
+
+ Reindent.
+
+commit da95175e7ce1f911db992fef213322345200feaf
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jul 14 01:52:37 2008 -0400
+
+ Add a parameter to not draw top/bottom in draw_edges.
+
+commit db2a99d28931128c8598067ae06444ab79f579f8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 9 17:29:47 2009 -0700
+
+ Fix typo in comment.
+
+commit dbfbadaa095b65a724ac848d551cfa2aa33e2f6a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 11 05:16:14 2010 -0400
+
+ Update todo.
+
+ Got another h264 bug report with the same cause as before.
+
+commit dc53861aadac1d43391b28e4e9793393b26394b9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 18 20:52:34 2008 -0400
+
+ Always set decode progress to the maximum at the end of decoding
+ This saves doing it for frames with AC partitioning and such.
+ We can't do it if the codec didn't return a frame, so there is still an opportunity for deadlocks here, maybe.
+
+commit dc7c4d436681e43a9f351dd18f70d0dc008aa55e
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Thu Jan 10 10:18:00 2008 +0000
+
+ Make MMX vectors constants.
+ Patch by Diego 'Flameeyes' Petten
+� flameeyes commit dd9e04497937b7fffdcc65a2b41e36089412d975
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 29 17:18:21 2011 -0400
+
+ Remove unnecessary parameter from ff_thread_init() and fix behavior
+
+ thread_count passed to ff_thread_init() is only used to set AVCodecContext.
+ thread_count, and can be removed. Instead move it to the legacy implementation
+ of avcodec_thread_init().
+
+ This also fixes the problem that calling avcodec_thread_init() with pthreads
+ enabled did not set it since ff1efc524cb3c60f2f746e3b4550bb1a86c65316.
+
+commit ddc8310d2a9300139d1821954dfa2d0b775edaa1
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Feb 11 22:12:03 2010 -0500
+
+ Fix mutex leak introduced in 0040d6f2ba.
+
+ If allocate_progress() failed, the error condition returned before
+ unlocking its mutex.
+
+commit de365823ec9546a3bd688690e79fc15281a68f1f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 23 01:26:42 2010 -0700
+
+ todo: fix ugly word wrapping
+
+commit de736aacd945d66109197a6f04baf915d458f5ac
+Merge: 7eac0bc 780a37c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 18 17:53:09 2009 -0400
+
+ Merge mainline.
+
+commit de8abf54671555bb166bb1d44a34fe14e360e2a5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 16:37:24 2010 -0500
+
+ Rename and document MAX_DELAYED_RELEASED_BUFFERS.
+
+commit dedc2982f2f845357f28dff401fe5df8510c6a8f
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue May 22 08:28:32 2007 +0000
+
+ id3v2 writer
+ patch by Andreas
+�commit df444fadf045bf70058da9b074b8f848fc2209b1
+Merge: 14bdf76 1476e6a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 02:04:43 2010 -0500
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit df5d7acdcd0dcbfca6f8fd4f76c9369cb1674435
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 17:32:24 2008 -0400
+
+ Don't reuse the user's AVCodecContext for the first decoding thread, and copy more values between them as needed.
+
+ This fixes a large class of race conditions (coded_frame works again) and should improve frame dropping.
+
+commit dfb8be0a60b9562cf7bb6e54dd67088ff51f83b0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 24 21:35:14 2008 -0400
+
+ Call avcodec_get_frame_defaults() before decoding.
+
+commit e0285f04bed7fefba5f75d05c81b145f44fc49f5
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jul 31 18:40:46 2008 -0400
+
+ Use got_extradata instead of frame_number to guard against rereading extradata.
+
+ frame_number is no longer valid internally, since I don't want to change its definition from the user's perspective.
+ mpeg12 does the same thing, but I can't find or create any mpeg1+extradata samples to check it.
+
+commit e044d5c79ab340cf52842ba8452d670959eb37c0
+Merge: 3c3a364 5115473
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Nov 7 04:54:47 2008 -0500
+
+ Merge mainline into ffmpeg-mt
+
+ - Handle reordered_opaque properly
+ - Picture.field_picture is a duplicate of Picture.mbaff,
+ but is necessary, since interlaced_frame can't be trusted
+ and mbaff can't be interpreted without it.
+
+commit e0dc361e0f0aa315320a549a4fda3424226c556f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Sep 1 03:35:23 2008 -0400
+
+ Update todo
+
+commit e174657cbb973abf5de9085d00d85ac04d29a475
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 28 17:11:09 2008 -0400
+
+ Move avcodec_thread_init call before avcodec_open in ffplay.
+
+ It makes no sense to have it after, since a decoder is not forbidden from reading it during init.
+ Encoders already do.
+
+commit e1f49541b976cdd091aa41f116e7c9fd0c740cf3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 17 23:35:55 2008 -0400
+
+ Fix rounding for mpeg1 MVs.
+
+commit e23b687201a076161384fbc7a2f76bd0092dd34c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jan 20 02:36:18 2010 -0500
+
+ Include the delay from frame threads in has_b_frames.
+
+ This is an API change, but anything that already counted thread_count
+ just has an incorrectly high max delay size, which shouldn't be a
+ problem.
+
+commit e2b9383929e2c703eabd1df8afcb9fa5ad7106ec
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jun 15 17:36:59 2008 -0400
+
+ Add choice of threading algorithm to AVCodecContext.
+
+ Use it to simplify USE_* macros.
+ FF_THREAD_AUTO needs to be handled better - even if a codec can handle frame-threads, we still don't want to use them if there are enough slices available.
+
+commit e2ecdd48d664f2660bfd661f1cef6276b986743b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jul 25 03:12:58 2008 -0400
+
+ Simplify mpeg_decode_update_context.
+
+commit e303003362829a7f2f1dcbc45d6abc9ac7a59b6a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 14 22:59:01 2008 -0400
+
+ Reindent.
+
+commit e340cacc56545c5fc3a903c68fec99e8921d579e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Nov 8 06:13:23 2008 -0500
+
+ Disable r15412 for now to avoid crashes.
+
+ update_context can't handle picture pts not pointing to picture and I couldn't think of a better way to do it at 5 am.
+ May not actually fix anything.
+
+commit e345a54e5f86d9777e4c3ccb04aad84f9cd77ff0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Mar 8 04:55:43 2010 -0500
+
+ Add optimization note to todo.
+
+commit e39c3828e02fe71ce627170bc8c26a558f29f4b8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Feb 15 00:39:39 2010 -0500
+
+ Update todo
+
+commit e3f13a4f70b1310309ebb462b1011721cb3692fe
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 4 14:05:31 2008 -0400
+
+ Rename new symbols to be shorter
+
+commit e4565c5731bfcd8808d02f47f115e21dc6fc8b35
+Merge: 4b9ce55 fb61a7c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Mar 10 02:25:55 2011 -0500
+
+ Merge branch 'master' of git://git.ffmpeg.org/ffmpeg
+
+ Conflicts:
+ .gitignore
+ doc/APIchanges
+ ffplay.c
+ libavcodec/arm/asm-offsets.h
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+ libavcodec/mpegvideo.h
+ libavcodec/options.c
+ libavcodec/pthread.c
+ libavcodec/thread.h
+ libavcodec/utils.c
+ libavcodec/vp3.c
+ libavcodec/vp8.c
+ libavformat/utils.c
+
+commit e45cf6d46cb45e6edcf9e4ac368b2a013ba30158
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 14 04:01:08 2008 -0400
+
+ Add todo and some other files.
+
+ Trailing whitespace in mplayer isn't my fault.
+
+commit e4df986f3d2d3e1be9b0f4eeda463fa854910b8f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 28 00:41:52 2008 -0400
+
+ Revert unnecessary setting of the wrong variable
+
+commit e53d020b37ca26ffa4cdb22d2b40321897f52ba9
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 23 20:39:06 2008 -0400
+
+ Warn if users try to use frame threading without pthreads.
+
+commit e717770ee8437c296e012e908b772ba2eaeb2ed3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jul 15 03:16:22 2008 -0400
+
+ Create next_delayed_pic for multithreading purposes
+ unreference_pic is intentionally unchanged.
+
+commit e71a2b5017728022fa1f992a8b541260615016b2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 18 23:22:01 2008 -0400
+
+ Use USE_FRAME_THREADING instead of checking for thread_opaque, since it might be the wrong type.
+
+commit e74ef89858732b9fc4a90c8ec8fbb701407eb987
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 22:50:22 2008 -0400
+
+ Split setting avctx->thread_count from the rest of pthread init.
+ Make sure it's called from whichever of avcodec_open and avcodec_thread_init comes later.
+
+commit e7519b6532409e332fc9727ea5a57e148e6655a6
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Thu May 15 01:03:48 2008 +0000
+
+ Make av_set_string() fail when number could not be set.
+ Patch by Stefano Sabatini stefanocommit e8bc7da9d69234ebbcbde371c5a0e20f8b5cfccc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 25 02:59:00 2010 -0500
+
+ Remove accidental extra variable declaration
+
+commit e95251807c0ae66ffef1e4ad113b9773a287fa5a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 27 22:14:45 2009 -0400
+
+ Get rid of static variables in VP3.
+
+ These are pointless and might behave wrong with thread-local
+ statics.
+
+commit e9a0e5eaf5207321baf90160b1094300f3810ecf
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jun 23 21:21:44 2008 -0400
+
+ Use FF_INPUT_BUFFER_PADDING_SIZE for the buffer.
+
+commit ea396d38059476a54c5855e0bd81955c60238b22
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Nov 3 22:50:02 2010 -0400
+
+ Rewrite comments in thread.h and fix parameter names in ff_thread_decode_frame
+
+commit ebce21c15f3aaf1b4512436ed8fc2e71a504bb11
+Merge: 3630d89 5570afd
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 18 12:49:54 2008 -0500
+
+ Merge mainline.
+
+ Conflicts:
+
+ libavcodec/avcodec.h
+ libavcodec/mpegvideo.c
+ libavcodec/utils.c
+
+commit ed3e2ae1277cc425ef133f10700ace86629381ef
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 13 16:05:09 2008 -0400
+
+ Remove useless variable.
+
+commit ed42183540e2a886a7368b8220e0b50aaf363551
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Sep 30 16:53:03 2010 -0400
+
+ Fix hang decoding VP3/Theora.
+
+ draw_horiz_band changed to only draw the displayed height instead of the
+ decoded height. This meant that we never reported progress for the last few
+ decoded pixels, but still awaited them, which deadlocked.
+
+ This shouldn't cause any race conditions, because it always decodes the last
+ few pixels along with the last decoded pixels.
+
+ Patch by Yuriy Kaminsky (yumkam mail ru).
+
+commit ed5e8392e2fce8e6b0468de4ae1a4310d338ee46
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 28 02:29:08 2008 -0400
+
+ Simplify(?) threaded avcodec_flush_buffers
+
+commit ed728b0a05c2154b07cc3d8330d5900dbc45f1d7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue May 27 23:25:47 2008 -0400
+
+ Guard against avcodec_thread_execute() being called without being setup.
+
+commit edb60439feb2c5d39cda314178686eea151185b3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 1 12:54:47 2010 -0400
+
+ vp3: Assume MVs are their maximum length of 16 pixels
+
+ This makes it worse (although slightly simpler) in preparation for further
+ optimization.
+
+commit ee8430539ec7cc23b7cf6332e26751f539315d5b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jul 6 15:56:28 2008 -0400
+
+ Don't include the codecs' threading support functions without some kind of threading enabled.
+ As a side effect this makes non-pthreads threading even more problematic.
+
+commit eed4b9708287066ccc1b3042110f7c3379f63ee2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Aug 28 01:44:44 2008 -0400
+
+ Simplify disabling MB skipping
+
+commit ef26f878e0e581cb61f1e9b376bec4f7ff07397a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Mar 9 01:48:18 2010 -0500
+
+ Cosmetics: fix outdated comment
+
+commit ef2d8664f1eff56e969801ecd1c5b7c729902819
+Merge: 11b1a8e 9c7037f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Jun 8 14:29:22 2010 -0700
+
+ Merge mainline and libswscale
+
+commit efd1fb08db3e7964357dc00fd514cfb156b4ee69
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 11 11:33:09 2009 -0700
+
+ Reindent.
+
+commit f139f42301a5ee861f1a91cdfcceb2a85349fa29
+Merge: 70fb3fd 7210b4e
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sun Jun 22 12:08:59 2008 +0200
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit f143b66d9bf8b23985bf8ec6acf8273c3e9ccd1d
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Aug 19 21:12:32 2008 -0400
+
+ Handle NULL threads if they aren't started because of an init error.
+
+commit f1936d87290c7444090d6cb101b0d7c9270f0a81
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Thu Jun 24 15:22:33 2010 +0000
+
+ Set an opaque alpha value when decoding rgba ffv1.
+ Patch by Thad Ward coderjoe69commit f1fe312cb47cbc540da764cbab3582739a20a8d2
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 5 20:30:58 2008 -0400
+
+ Cosmetics: make thread.h look like other prototypes.
+
+commit f374d2ee585d7f6c98ffd3a7803223552497904e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 04:13:06 2011 -0500
+
+ Simplify change to avcodec_close() and fix a merge glitch in avcodec_open()
+
+commit f3c88f32b8c806b352cf6e00d6ac80fd32e9f54c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Sep 3 11:45:09 2008 -0400
+
+ Field picture API support
+
+commit f3f3d1189de648862ca204676dd7591262f590df
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Jan 25 04:12:34 2010 -0500
+
+ Add todo note about a change to thread.h I mean to do.
+
+commit f4d4d43f3a596941b2214ac1e71bb818eb230d6b
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Fri Jan 21 02:43:30 2011 -0500
+
+ Minor update to thread.h comment
+
+commit f4fb456b114eafc22b8ab9bb0bb3e7f13a4fbd9a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Nov 2 02:56:12 2010 -0400
+
+ vp3: Revert motion_y removal
+
+ Although it doesn't have much of an effect on speed either way, I reconsidered
+ the simplification I wanted to do, and now I'd rather keep this as an example
+ of proper multithreading structure.
+
+commit f52df8ebae0ad1db15c5e804a458ca81e04c6156
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Aug 25 14:33:09 2008 -0400
+
+ Fix whitespace mistake
+
+commit f550857de3ffcb6b2980c4c952b7e84db478d399
+Merge: d62b7c0 a175a04
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Mar 27 02:01:59 2010 -0400
+
+ Merge mainline.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h264.c
+ libavcodec/options.c
+ libavcodec/vp3.c
+
+commit f5596f046c05bc7d8afda7658f891d69587934f0
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon Nov 15 01:38:36 2010 -0500
+
+ Rewrite comments and cosmetic changes to pthread.c
+
+ Some small code changes, but there shouldn't be any behavior change.
+
+commit f695698a78e07a45f4cc9d24ae95fd73f25600e7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jan 26 12:43:05 2011 -0500
+
+ Update todo.txt with review feedback
+
+commit f6d7d0c03c8d7c91a39c9374d9cee83e32627681
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Feb 6 19:04:21 2011 -0500
+
+ pthread: Cosmetic changes and renaming
+
+ Rename frame->packet, picture->frame.
+ Use /**< to point to the right field in doxygen.
+ Fix some typos.
+
+commit f71e7068faabecc32abc798a09b9df403f85e33f
+Merge: 2bbb64d a4f892e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jan 6 05:45:03 2011 -0500
+
+ Merge mainline.
+
+ Conflicts:
+ doc/APIchanges
+
+commit f7cc4441b7046a542ef655575ce3e8684ff12e02
+Merge: bba0e09 9eac0a6
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jun 20 15:58:38 2009 -0400
+
+ Merge mainline.
+
+commit f9515a4e57356bce4d652451fbaccd071d91dbe9
+Merge: a903974 0c28ee7
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Nov 11 15:38:20 2009 -0500
+
+ Merge mainline.
+
+ In h264, next_outputed_poc is now used in decode_postinit()
+ where mainline uses outputed_poc.
+
+ Conflicts:
+ libavcodec/avcodec.h
+ libavcodec/h263dec.c
+ libavcodec/h264.c
+ libavcodec/utils.c
+
+commit f9b01bbf85d68f23a81ec5325fae81c8518cc385
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 25 20:06:00 2009 -0400
+
+ Remove unnecessary check from mc_dir_part_y().
+
+ This was already remove from mc_dir_part(). I hope it's unnecessary
+ here too.
+
+commit fa3f68f39f4a96a1170eadfe6ba4677d5d25017f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 16 04:23:20 2008 -0400
+
+ Document functions in thread.h
+
+commit fa8a82e991280b7ccac89ed2a29b332e609bc370
+Author: Luca Barbato <lu_zero@gentoo.org>
+Date: Sat May 3 15:18:01 2008 +0200
+
+ Switch to the gitorius mirror of libswscale
+
+commit fafaae289235b361b6786745dcbdf6fa938c3c2e
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Dec 4 01:46:22 2008 -0500
+
+ Don't compare pthread_t to NULL
+
+ It's not required to be a pointer, and it doesn't
+ need to be validated since pthread_join will just
+ return an error if it doesn't exist.
+
+ Reverts f143b66d9bf8b23985bf8ec6acf8273c3e9ccd1d
+
+commit fb1afd9eba5fe2752b83c4b3de24ed88e14b534a
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Mar 14 00:56:54 2009 -0400
+
+ Rewrite todo (again...) split up so other people should be able to understand it.
+ Add yuvcmp, though maybe it should go somewhere else.
+
+commit fb1f31ff6cbcbbde72920e731223fd0fb8f05d02
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Aug 30 04:26:47 2008 -0400
+
+ Update multithreading doc
+
+commit fb7dfc0e9e9ff8a5030cde46e28d49d6ce73e453
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Jan 24 22:15:56 2010 -0500
+
+ Always call avcodec_thread_init() in avcodec_open().
+
+ This matches upstream behavior, but neither of them have any effect.
+ It allows implementing automatic thread counts, though.
+
+commit fbb871069bd106bfd47d215216be01d1ef30aec8
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Feb 14 23:47:42 2010 -0500
+
+ Reindent vp3.c.
+
+commit fc957c71da6c9a7e5c769e15f256652352f7b4a4
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 24 17:31:38 2010 -0400
+
+ Fix compile with --disable-optimizations.
+
+ gcc can't remove dead code like:
+ int threaded = HAVE_PTHREADS;
+ if (threaded) ...
+
+commit fd1b8587a4186b30c5922e3053c869726cca23df
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Nov 4 03:55:19 2010 -0400
+
+ Remove ff_thread_finish_frame() as it seems not useful enough
+
+commit fd9ae0065aa268c4b3e46706d775cf4ba1df8ed3
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed May 28 01:34:30 2008 -0400
+
+ Obfusticate the decoder to make the context copyable earlier.
+
+commit fda3e64cd474b5886457c6a1ffff8906f76a9bbc
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Thu Jun 18 16:11:26 2009 -0400
+
+ Mimic: move up a line changing buf_ptrs.
+
+ No effect on decoding, but it breaks the rule about changing
+ things after frame_setup_done.
+
+commit fdb381e68a3828dcc7eb1c93cf174b702cc78d2c
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Feb 17 00:39:42 2010 -0500
+
+ Cosmetics: rename function parameters
+
+commit fe4e238f573bab53760408b3376dbba0255e5b51
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 25 20:00:50 2009 -0400
+
+ Fix unnecessarily long wait for direct+progressive MBs.
+
+commit fe529c93b41f2d7406b76e7e5943b82acd789cb4
+Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
+Date: Tue May 22 08:23:45 2007 +0000
+
+ id3v2 reader
+ patch by Andreas
+�commit febe154099b8f31817e8c047cb3c8dee51b52117
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Wed Jun 16 14:54:00 2010 -0700
+
+ Fix merge glitch: pix_fmts should have been deleted
+
+commit feca6e0009da2b344b2c1be8f30a55c23623d77e
+Merge: 2485cfd feaafaa
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Mon May 25 19:58:17 2009 -0400
+
+ Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
+
+commit ff08d3a1629ab442f78a1d2fde496b727a1a9deb
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sat Jul 12 22:26:43 2008 -0400
+
+ Fix MPV_lowest_referenced_row to not be completely wrong.
+ The not handling qpel and emu_edge bugs were masked by the other bugs preventing almost all parallelism.
+
+commit ff4c627baab555a4ea6275c919d9f4259adc0e58
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Tue Oct 6 15:41:35 2009 -0400
+
+ Word-wrap todo.txt.
+
+ Try to make some of it cleaner
+ so other people can actually
+ use it.
+
+commit ff69da3564ab912f7e7331f8c8389a96a254e16f
+Author: Alexander Strange <astrange@ithinksw.com>
+Date: Sun Aug 1 20:33:57 2010 -0700
+
+ Fix the decoder not returning any frames if the frame count is less than the number of threads
+
+ Fixes ./mt-work/test.sh with still2.mp4
+
diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi
index cabf395582..fe9e9a9e92 100644
--- a/doc/ffmpeg.texi
+++ b/doc/ffmpeg.texi
@@ -166,7 +166,10 @@ Set the number of video frames to record.
@item -r @var{fps}
Set frame rate (Hz value, fraction or abbreviation), (default = 25).
@item -s @var{size}
-Set frame size. The format is @samp{wxh} (ffserver default = 160x128, ffmpeg default = same as source).
+Set frame size. The format is @samp{wxh} (ffserver default = 160x128).
+There is no default for input streams,
+for output streams it is set by default to the size of the source stream.
+If the input file has video streams with different resolutions, the behaviour is undefined.
The following abbreviations are recognized:
@table @samp
@item sqcif
@@ -399,7 +402,10 @@ and the following constants are available:
@end table
@item -rc_override @var{override}
-rate control override for specific intervals
+Rate control override for specific intervals, formated as "int,int,int"
+list separated with slashes. Two first values are the beginning and
+end frame numbers, last one is quantizer to use if positive, or quality
+factor if negative.
@item -me_method @var{method}
Set motion estimation method to @var{method}.
Available methods are (from lowest to best quality):
@@ -793,7 +799,7 @@ A preset file contains a sequence of @var{option}=@var{value} pairs,
one for each line, specifying a sequence of options which would be
awkward to specify on the command line. Lines starting with the hash
('#') character are ignored and are used to provide comments. Check
-the @file{ffpresets} directory in the Libav source tree for examples.
+the @file{ffpresets} directory in the FFmpeg source tree for examples.
Preset files are specified with the @code{vpre}, @code{apre},
@code{spre}, and @code{fpre} options. The @code{fpre} option takes the
@@ -810,6 +816,7 @@ following rules:
First ffmpeg searches for a file named @var{arg}.ffpreset in the
directories @file{$FFMPEG_DATADIR} (if set), and @file{$HOME/.ffmpeg}, and in
the datadir defined at configuration time (usually @file{PREFIX/share/ffmpeg})
+or in a @file{ffpresets} folder along the executable on win32,
in that order. For example, if the argument is @code{libx264-max}, it will
search for the file @file{libx264-max.ffpreset}.
@@ -1039,6 +1046,7 @@ file to which you want to add them.
@c man end EXAMPLES
@include eval.texi
+@include decoders.texi
@include encoders.texi
@include demuxers.texi
@include muxers.texi
@@ -1055,11 +1063,11 @@ file to which you want to add them.
@settitle ffmpeg video converter
@c man begin SEEALSO
-ffplay(1), ffprobe(1), ffserver(1) and the Libav HTML documentation
+ffplay(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
-The Libav developers
+The FFmpeg developers
@c man end
@end ignore
diff --git a/doc/ffplay.texi b/doc/ffplay.texi
index e5de3d2d6d..7b99666f1f 100644
--- a/doc/ffplay.texi
+++ b/doc/ffplay.texi
@@ -20,9 +20,9 @@ ffplay [options] @file{input_file}
@chapter Description
@c man begin DESCRIPTION
-FFplay is a very simple and portable media player using the Libav
+FFplay is a very simple and portable media player using the FFmpeg
libraries and the SDL library. It is mostly used as a testbed for the
-various Libav APIs.
+various FFmpeg APIs.
@c man end
@chapter Options
@@ -58,6 +58,24 @@ Force format.
Set window title (default is the input filename).
@item -loop @var{number}
Loops movie playback <number> times. 0 means forever.
+@item -showmode @var{mode}
+Set the show mode to use.
+Available values for @var{mode} are:
+@table @samp
+@item 0, video
+show video
+@item 1, waves
+show audio waves
+@item 2, rdft
+show audio frequency band using RDFT ((Inverse) Real Discrete Fourier Transform)
+@end table
+
+Default value is "video", if video is not present or cannot be played
+"rdft" is automatically selected.
+
+You can interactively cycle through the available show modes by
+pressing the key @key{w}.
+
@item -vf @var{filter_graph}
@var{filter_graph} is a description of the filter graph to apply to
the input video.
@@ -156,6 +174,7 @@ Seek to percentage in file corresponding to fraction of width.
@c man end
@include eval.texi
+@include decoders.texi
@include demuxers.texi
@include muxers.texi
@include indevs.texi
@@ -169,11 +188,11 @@ Seek to percentage in file corresponding to fraction of width.
@settitle FFplay media player
@c man begin SEEALSO
-ffmpeg(1), ffprobe(1), ffserver(1) and the Libav HTML documentation
+ffmpeg(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
-The Libav developers
+The FFmpeg developers
@c man end
@end ignore
diff --git a/doc/ffprobe.texi b/doc/ffprobe.texi
index 5e856e6645..ee4ffb9671 100644
--- a/doc/ffprobe.texi
+++ b/doc/ffprobe.texi
@@ -111,8 +111,8 @@ with name "STREAM".
@end table
@c man end
+@include decoders.texi
@include demuxers.texi
-@include muxers.texi
@include protocols.texi
@include indevs.texi
@@ -122,11 +122,11 @@ with name "STREAM".
@settitle ffprobe media prober
@c man begin SEEALSO
-ffmpeg(1), ffplay(1), ffserver(1) and the Libav HTML documentation
+ffmpeg(1), ffplay(1), ffserver(1) and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
-The Libav developers
+The FFmpeg developers
@c man end
@end ignore
diff --git a/doc/ffserver.conf b/doc/ffserver.conf
index 62728b036c..217117005c 100644
--- a/doc/ffserver.conf
+++ b/doc/ffserver.conf
@@ -371,7 +371,7 @@ ACL allow 192.168.0.0 192.168.255.255
# Redirect index.html to the appropriate site
<Redirect index.html>
-URL http://www.libav.org/
+URL http://www.ffmpeg.org/
</Redirect>
diff --git a/doc/ffserver.texi b/doc/ffserver.texi
index d247016bbc..ad75e4fb5e 100644
--- a/doc/ffserver.texi
+++ b/doc/ffserver.texi
@@ -266,11 +266,11 @@ rather than as a daemon.
@c man begin SEEALSO
ffmpeg(1), ffplay(1), ffprobe(1), the @file{ffmpeg/doc/ffserver.conf}
-example and the Libav HTML documentation
+example and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
-The Libav developers
+The FFmpeg developers
@c man end
@end ignore
diff --git a/doc/fftools-common-opts.texi b/doc/fftools-common-opts.texi
index 3a1cb3b23c..d72ca5cc00 100644
--- a/doc/fftools-common-opts.texi
+++ b/doc/fftools-common-opts.texi
@@ -88,6 +88,6 @@ can be disabled setting the environment variable
@env{FFMPEG_FORCE_NOCOLOR} or @env{NO_COLOR}, or can be forced setting
the environment variable @env{FFMPEG_FORCE_COLOR}.
The use of the environment variable @env{NO_COLOR} is deprecated and
-will be dropped in a following Libav version.
+will be dropped in a following FFmpeg version.
@end table
diff --git a/doc/filters.texi b/doc/filters.texi
index 9666f582f2..719d94f45a 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -92,7 +92,7 @@ Follows a BNF description for the filtergraph syntax:
@chapter Audio Filters
@c man begin AUDIO FILTERS
-When you configure your Libav build, you can disable any of the
+When you configure your FFmpeg build, you can disable any of the
existing filters using --disable-filters.
The configure output will show the audio filters included in your
build.
@@ -155,7 +155,7 @@ tools.
@chapter Video Filters
@c man begin VIDEO FILTERS
-When you configure your Libav build, you can disable any of the
+When you configure your FFmpeg build, you can disable any of the
existing filters using --disable-filters.
The configure output will show the video filters included in your
build.
@@ -586,7 +586,7 @@ format=yuv420p:yuv444p:yuv410p
Apply a frei0r effect to the input video.
To enable compilation of this filter you need to install the frei0r
-header and configure Libav with --enable-frei0r.
+header and configure FFmpeg with --enable-frei0r.
The filter supports the syntax:
@example
@@ -701,6 +701,104 @@ a float number which specifies chroma temporal strength, defaults to
@var{luma_tmp}*@var{chroma_spatial}/@var{luma_spatial}
@end table
+@section mp
+
+Apply an MPlayer filter to the input video.
+
+This filter provides a wrapper around most of the filters of
+MPlayer/MEncoder.
+
+This wrapper is considered experimental. Some of the wrapped filters
+may not work properly and we may drop support for them, as they will
+be implemented natively into FFmpeg. Thus you should avoid
+depending on them when writing portable scripts.
+
+The filters accepts the parameters:
+@var{filter_name}[:=]@var{filter_params}
+
+@var{filter_name} is the name of a supported MPlayer filter,
+@var{filter_params} is a string containing the parameters accepted by
+the named filter.
+
+The list of the currently supported filters follows:
+@table @var
+@item 2xsai
+@item blackframe
+@item boxblur
+@item cropdetect
+@item decimate
+@item delogo
+@item denoise3d
+@item detc
+@item dint
+@item divtc
+@item down3dright
+@item dsize
+@item eq2
+@item eq
+@item field
+@item fil
+@item fixpts
+@item framestep
+@item fspp
+@item geq
+@item gradfun
+@item harddup
+@item hqdn3d
+@item hue
+@item il
+@item ilpack
+@item ivtc
+@item kerndeint
+@item mcdeint
+@item mirror
+@item noise
+@item ow
+@item palette
+@item perspective
+@item phase
+@item pp7
+@item pullup
+@item qp
+@item rectangle
+@item remove-logo
+@item rgbtest
+@item rotate
+@item sab
+@item screenshot
+@item smartblur
+@item softpulldown
+@item softskip
+@item spp
+@item swapuv
+@item telecine
+@item test
+@item tile
+@item tinterlace
+@item unsharp
+@item uspp
+@item yuvcsp
+@item yvu9
+@end table
+
+The parameter syntax and behavior for the listed filters are the same
+of the corresponding MPlayer filters. For detailed instructions check
+the "VIDEO FILTERS" section in the MPlayer manual.
+
+Some examples follow:
+@example
+# remove a logo by interpolating the surrounding pixels
+mp=delogo=200:200:80:20:1
+
+# adjust gamma, brightness, contrast
+mp=eq2=1.0:2:0.5
+
+# tweak hue and saturation
+mp=hue=100:-10
+@end example
+
+See also mplayer(1), @url{http://www.mplayerhq.hu/}.
+
@section noformat
Force libavfilter not to use any of the specified pixel formats for the
@@ -728,7 +826,7 @@ Pass the video source unchanged to the output.
Apply video transform using libopencv.
To enable this filter install libopencv library and headers and
-configure Libav with --enable-libopencv.
+configure FFmpeg with --enable-libopencv.
The filter takes the parameters: @var{filter_name}@{:=@}@var{filter_params}.
@@ -1065,6 +1163,122 @@ scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
scale='min(500\, iw*3/2):-1'
@end example
+@section select
+Select frames to pass in output.
+
+It accepts in input an expression, which is evaluated for each input
+frame. If the expression is evaluated to a non-zero value, the frame
+is selected and passed to the output, otherwise it is discarded.
+
+The expression can contain the following constants:
+
+@table @option
+@item PI
+Greek PI
+
+@item PHI
+golden ratio
+
+@item E
+Euler number
+
+@item n
+the sequential number of the filtered frame, starting from 0
+
+@item selected_n
+the sequential number of the selected frame, starting from 0
+
+@item prev_selected_n
+the sequential number of the last selected frame, NAN if undefined
+
+@item TB
+timebase of the input timestamps
+
+@item pts
+the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in @var{TB} units, NAN if undefined
+
+@item t
+the PTS (Presentation TimeStamp) of the filtered video frame,
+expressed in seconds, NAN if undefined
+
+@item prev_pts
+the PTS of the previously filtered video frame, NAN if undefined
+
+@item prev_selected_pts
+the PTS of the last previously filtered video frame, NAN if undefined
+
+@item prev_selected_t
+the PTS of the last previously selected video frame, NAN if undefined
+
+@item start_pts
+the PTS of the first video frame in the video, NAN if undefined
+
+@item start_t
+the time of the first video frame in the video, NAN if undefined
+
+@item pict_type
+the picture type of the filtered frame, can assume one of the following
+values:
+@table @option
+@item PICT_TYPE_I
+@item PICT_TYPE_P
+@item PICT_TYPE_B
+@item PICT_TYPE_S
+@item PICT_TYPE_SI
+@item PICT_TYPE_SP
+@item PICT_TYPE_BI
+@end table
+
+@item interlace_type
+the frame interlace type, can assume one of the following values:
+@table @option
+@item INTERLACE_TYPE_P
+the frame is progressive (not interlaced)
+@item INTERLACE_TYPE_T
+the frame is top-field-first
+@item INTERLACE_TYPE_B
+the frame is bottom-field-first
+@end table
+
+@item key
+1 if the filtered frame is a key-frame, 0 otherwise
+
+@item pos
+the position in the file of the filtered frame, -1 if the information
+is not available (e.g. for synthetic video)
+@end table
+
+The default value of the select expression is "1".
+
+Some examples follow:
+
+@example
+# select all frames in input
+select
+
+# the above is the same as:
+select=1
+
+# skip all frames:
+select=0
+
+# select only I-frames
+select='eq(pict_type\,PICT_TYPE_I)'
+
+# select one frame every 100
+select='not(mod(n\,100))'
+
+# select only frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)'
+
+# select only I frames contained in the 10-20 time interval
+select='gte(t\,10)*lte(t\,20)*eq(pict_type\,PICT_TYPE_I)'
+
+# select frames with a minimum distance of 10 seconds
+select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
+@end example
+
@anchor{setdar}
@section setdar
@@ -1211,6 +1425,65 @@ settb=2*intb
settb=AVTB
@end example
+@section showinfo
+
+Show a line containing various information for each input video frame.
+The input video is not modified.
+
+The shown line contains a sequence of key/value pairs of the form
+@var{key}:@var{value}.
+
+A description of each shown parameter follows:
+
+@table @option
+@item n
+sequential number of the input frame, starting from 0
+
+@item pts
+Presentation TimeStamp of the input frame, expressed as a number of
+time base units. The time base unit depends on the filter input pad.
+
+@item pts_time
+Presentation TimeStamp of the input frame, expressed as a number of
+seconds
+
+@item pos
+position of the frame in the input stream, -1 if this information in
+unavailable and/or meanigless (for example in case of synthetic video)
+
+@item fmt
+pixel format name
+
+@item sar
+sample aspect ratio of the input frame, expressed in the form
+@var{num}/@var{den}
+
+@item s
+size of the input frame, expressed in the form
+@var{width}x@var{height}
+
+@item i
+interlaced mode ("P" for "progressive", "T" for top field first, "B"
+for bottom field first)
+
+@item iskey
+1 if the frame is a key frame, 0 otherwise
+
+@item type
+picture type of the input frame ("I" for an I-frame, "P" for a
+P-frame, "B" for a B-frame, "?" for unknown type).
+Check also the documentation of the @code{AVPictureType} enum and of
+the @code{av_get_picture_type_char} function defined in
+@file{libavutil/avutil.h}.
+
+@item checksum
+Adler-32 checksum of all the planes of the input frame
+
+@item plane_checksum
+Adler-32 checksum of each plane of the input frame, expressed in the form
+"[@var{c0} @var{c1} @var{c2} @var{c3}]"
+@end table
+
@section slicify
Pass the images of input video on to next video filter as multiple
@@ -1226,6 +1499,21 @@ not specified it will use the default value of 16.
Adding this in the beginning of filter chains should make filtering
faster due to better use of the memory cache.
+@section split
+
+Pass on the input video to two outputs. Both outputs are identical to
+the input video.
+
+For example:
+@example
+[in] split [splitout1][splitout2];
+[splitout1] crop=100:100:0:0 [cropout];
+[splitout2] pad=200:200:100:100 [padout];
+@end example
+
+will create two separate outputs from the same input, one cropped and
+one padded.
+
@section transpose
Transpose rows with columns in the input video and optionally flip it.
@@ -1379,9 +1667,10 @@ This source is mainly intended for a programmatic use, in particular
through the interface defined in @file{libavfilter/vsrc_buffer.h}.
It accepts the following parameters:
-@var{width}:@var{height}:@var{pix_fmt_string}:@var{timebase_num}:@var{timebase_den}:@var{sample_aspect_ratio_num}:@var{sample_aspect_ratio.den}
+@var{width}:@var{height}:@var{pix_fmt_string}:@var{timebase_num}:@var{timebase_den}:@var{sample_aspect_ratio_num}:@var{sample_aspect_ratio.den}:@var{scale_params}
-All the parameters need to be explicitely defined.
+All the parameters but @var{scale_params} need to be explicitely
+defined.
Follows the list of the accepted parameters.
@@ -1402,6 +1691,11 @@ timestamps of the buffered frames.
@item sample_aspect_ratio.num, sample_aspect_ratio.den
Specify numerator and denominator of the sample aspect ratio assumed
by the video frames.
+
+@item scale_params
+Specify the optional parameters to be used for the scale filter which
+is automatically inserted when an input change is detected in the
+input size or format.
@end table
For example:
@@ -1416,7 +1710,7 @@ Since the pixel format with name "yuv410p" corresponds to the number 6
(check the enum PixelFormat definition in @file{libavutil/pixfmt.h}),
this example corresponds to:
@example
-buffer=320:240:6:1:24
+buffer=320:240:6:1:24:1:1
@end example
@section color
@@ -1534,7 +1828,7 @@ timebase. The expression can contain the constants "PI", "E", "PHI",
Provide a frei0r source.
To enable compilation of this filter you need to install the frei0r
-header and configure Libav with --enable-frei0r.
+header and configure FFmpeg with --enable-frei0r.
The source supports the syntax:
@example
diff --git a/doc/general.texi b/doc/general.texi
index 23a789572d..f965e05b8f 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -11,13 +11,13 @@
@chapter external libraries
-Libav can be hooked up with a number of external libraries to add support
+FFmpeg can be hooked up with a number of external libraries to add support
for more formats. None of them are used by default, their use has to be
explicitly requested by passing the appropriate flags to @file{./configure}.
@section OpenCORE AMR
-Libav can make use of the OpenCORE libraries for AMR-NB
+FFmpeg can make use of the OpenCORE libraries for AMR-NB
decoding/encoding and AMR-WB decoding.
Go to @url{http://sourceforge.net/projects/opencore-amr/} and follow the instructions for
@@ -27,7 +27,7 @@ installing the libraries. Then pass @code{--enable-libopencore-amrnb} and/or
Note that OpenCORE is under the Apache License 2.0 (see
@url{http://www.apache.org/licenses/LICENSE-2.0} for details), which is
incompatible with the LGPL version 2.1 and GPL version 2. You have to
-upgrade Libav's license to LGPL version 3 (or if you have enabled
+upgrade FFmpeg's license to LGPL version 3 (or if you have enabled
GPL components, GPL version 3) to use it.
@@ -37,7 +37,7 @@ You can use the @code{-formats} and @code{-codecs} options to have an exhaustive
@section File Formats
-Libav supports the following file formats through the @code{libavformat}
+FFmpeg supports the following file formats through the @code{libavformat}
library:
@multitable @columnfractions .4 .1 .1 .4
@@ -72,7 +72,7 @@ library:
@tab Multimedia format used by Delphine Software games.
@item CD+G @tab @tab X
@tab Video format used by CD+G karaoke disks
-@item Core Audio Format @tab @tab X
+@item Core Audio Format @tab X @tab X
@tab Apple Core Audio Format
@item CRC testing format @tab X @tab
@item Creative Voice @tab X @tab X
@@ -162,6 +162,7 @@ library:
@item NUT @tab X @tab X
@tab NUT Open Container Format
@item Ogg @tab X @tab X
+@item Playstation Portable PMP @tab @tab X
@item TechnoTrend PVA @tab @tab X
@tab Used by TechnoTrend DVB PCI boards.
@item QCP @tab @tab X
@@ -268,7 +269,7 @@ library:
@section Image Formats
-Libav can read and write images for each frame of a video sequence. The
+FFmpeg can read and write images for each frame of a video sequence. The
following image formats are supported:
@multitable @columnfractions .4 .1 .1 .4
@@ -283,8 +284,7 @@ following image formats are supported:
@tab Digital Picture Exchange
@item JPEG @tab X @tab X
@tab Progressive JPEG is not supported.
-@item JPEG 2000 @tab @tab E
- @tab decoding supported through external library libopenjpeg
+@item JPEG 2000 @tab X @tab X
@item JPEG-LS @tab X @tab X
@item LJPEG @tab X @tab
@tab Lossless JPEG
@@ -400,6 +400,7 @@ following image formats are supported:
@tab experimental lossless codec (fourcc: FFV1)
@item Flash Screen Video v1 @tab X @tab X
@tab fourcc: FSV1
+@item Flash Screen Video v2 @tab X
@item Flash Video (FLV) @tab X @tab X
@tab Sorenson H.263 used in Flash
@item Fraps @tab @tab X
@@ -598,11 +599,13 @@ following image formats are supported:
@item Atrac 3 @tab @tab X
@item Bink Audio @tab @tab X
@tab Used in Bink and Smacker files in many games.
+@item CELT (Opus) @tab @tab E
+ @tab decoding supported through external library libcelt
@item Delphine Software International CIN audio @tab @tab X
@tab Codec used in Delphine Software International games.
@item COOK @tab @tab X
@tab All versions except 5.1 are supported.
-@item DCA (DTS Coherent Acoustics) @tab @tab X
+@item DCA (DTS Coherent Acoustics) @tab X @tab X
@item DPCM id RoQ @tab X @tab X
@tab Used in Quake III, Jedi Knight 2, other computer games.
@item DPCM Interplay @tab @tab X
@@ -674,6 +677,10 @@ following image formats are supported:
@tab Used in Sierra VMD files.
@item Smacker audio @tab @tab X
@item SMPTE 302M AES3 audio @tab @tab X
+@item Sonic @tab X @tab X
+ @tab experimental codec
+@item Sonic lossless @tab X @tab X
+ @tab experimental codec
@item Speex @tab @tab E
@tab supported through external library libspeex
@item True Audio (TTA) @tab @tab X
@@ -704,8 +711,9 @@ performance on systems without hardware floating point support).
@item SSA/ASS @tab X @tab X @tab X @tab X
@item DVB @tab X @tab X @tab X @tab X
@item DVD @tab X @tab X @tab X @tab X
+@item MicroDVD @tab X @tab X @tab @tab
@item PGS @tab @tab @tab @tab X
-@item SubRip (SRT) @tab X @tab X @tab @tab X
+@item SubRip (SRT) @tab X @tab X @tab X @tab X
@item XSUB @tab @tab @tab X @tab X
@end multitable
@@ -756,12 +764,12 @@ Using a cross-compiler is preferred for various reasons.
@section OS/2
-For information about compiling Libav on OS/2 see
+For information about compiling FFmpeg on OS/2 see
@url{http://www.edm2.com/index.php/FFmpeg}.
@section Unix-like
-Some parts of Libav cannot be built with version 2.15 of the GNU
+Some parts of FFmpeg cannot be built with version 2.15 of the GNU
assembler which is still provided by a few AMD64 distributions. To
make sure your compiler really uses the required version of gas
after a binutils upgrade, run:
@@ -776,12 +784,12 @@ to configure.
@subsection BSD
-BSD make will not build Libav, you need to install and use GNU Make
+BSD make will not build FFmpeg, you need to install and use GNU Make
(@file{gmake}).
@subsection (Open)Solaris
-GNU Make is required to build Libav, so you have to invoke (@file{gmake}),
+GNU Make is required to build FFmpeg, so you have to invoke (@file{gmake}),
standard Solaris Make will not work. When building with a non-c99 front-end
(gcc, generic suncc) add either @code{--extra-libs=/usr/lib/values-xpg6.o}
or @code{--extra-libs=/usr/lib/64/values-xpg6.o} to the configure options
@@ -799,18 +807,22 @@ bash ./configure
MacOS X on PowerPC or ARM (iPhone) requires a preprocessor from
@url{http://github.com/yuvi/gas-preprocessor} to build the optimized
assembler functions. Just download the Perl script and put it somewhere
-in your PATH, Libav's configure will pick it up automatically.
+in your PATH, FFmpeg's configure will pick it up automatically.
@section Windows
+To get help and instructions for building FFmpeg under Windows, check out
+the FFmpeg Windows Help Forum at
+@url{http://ffmpeg.arrozcru.org/}.
+
@subsection Native Windows compilation
-Libav can be built to run natively on Windows using the MinGW tools. Install
+FFmpeg can be built to run natively on Windows using the MinGW tools. Install
the latest versions of MSYS and MinGW from @url{http://www.mingw.org/}.
You can find detailed installation
instructions in the download section and the FAQ.
-Libav does not build out-of-the-box with the packages the automated MinGW
+FFmpeg does not build out-of-the-box with the packages the automated MinGW
installer provides. It also requires coreutils to be installed and many other
packages updated to the latest version. The minimum version for some packages
are listed below:
@@ -822,7 +834,7 @@ are listed below:
@item mingw-runtime 3.15
@end itemize
-Libav automatically passes @code{-fno-common} to the compiler to work around
+FFmpeg automatically passes @code{-fno-common} to the compiler to work around
a GCC bug (see @url{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216}).
Notes:
@@ -841,14 +853,14 @@ Edit the @file{bin/sdl-config} script so that it points to the correct prefix
where SDL was installed. Verify that @file{sdl-config} can be launched from
the MSYS command line.
-@item By using @code{./configure --enable-shared} when configuring Libav,
+@item By using @code{./configure --enable-shared} when configuring FFmpeg,
you can build libavutil, libavcodec and libavformat as DLLs.
@end itemize
@subsection Microsoft Visual C++ compatibility
-As stated in the FAQ, Libav will not compile under MSVC++. However, if you
+As stated in the FAQ, FFmpeg will not compile under MSVC++. However, if you
want to use the libav* libraries in your own applications, you can still
compile those applications using MSVC++. But the libav* libraries you link
to @emph{must} be built with MinGW. However, you will not be able to debug
@@ -856,13 +868,13 @@ inside the libav* libraries, since MSVC++ does not recognize the debug
symbols generated by GCC.
We strongly recommend you to move over from MSVC++ to MinGW tools.
-This description of how to use the Libav libraries with MSVC++ is based on
+This description of how to use the FFmpeg libraries with MSVC++ is based on
Microsoft Visual C++ 2005 Express Edition. If you have a different version,
you might have to modify the procedures slightly.
@subsubsection Using static libraries
-Assuming you have just built and installed Libav in @file{/usr/local}.
+Assuming you have just built and installed FFmpeg in @file{/usr/local}.
@enumerate
@@ -873,13 +885,13 @@ Application Wizard, uncheck the "Precompiled headers" option.
@item Write the source code for your application, or, for testing, just
copy the code from an existing sample application into the source file
that MSVC++ has already created for you. For example, you can copy
-@file{libavformat/output-example.c} from the Libav distribution.
+@file{libavformat/output-example.c} from the FFmpeg distribution.
@item Open the "Project / Properties" dialog box. In the "Configuration"
combo box, select "All Configurations" so that the changes you make will
affect both debug and release builds. In the tree view on the left hand
side, select "C/C++ / General", then edit the "Additional Include
-Directories" setting to contain the path where the Libav includes were
+Directories" setting to contain the path where the FFmpeg includes were
installed (i.e. @file{c:\msys\1.0\local\include}).
Do not add MinGW's include directory here, or the include files will
conflict with MSVC's.
@@ -887,7 +899,7 @@ conflict with MSVC's.
@item Still in the "Project / Properties" dialog box, select
"Linker / General" from the tree view and edit the
"Additional Library Directories" setting to contain the @file{lib}
-directory where Libav was installed (i.e. @file{c:\msys\1.0\local\lib}),
+directory where FFmpeg was installed (i.e. @file{c:\msys\1.0\local\lib}),
the directory where MinGW libs are installed (i.e. @file{c:\mingw\lib}),
and the directory where MinGW's GCC libs are installed
(i.e. @file{C:\mingw\lib\gcc\mingw32\4.2.1-sjlj}). Then select
@@ -904,13 +916,13 @@ set to "Multi-threaded DLL".
@item Click "OK" to close the "Project / Properties" dialog box.
-@item MSVC++ lacks some C99 header files that are fundamental for Libav.
+@item MSVC++ lacks some C99 header files that are fundamental for FFmpeg.
Get msinttypes from @url{http://code.google.com/p/msinttypes/downloads/list}
and install it in MSVC++'s include directory
(i.e. @file{C:\Program Files\Microsoft Visual Studio 8\VC\include}).
@item MSVC++ also does not understand the @code{inline} keyword used by
-Libav, so you must add this line before @code{#include}ing libav*:
+FFmpeg, so you must add this line before @code{#include}ing libav*:
@example
#define inline _inline
@end example
@@ -943,10 +955,10 @@ and run @file{c:\msys\1.0\msys.bat} from there.
@item Within the MSYS shell, run @code{lib.exe}. If you get a help message
from @file{Microsoft (R) Library Manager}, this means your environment
variables are set up correctly, the @file{Microsoft (R) Library Manager}
-is on the path and will be used by Libav to create
+is on the path and will be used by FFmpeg to create
MSVC++-compatible import libraries.
-@item Build Libav with
+@item Build FFmpeg with
@example
./configure --enable-shared --enable-memalign-hack
@@ -975,7 +987,7 @@ of DLL files, but the ones that are actually used to run your application
are the ones with a major version number in their filenames
(i.e. @file{avcodec-51.dll}).
-Libav headers do not declare global data for Windows DLLs through the usual
+FFmpeg headers do not declare global data for Windows DLLs through the usual
dllexport/dllimport interface. Such data will be exported properly while
building, but to use them in your MSVC++ code you will have to edit the
appropriate headers and mark the data as dllimport. For example, in
@@ -995,14 +1007,14 @@ required when using import libraries generated by lib.exe.
You must use the MinGW cross compilation tools available at
@url{http://www.mingw.org/}.
-Then configure Libav with the following options:
+Then configure FFmpeg with the following options:
@example
./configure --target-os=mingw32 --cross-prefix=i386-mingw32msvc-
@end example
(you can change the cross-prefix according to the prefix chosen for the
MinGW tools).
-Then you can easily test Libav with Wine
+Then you can easily test FFmpeg with Wine
(@url{http://www.winehq.com/}).
@subsection Compilation under Cygwin
@@ -1036,7 +1048,7 @@ shared libraries:
./configure --enable-shared --disable-static --extra-cflags=-fno-reorder-functions
@end example
-If you want to build Libav with additional libraries, download Cygwin
+If you want to build FFmpeg with additional libraries, download Cygwin
"Devel" packages for Ogg and Vorbis from any Cygwin packages repository:
@example
libogg-devel, libvorbis-devel
diff --git a/doc/git-howto.txt b/doc/git-howto.txt
index ba377c99e0..72cde72eed 100644
--- a/doc/git-howto.txt
+++ b/doc/git-howto.txt
@@ -28,9 +28,9 @@ Consult these resources whenever you have problems, they are quite exhaustive.
You do not need a special username or password.
All you need is to provide a ssh public key to the Git server admin.
-What follows now is a basic introduction to Git and some Libav-specific
+What follows now is a basic introduction to Git and some FFmpeg-specific
guidelines. Read it at least once, if you are granted commit privileges to the
-Libav project you are expected to be familiar with these rules.
+FFmpeg project you are expected to be familiar with these rules.
@@ -44,13 +44,13 @@ I. BASICS:
1. Cloning the source tree:
- git clone git://git.libav.org/libav.git <target>
+ git clone git://git.videolan.org/ffmpeg <target>
- This will put the Libav sources into the directory <target>.
+ This will put the FFmpeg sources into the directory <target>.
- git clone git@git.libav.org:libav.git <target>
+ git clone git@git.videolan.org:ffmpeg <target>
- This will put the Libav sources into the directory <target> and let
+ This will put the FFmpeg sources into the directory <target> and let
you push back your changes to the remote repository.
@@ -72,7 +72,7 @@ I. BASICS:
fetches the changes from the main repository and replays your local commits
over it. This is required to keep all your local changes at the top of
- Libav's master tree. The master tree will reject pushes with merge commits.
+ FFmpeg's master tree. The master tree will reject pushes with merge commits.
3. Adding/removing files/directories:
@@ -97,7 +97,7 @@ I. BASICS:
git log <filename(s)>
You may also use the graphical tools like gitview or gitk or the web
- interface available at http://git.libav.org/
+ interface available at http://git.videolan.org
6. Checking source tree status:
@@ -255,5 +255,5 @@ I. BASICS:
where $SHA1 is the commit SHA1 from the 'git log' output.
-Contact the project admins <git at libav dot org> if you have technical
+Contact the project admins <root at ffmpeg dot org> if you have technical
problems with the GIT server.
diff --git a/doc/indevs.texi b/doc/indevs.texi
index c5e04b029e..04871081dd 100644
--- a/doc/indevs.texi
+++ b/doc/indevs.texi
@@ -1,10 +1,10 @@
@chapter Input Devices
@c man begin INPUT DEVICES
-Input devices are configured elements in Libav which allow to access
+Input devices are configured elements in FFmpeg which allow to access
the data coming from a multimedia device attached to your system.
-When you configure your Libav build, all the supported input devices
+When you configure your FFmpeg build, all the supported input devices
are enabled by default. You can list all available ones using the
configure option "--list-indevs".
@@ -95,7 +95,7 @@ A JACK input device creates one or more JACK writable clients, one for
each audio channel, with name @var{client_name}:input_@var{N}, where
@var{client_name} is the name provided by the application, and @var{N}
is a number which identifies the channel.
-Each writable client will send the acquired data to the Libav input
+Each writable client will send the acquired data to the FFmpeg input
device.
Once you have created one or more JACK readable clients, you need to
diff --git a/doc/issue_tracker.txt b/doc/issue_tracker.txt
index e5733ec9d5..a41b8e5044 100644
--- a/doc/issue_tracker.txt
+++ b/doc/issue_tracker.txt
@@ -1,45 +1,28 @@
-Libav's bug/patch/feature request tracker manual
-================================================
+FFmpeg's bug/patch/feature request tracker manual
+=================================================
NOTE: This is a draft.
Overview:
---------
-Libav uses Roundup for tracking issues, new issues and changes to
-existing issues can be done through a web interface and through email.
+FFmpeg uses Trac for tracking issues, new issues and changes to
+existing issues can be done through a web interface.
It is possible to subscribe to individual issues by adding yourself to the
nosy list or to subscribe to the ffmpeg-issues mailing list which receives
a mail for every change to every issue. Replies to such mails will also
be properly added to the respective issue.
(the above does all work already after light testing)
-The subscription URL for the ffmpeg-issues list is:
-http://live.polito/mailman/listinfo/ffmpeg-issues
+The subscription URL for the ffmpeg-trac list is:
+http(s)://ffmpeg.org/mailman/listinfo/ffmpeg-trac
The URL of the webinterface of the tracker is:
-http(s)://roundup.libav.org/
-Note the URLs in this document are obfuscated, you must append the top level
-domain for non-profit organizations to the tracker, and of Italy to the
-mailing list.
-
-Email Interface:
-----------------
-There is a mailing list to which all new issues and changes to existing issues
-are sent. You can subscribe through
-http://live.polito/mailman/listinfo/ffmpeg-issues
-Replies to messages there will have their text added to the specific issues.
-Attachments will be added as if they had been uploaded via the web interface.
-You can change the status, substatus, topic, ... by changing the subject in
-your reply like:
-Re: [issue94] register_avcodec and allcodecs.h [type=patch;status=open;substatus=approved]
-Roundup will then change things as you requested and remove the [...] from
-the subject before forwarding the mail to the mailing list.
-
+http(s)://ffmpeg.org/trac/ffmpeg
NOTE: issue = (bug report || patch || feature request)
Type:
-----
bug
- An error, flaw, mistake, failure, or fault in ffmpeg or libav* that
+ An error, flaw, mistake, failure, or fault in FFmpeg or libav* that
prevents it from behaving as intended.
feature request
@@ -60,7 +43,7 @@ critical
No feature request can be critical.
important
- Bugs which make Libav unusable for a significant number of users, and
+ Bugs which make FFmpeg unusable for a significant number of users, and
patches fixing them.
Examples here might be completely broken MPEG-4 decoding or a build issue
on Linux.
@@ -81,7 +64,7 @@ minor
wish
Something that is desirable to have but that there is no urgency at
all to implement, e.g. something completely cosmetic like a website
- restyle or a personalized doxy template or the Libav logo.
+ restyle or a personalized doxy template or the FFmpeg logo.
This priority is not valid for bugs.
@@ -187,7 +170,7 @@ feature_request/closed/wont_implement
be legal, philosophical or others.
Note, please do not use type-status-substatus combinations other than the
-above without asking on libav-devel first!
+above without asking on ffmpeg-dev first!
Note2, if you provide the requested info do not forget to remove the
needs_more_info substate.
diff --git a/doc/libavfilter.texi b/doc/libavfilter.texi
index 1c1220541c..f0b448259a 100644
--- a/doc/libavfilter.texi
+++ b/doc/libavfilter.texi
@@ -11,16 +11,16 @@
@chapter Introduction
-Libavfilter is the filtering API of Libav. It is the substitute of the
+Libavfilter is the filtering API of FFmpeg. It is the substitute of the
now deprecated 'vhooks' and started as a Google Summer of Code project.
-Integrating libavfilter into the main Libav repository is a work in
+Integrating libavfilter into the main FFmpeg repository is a work in
progress. If you wish to try the unfinished development code of
libavfilter then check it out from the libavfilter repository into
some directory of your choice by:
@example
- svn checkout svn://svn.libav.org/soc/libavfilter
+ svn checkout svn://svn.ffmpeg.org/soc/libavfilter
@end example
And then read the README file in the top directory to learn how to
@@ -74,7 +74,7 @@ not have video output.
@chapter graph2dot
-The @file{graph2dot} program included in the Libav @file{tools}
+The @file{graph2dot} program included in the FFmpeg @file{tools}
directory can be used to parse a filter graph description and issue a
corresponding textual representation in the dot language.
diff --git a/doc/metadata.texi b/doc/metadata.texi
index cfaf491c2d..2a285757cc 100644
--- a/doc/metadata.texi
+++ b/doc/metadata.texi
@@ -1,7 +1,7 @@
@chapter Metadata
@c man begin METADATA
-Libav is able to dump metadata from media files into a simple UTF-8-encoded
+FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded
INI-like text file and then load it back using the metadata muxer/demuxer.
The file format is as follows:
@@ -53,7 +53,7 @@ A ffmetadata file might look like this:
;FFMETADATA1
title=bike\\shed
;this is a comment
-artist=Libav troll team
+artist=FFmpeg troll team
[CHAPTER]
TIMEBASE=1/1000
diff --git a/doc/multithreading.txt b/doc/multithreading.txt
index b72bc16079..a1068425cd 100644
--- a/doc/multithreading.txt
+++ b/doc/multithreading.txt
@@ -1,7 +1,7 @@
-Libav multithreading methods
+FFmpeg multithreading methods
==============================================
-Libav provides two methods for multithreading codecs.
+FFmpeg provides two methods for multithreading codecs.
Slice threading decodes multiple parts of a frame at the same time, using
AVCodecContext execute() and execute2().
diff --git a/doc/muxers.texi b/doc/muxers.texi
index 82f17ba105..55b44d1018 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1,10 +1,10 @@
@chapter Muxers
@c man begin MUXERS
-Muxers are configured elements in Libav which allow writing
+Muxers are configured elements in FFmpeg which allow writing
multimedia streams to a particular type of file.
-When you configure your Libav build, all the supported muxers
+When you configure your FFmpeg build, all the supported muxers
are enabled by default. You can list all available muxers using the
configure option @code{--list-muxers}.
@@ -141,6 +141,12 @@ Note also that the pattern must not necessarily contain "%d" or
ffmpeg -i in.avi -f image2 -vframes 1 img.jpeg
@end example
+The image muxer supports the .Y.U.V image file format. This format is
+special in that that each image frame consists of three files, for
+each of the YUV420P components. To read or write this image file format,
+specify the name of the '.Y' file. The muxer will automatically open the
+'.U' and '.V' files as required.
+
@section mpegts
MPEG transport stream muxer.
@@ -167,7 +173,7 @@ Set the first PID for data packets (default 0x0100, max 0x0f00).
The recognized metadata settings in mpegts muxer are @code{service_provider}
and @code{service_name}. If they are not set the default for
-@code{service_provider} is "Libav" and the default for
+@code{service_provider} is "FFmpeg" and the default for
@code{service_name} is "Service01".
@example
@@ -204,4 +210,67 @@ Alternatively you can write the command as:
ffmpeg -benchmark -i INPUT -f null -
@end example
+@section matroska
+
+Matroska container muxer.
+
+This muxer implements the matroska and webm container specs.
+
+The recognized metadata settings in this muxer are:
+
+@table @option
+
+@item title=@var{title name}
+Name provided to a single track
+@end table
+
+@table @option
+
+@item language=@var{language name}
+Specifies the language of the track in the Matroska languages form
+@end table
+
+@table @option
+
+@item stereo_mode=@var{mode}
+Stereo 3D video layout of two views in a single video track
+@table @option
+@item mono
+video is not stereo
+@item left_right
+Both views are arranged side by side, Left-eye view is on the left
+@item bottom_top
+Both views are arranged in top-bottom orientation, Left-eye view is at bottom
+@item top_bottom
+Both views are arranged in top-bottom orientation, Left-eye view is on top
+@item checkerboard_rl
+Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first
+@item checkerboard_lr
+Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first
+@item row_interleaved_rl
+Each view is constituted by a row based interleaving, Right-eye view is first row
+@item row_interleaved_lr
+Each view is constituted by a row based interleaving, Left-eye view is first row
+@item col_interleaved_rl
+Both views are arranged in a column based interleaving manner, Right-eye view is first column
+@item col_interleaved_lr
+Both views are arranged in a column based interleaving manner, Left-eye view is first column
+@item anaglyph_cyan_red
+All frames are in anaglyph format viewable through red-cyan filters
+@item right_left
+Both views are arranged side by side, Right-eye view is on the left
+@item anaglyph_green_magenta
+All frames are in anaglyph format viewable through green-magenta filters
+@item block_lr
+Both eyes laced in one Block, Left-eye view is first
+@item block_rl
+Both eyes laced in one Block, Right-eye view is first
+@end table
+@end table
+
+For example a 3D WebM clip can be created using the following command line:
+@example
+ffmpeg -i sample_left_right_clip.mpg -an -vcodec libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
+@end example
+
@c man end MUXERS
diff --git a/doc/optimization.txt b/doc/optimization.txt
index 78e0077e30..b027efef2f 100644
--- a/doc/optimization.txt
+++ b/doc/optimization.txt
@@ -17,15 +17,15 @@ Understanding these overoptimized functions:
As many functions tend to be a bit difficult to understand because
of optimizations, it can be hard to optimize them further, or write
architecture-specific versions. It is recommended to look at older
-revisions of the interesting files (web frontends for the various Libav
-branches are listed at http://libav.org/download.html).
+revisions of the interesting files (web frontends for the various FFmpeg
+branches are listed at http://ffmpeg.org/download.html).
Alternatively, look into the other architecture-specific versions in
the x86/, ppc/, alpha/ subdirectories. Even if you don't exactly
comprehend the instructions, it could help understanding the functions
and how they can be optimized.
NOTE: If you still don't understand some function, ask at our mailing list!!!
-(https://lists.libav.org/mailman/listinfo/libav-devel)
+(http://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel)
When is an optimization justified?
@@ -201,7 +201,7 @@ Inline asm vs. external asm
---------------------------
Both inline asm (__asm__("..") in a .c file, handled by a compiler such as gcc)
and external asm (.s or .asm files, handled by an assembler such as yasm/nasm)
-are accepted in Libav. Which one to use differs per specific case.
+are accepted in FFmpeg. Which one to use differs per specific case.
- if your code is intended to be inlined in a C function, inline asm is always
better, because external asm cannot be inlined
diff --git a/doc/outdevs.texi b/doc/outdevs.texi
index 938909c784..fbb312363c 100644
--- a/doc/outdevs.texi
+++ b/doc/outdevs.texi
@@ -1,10 +1,10 @@
@chapter Output Devices
@c man begin OUTPUT DEVICES
-Output devices are configured elements in Libav which allow to write
+Output devices are configured elements in FFmpeg which allow to write
multimedia data to an output device attached to your system.
-When you configure your Libav build, all the supported output devices
+When you configure your FFmpeg build, all the supported output devices
are enabled by default. You can list all available ones using the
configure option "--list-outdevs".
diff --git a/doc/protocols.texi b/doc/protocols.texi
index 18749efbfb..a71c262368 100644
--- a/doc/protocols.texi
+++ b/doc/protocols.texi
@@ -1,10 +1,10 @@
@chapter Protocols
@c man begin PROTOCOLS
-Protocols are configured elements in Libav which allow to access
+Protocols are configured elements in FFmpeg which allow to access
resources which require the use of a particular protocol.
-When you configure your Libav build, all the supported protocols are
+When you configure your FFmpeg build, all the supported protocols are
enabled by default. You can list all available ones using the
configure option "--list-protocols".
diff --git a/doc/soc.txt b/doc/soc.txt
index e45bd6ce3b..79d77d1cd7 100644
--- a/doc/soc.txt
+++ b/doc/soc.txt
@@ -8,9 +8,9 @@ it's a little late for this year's soc (2006).
The Goal:
Our goal in respect to soc is and must be of course exactly one thing and
-that is to improve Libav, to reach this goal, code must
+that is to improve FFmpeg, to reach this goal, code must
* conform to the development policy and patch submission guidelines
-* must improve Libav somehow (faster, smaller, "better",
+* must improve FFmpeg somehow (faster, smaller, "better",
more codecs supported, fewer bugs, cleaner, ...)
for mentors and other developers to help students to reach that goal it is
@@ -20,5 +20,5 @@ easy reviewable that again leads us to:
* separation of cosmetic from non-cosmetic changes (this is almost entirely
ignored by mentors and students in soc 2006 which might lead to a suprise
when the code will be reviewed at the end before a possible inclusion in
- Libav, individual changes were generally not reviewable due to cosmetics).
+ FFmpeg, individual changes were generally not reviewable due to cosmetics).
* frequent commits, so that comments can be provided early