Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: id3as/libav
base: 083f009c27
head fork: id3as/libav
compare: 1cd0207287
Checking mergeability… Don't worry, you can still create the pull request.
This comparison is big! We're only showing the most recent 250 commits
Commits on Dec 11, 2013
@smarter smarter hevc: set time_base when possible
Signed-off-by: Anton Khirnov <>
@elenril elenril Replace all uses of avcodec_free_frame with av_frame_free(). eb891b3
@elenril elenril lavc: deprecate avcodec_free_frame()
av_frame_free() should be used instead.
@elenril elenril avconv: do not call avcodec_get_frame_defaults()
Strictly speaking it is not correct to call it on refcounted frames, in
any case it is unnecessary, since filtered_frame is always unreferenced
after poll_filter() returns.
@elenril elenril lavc: call av_frame_unref() instead of avcodec_get_frame_defaults().
avcodec_get_frame_defaults() will be deprecated.
@elenril elenril avplay: do not call avcodec_get_frame_defaults().
avcodec_decode_audio4() will reset the frame itself.
@elenril elenril mpegvideo: remove an unneeded call to avcodec_get_frame_defaults().
ff_mpeg_unref_picture() already resets the frame.
@elenril elenril mpegvideo: call av_frame_unref() instead of avcodec_get_frame_default…

This is a temporary workaround to allow deprecating
avcodec_get_frame_defaults(). The proper solution will be using a
properly allocated AVFrame in Picture.
@elenril elenril lavf: remove an unneeded call to avcodec_get_frame_defaults().
avcodec_decode_*() resets the frame itself.
@elenril elenril api-example: remove an unneeded call to avcodec_get_frame_defaults().
avcodec_decode_audio4() resets the frame itself.
@elenril elenril h264: call av_frame_unref() instead of avcodec_get_frame_defaults().
This is a temporary workaround to allow deprecating
avcodec_get_frame_defaults(). The proper solution will be using a
properly allocated AVFrame in Picture.
@elenril elenril lavc: deprecate avcodec_get_frame_defaults().
Also bump libavcodec micro and add an APIchanges entry saying that
av_frame_* should now be used instead of the lavc AVFrame functions.
@ruminsam ruminsam rtspdec: Fix keep-alive request for ACTi cameras
Some ACTi cameras fail if "*" is passed as the URI.

Signed-off-by: Ismael Luceno <>
Signed-off-by: Martin Storsjö <>
Commits on Dec 12, 2013
@mstorsjo mstorsjo mp3adu: Set the channel layout properly
This fixes decoding, broken since 7e35037.

This is similar to what was done for the normal mp3 decoder in

Signed-off-by: Martin Storsjö <>
@kodabb kodabb parseutils: fix discarding const attribute warning 6b45f05
@kodabb kodabb rtsp: suppress a incompatible pointer types warning 46c0cbd
@marlam marlam img2: add stereo 3d still picture file extensions ae9d13f
@kodabb kodabb changelog: drop redundant new attribute a2eeed6
@cehoyos cehoyos mpegts: add HEVC registration descriptor 9fa75be
Commits on Dec 13, 2013
@DonDiego DonDiego build: Do not add -g to HOSTCFLAGS
The flag is not unconditionally added to CFLAGS either and the
programs built on the host do not get habitually fed to a debugger.
@DonDiego DonDiego configure: Detect newer (>=4.1) versions of MinGW32
The MinGW32 project is deprecating its old version macros.
@DonDiego DonDiego configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW32
This enables a more C99-compliant implementation of printf et al.
@DonDiego DonDiego build: Merge pthreads/w32threads OBJS declarations 79d9884
@DonDiego DonDiego avutil: Add deprecation ifdefs around obsolete intfloat code
This long-deprecated code should disappear at the next version bump.
@lu-zero lu-zero configure: Move the bz2 and zlib checks below phtreads
There are alternate implementations of those libraries that use pthreads.
@lu-zero lu-zero configure: Reorder pthreads checks
Some pthreads symbols might be present in libc (as shown on various *BSD)
but not all of them, leading to false positives.

Check for the most common compiler flags before the plain symbol check
to avoid known pitfalls.
@lu-zero lu-zero doxy: Define a group for libswscale documentation
Uniform the style and eliminate a warning on newer doxygen version..
Commits on Dec 14, 2013
@DonDiego DonDiego configure: Detect Solaris libc in an OpenIndiana/illumos compatible way 5db4e88
@michaelni michaelni hdsenc: Avoid integer overflow
Also remove a silly leftover pair of parentheses.

Signed-off-by: Martin Storsjö <>
@michaelni michaelni hdsenc: Fix an off by one error in an array size check
Signed-off-by: Martin Storsjö <>
@michaelni michaelni hdsenc: Check the init_file() return code
Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo sdp: Check theora colorspace before producing the configuration string
This avoids a memory leak (or having to worry about freeing the
config string) if the colorspace isn't accepted.

Signed-off-by: Martin Storsjö <>
@michaelni michaelni rtpdec_h264: Check the return value of functions doing allocations
Signed-off-by: Martin Storsjö <>
Reinhard Tartler Bump libavutil major version to account for the LLS API/ABI changes.
Commit 41578f7 changed the LLS API, which was
called from libavcodec. Thus using an old libavcodec with a new libavutil will

All scheduled API changes are deferred to the next bump.
Reinhard Tartler Bump major of libavfilter for reference counted buffer API changes.
Applications that have been linked against an older release of Libav and pick up
updated libraries experience segmentation faults because they pick up the new
libavfilter, which assumes AVFrames have been allocated by libavutil and thus
contain new reference-counting related fields. This will break for AVFrames that
have been allocated by old libavcodec.

All scheduled API changes are deferred to the next bump.
Commits on Dec 16, 2013
@DonDiego DonDiego build: Define __printf__ to __gnu_printf__ on MinGW*/gcc
This is necessary to avoid GCC assuming MS style printf arguments.
@DonDiego DonDiego avutil: Remove deprecated intfloat_readwrite code
It was deprecated over two years ago.
Commits on Dec 17, 2013
Peter Holik png: add a standalone parser
Useful for reading png images from a pipe.
@kodabb kodabb fate: add utility function to test parser, demuxer, and decoder eddff16
@kodabb kodabb fate: add a pngparser test cfb4ee3
@lu-zero lu-zero hevc: Refactor decode_nal_sei_frame_packing_arrangement
Directly set the fields when necessary.

Signed-off-by: Vittorio Giovara <>
@kodabb kodabb h264: Refactor decode_frame_packing_arrangement
Directly set the fields when necessary.
@kodabb kodabb apidoc: fix warning from stereo3d.h bd31610
@michaelni michaelni vc1: Fix mb_height for field pictures
Tables are always allocated now with sufficient space for either progressive
or interlaced content. The alternative would be to detect a change
and reallocate.

This fixes decoding of a sample.

Signed-off-by: Martin Storsjö <>
Commits on Dec 18, 2013
@mstorsjo mstorsjo png_parser: Fix parsing on big endian
Since pc.state is populated by shifting in from the end of the
32 bit word, the content within pc.state is already in native endian
and should not be read with the AV_R{L,B} functions.

This was already done correctly for state64 above.

This fixes the fate-corepng test on big endian.

Signed-off-by: Martin Storsjö <>
@elenril elenril Prepare release notes for Libav 10 "Eks"
Additional editing by Diego Biurrun
@mstorsjo mstorsjo fate: Explicitly specify the pixel format for the pngparser test
The RGB32 pixel format is RGBA/BGRA depending on target
endianness - make sure to convert it to one specific format for
the framecrc tests.

This fixes the pngparser fate test on big endian.

Signed-off-by: Martin Storsjö <>
Commits on Dec 19, 2013
@DonDiego DonDiego configure: Express atomics/thread deps through the dependency system 8558595
Commits on Dec 20, 2013
@DonDiego DonDiego atomics: cosmetics: Restructure ifdefs for greater clarity
Also fix the #endif comment in a few places and #include config.h to
avoid assuming it is #included implicitly.
Mason Carter vc1: arm: Add NEON assembly

ff_put_vc1_mspel_mc{0,1,2,3}{0,1,2,3}_neon (except for 00)

Based on ARM assembly code in libavcodec/arm by Rob Clark and Mans

Signed-off-by: Martin Storsjö <>
Mason Carter vc1: arm: Add NEON no_rnd chroma MC
Apply David Conrad's old patch to the modern codebase.

Signed-off-by: Martin Storsjö <>
@elenril elenril x86: mpegvideo: move denoise_dct asm to mpegvideoenc
This function is encoding-only.

Signed-off-by: Diego Biurrun <>
@lu-zero lu-zero jvdec: Return EOF on end of file 027712e
@richardpl richardpl jvdec: Fix memory leak of jv->frames
Signed-off-by: Luca Barbato <>
@lu-zero lu-zero jvdec: Do not feed the decoder with known wrong data
Still assume the size value is right in non-explode mode.
@lu-zero lu-zero flv: Use the correct type to hold the file offset f412b2c
@gcocherel gcocherel lavc: add HEVC profiles names
Signed-off-by: Anton Khirnov <>
@gcocherel gcocherel hevc: store profile and level in AVCodecContext
Signed-off-by: Anton Khirnov <>
@smarter smarter hevc: don't check for errors in PTL code
According to the spec, the value of XXX_reserved_zero_44bits should be
ignored, so don't report an error when it's not zero.

Signed-off-by: Anton Khirnov <>
@gcocherel gcocherel hevc: refactor Profile Tier Level
Also store a few PTL flags which were skipped before

Signed-off-by: Anton Khirnov <>
@gcocherel gcocherel hevc_ps: fix indentation
Signed-off-by: Anton Khirnov <>
@smarter smarter hevc: warn when an unknown profile is used
Bitstreams conforming to the spec should not use profiles not defined
in it.

Signed-off-by: Anton Khirnov <>
@mraulet mraulet hevc: support luma bit depth != chroma bit depth for PCM coding units
Signed-off-by: Anton Khirnov <>
@mstorsjo mstorsjo arm: Don't clobber callee saved registers in scalarproduct
q4-q7/d8-d15 are supposed to not be clobbered by the callee.

Signed-off-by: Martin Storsjö <>
Commits on Dec 21, 2013
@justinruggles justinruggles Add a libwebp encoder be7c323
Commits on Dec 22, 2013
@smarter smarter hevc: move DSP declarations from hevc.h into hevcdsp.h
Signed-off-by: Luca Barbato <>
Mason Carter vc1: Fix intensity compensation performance regression
Introduced by 28243b0

Intensity compensation is always used once it was encountered, because
v->next_use_ic is never set back to zero.

Reset v->next_use_ic, when resetting v->next_luty/uv.

Signed-off-by: Luca Barbato <>
@Rodeo314 Rodeo314 doc: fix a coding style error in the developer documentation. 6c0e835
@Rodeo314 Rodeo314 doc: fix link to the ISC license text in the developer documentation. 57ead84
@Rodeo314 Rodeo314 lavu: fix typo in documentation. 10d9824
Commits on Dec 24, 2013
@DonDiego DonDiego error.h: Do not circularly depend on avutil.h d06ca20
Commits on Dec 25, 2013
@DonDiego DonDiego configure: Explicitly disable w32threads if the test for it fails
This avoids false positive enabling of w32threads if explicitly
requested on the command line, but dependencies are missing.
Commits on Dec 26, 2013
@lu-zero lu-zero mms: Remove non-utf8 characters
Certain softwares get badly confused.

Signed-off-by: Luca Barbato <>
@DonDiego DonDiego avutil: Move library version related macros to version.h
This is a more sensible place for these macros.
Commits on Dec 27, 2013
@lu-zero lu-zero doxy: Fix link in badge color
Green on blue was not exactly optimal.

Signed-off-by: Luca Barbato <>
@lu-zero lu-zero doxy: Update the css to have a flat style
Drop references to the doxy image gradients and style a the code blocks to
keep the whitespace and indent properly.

Signed-off-by: Luca Barbato <>
@lu-zero lu-zero h264: namespace the decode function
Make much easier debugging.
Commits on Dec 29, 2013
@lu-zero lu-zero lavu: Move preprocessor macros in a separate file
And remove all the circular inclusions of avutil.h while at it.
Commits on Jan 01, 2014
@elenril elenril Makefile: add html template files to the doxygen deps 58f0d16
Commits on Jan 03, 2014
@elenril elenril mpegvideo: set reference/pict_type on generated reference frames
Otherwise the generic code will unref them, which can then result in
last_picture_ptr == current_picture_ptr, which causes deadlocks at least
in rv40.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril rv30: fix extradata size check.
It has been checking the number of bits in the offset instead of the
actual offset.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril adx: check that the offset is not negative
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril eacmv: check the framerate before setting it.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril mathematics: remove asserts from av_rescale_rnd()
It is a public function, it must not assert on its parameters.
@elenril elenril pmpdec: check that there is at least one audio packet.
The code cannot handle there being none, but that should not happen for
valid files.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril lzw: switch to bytestream2
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: reset data_partitioning if decoding the slice header for NAL_DP…
…A fails

If it was set before then we can end up trying to decode a slice without
a valid slice header, which can lead to invalid memory access.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril audio_mix: initialize the data pointers to NULL
This should make it easier to catch problems where some of those
pointers are used uninitialized, since reading from NULL should always
crash, while random numbers from stack can turn out to be valid
pointers, so random memory may be silently overwritten.
@elenril elenril audio_mix: fix zeroing output channels in certain cases
Specifically, when the corresponding input channel exists and its matrix
column is all-zero (which is necessary for zeroing the output), the
matrix column must be removed from the matrix.

This is not done currently, so the mixing code would end up using
uninitialized pointers from stack.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril audio_mix: print (SKIP) instead of 0.0 for matrix columns removed alo…
…ng with output zeroing
@elenril elenril tests/Makefile: allow FILTER* to be called with lists of filter names a8cc88b
@elenril elenril FATE: add a test for the lavr mixing case fixed in fc6a3ef b318106
@elenril elenril mpegvideo: split the encoding-only parts of frame_start() into a sepa…
…rate function

This introduces some code duplication. However, much of it should go
away once the decoders stop using MpegEncContext.
@elenril elenril mpegvideo: move dct_unquantize functions up to avoid forward declarat…
@elenril elenril mpegvideo: remove disabled bfin asm
It has been disabled as 'broken' over 3 years ago in b716a79
Commits on Jan 04, 2014
@mstorsjo mstorsjo arm: Add a missing endfunc macro call
Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo arm: Use the matching endfunc macro instead of the assembler directiv…
…e directly

Signed-off-by: Martin Storsjö <>
@aconverse aconverse fate: Add a downsampled SBR testvector e2096e2
@aconverse aconverse aac: Fix TNS decoding for the 512 sample window family. b2212de
@aconverse aconverse fate: Add a test vector for AAC ELD with TNS. 42d1b41
@aconverse aconverse aac: Fix low delay windowing.
AAC LD uses a low overlap sine window instead of a KBD window.
@aconverse aconverse fate: Update AAC ELD 5.1 ref for recent bugfixes. 9d18a7d
@mstorsjo mstorsjo sdp: Check that fmt->oformat is non-null before accessing it
This avoids crashes when avserver tries to create an SDP, since

Signed-off-by: Martin Storsjö <>
Commits on Jan 05, 2014
@DonDiego DonDiego configure: Support preprocessor macros as header names
New versions of FreeType have moved the location of their API
header(s) and hide the location behind a macro.

Since the location changes between versions and no other way
to know the location exists, this workaround becomes necessary.

Signed-off-by: Luca Barbato <>
@Rodeo314 Rodeo314 lavu: Add values for various Dolby flags to the AVMatrixEncoding enum. 5c437fb
@Rodeo314 Rodeo314 avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.
Includes a libavcodec utility function to update a frame's side data.
@Rodeo314 Rodeo314 dcadec: set the output channel mode more accurately.
When downmixing 2.1 to 2-channel, if the 2.0 portion is Lt/Rt, sum-difference or dual mono, the actual output will be the same (with the LFE either mixed-in or discarded).

Also, when downmixing an arbitrary layout to 2-channel, if the bitstream contains custom downmix coefficients targeting Lt/Rt, then the output will be Lt/Rt rather than regular Stereo.
@Rodeo314 Rodeo314 dcadec: set AV_FRAME_DATA_MATRIXENCODING side data. 30d70e7
@Rodeo314 Rodeo314 mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncod…
…ing for each substream.
@Rodeo314 Rodeo314 mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data. e921230
@Rodeo314 Rodeo314 (e)ac3: parse and store the Dolby Surround, Surround EX and Headphone…
… mode flags.
@Rodeo314 Rodeo314 (e)ac3dec: set AV_FRAME_DATA_MATRIXENCODING side data. 7840c40
@spaam spaam cmdutils: update copyright year to 2014.
Signed-off-by: Martin Storsjö <>
Commits on Jan 06, 2014
@smarter smarter hevc: add new conformance streams
Also remove superseded conformance streams. The conformance streams all
come from

Signed-off-by: Anton Khirnov <>
@smarter smarter hevc: rename some HEVC conformance streams
Some HEVC conformance streams zip on
were updated without changing the actual stream. Rename them in FATE
accordingly to make it easier to track future stream updates.

Signed-off-by: Anton Khirnov <>
@elenril elenril 4xm: return a proper error code. fffca3d
@elenril elenril 4xm: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
@elenril elenril kgv1dec: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
@elenril elenril sgidec: fix buffer size check in expand_rle_row()
Right now it will spuriously fail if the linesize is exactly equal to
the data width.
Kostya Shishkov lagarith: do not call simd functions on unaligned lines
They end up overwriting past the line end.

Partially based on a patch by Michael Niedermayer <>

Bug-Id: vlc/9700
Signed-off-by: Luca Barbato <>
Signed-off-by: Anton Khirnov <>
@elenril elenril lavc: add 422/444 YUV with alpha to align_dimensions()
Aligns frame dimensions to 16, which fixes potential invalid writes.
@elenril elenril oggparseogm: check timing variables
Fixes a potential divide by zero.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril lavf: remove a pointless check
AVStream.codec is always non-NULL
@elenril elenril lavc: do not leak the internal frame if opening the codec fails 50079a6
@elenril elenril cavsdec: check ff_get_buffer() return value
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: rebuild the default ref list if the reference count changes
Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: reject mismatching luma/chroma bit depths during sps parsing
There is no point in delaying the check and it avoids bugs with a
half-initialized context.

Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: check that execute_decode_slices() is not called too many times
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: do not use 422 functions for monochrome
Fixes invalid memory access.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril pthread_frame: unref decoded frames on failure
This is similar to what the non-threaded code already does.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril segafilm: fix leaks if reading the header fails
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@lu-zero lu-zero drawtext: Drop pointless header
It should be forward compatible with newer freetype.
@lu-zero lu-zero configure: Update freetype check to follow upstream
The freetype tutorial suggests to use #include FT_FREETYPE_H.

Bug-Id: 616
@michaelni michaelni random_seed: Rewrite the generic clock() based seed code
The new code is faster and reuses the previous state in case of
multiple calls.

The previous code could easily end up in near-infinite loops,
if the difference between two clock() calls never was larger than

This makes fate-parseutils finish in finite time when run in wine,
if CryptGenRandom isn't available (which e.g. isn't available if
targeting Windows RT/metro).

Patch originally by Michael Niedermayer but with some modifications
by Martin Storsjö.

Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo configure: Disable networking if winsock2.h is available but winsock …
…functions aren't

Previously, if neither of the checks for the closesocket function
succeeded, we still kept winsock2.h and networking in general

When targeting the WinRT API subset, the winsock2.h header is
available (making the check for it succeed, giving the impression
that winsock is available), but tests that actually try to use
such a function will fail. In this case, disable the winsock2.h
feature and networking in general, as if the winsock2.h header
test would have failed in the first place.

Signed-off-by: Martin Storsjö <>
@richardpl richardpl libopusenc: Change default frame duration to 20 ms
20 ms is the default in the libopus encoder, and gives better
quality than 10 ms.

Signed-off-by: Martin Storsjö <>
@DonDiego DonDiego Rename CONFIG_FFT_FLOAT ---> FFT_FLOAT
The define does not originate from configure, so it should not
have a name that is CONFIG_-prefixed.
@DonDiego DonDiego network.h: Add #endif comments to improve readability 9997cee
Commits on Jan 07, 2014
@mstorsjo mstorsjo arm: cosmetics: Reindent the h264dsp neon init function
Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo arm: Remove a leftover define for the pld instruction
This file no longer uses the pld instruction at all, all such uses
have been split into hpeldsp_arm.S.

Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo arm: Allow overriding the alignment set in the function macro
The function macro always sets .align 2 before declaring the
function label (since 5c5e1ea) and always sets the section to
.text (since 278caa6).

The .align 5 before certain functions, added in fc252eb, were added
before .text and .align were added to the function macro and thus
became useless/unused when the function macro got them.

This restores the original intention, to align the loop entry

Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo arm: Add a missing # as prefix for an immediate constant
Signed-off-by: Martin Storsjö <>
Commits on Jan 09, 2014
@elenril elenril mpegvideo: drop support for real (non-emulated) edges
Several decoders disable those anyway and they are not measurably faster
on x86. They might be somewhat faster on other platforms due to missing
emu edge SIMD, but the gain is not large enough (and those decoders
relevant enough) to justify the added complexity.
@elenril elenril vp8: drop support for real (non-emulated) edges
They are not measurably faster on x86, they might be somewhat faster on
other platforms due to missing emu edge SIMD, but the gain is not large
enough to justify the added complexity.
@elenril elenril vp9: drop support for real (non-emulated) edges
They are not measurably faster on x86, they might be somewhat faster on
other platforms due to missing emu edge SIMD, but the gain is not large
enough to justify the added complexity.
@elenril elenril FATE: add MSS2 tests a246af8
@smarter smarter hevc: fix decoding of one PU wide files
For those the block size may be larger than the source linesize (if the
edges are not allocated).

Signed-off-by: Anton Khirnov <>
@elenril elenril mjpegdec: apply flipping after decoding, not before
This is simpler and removes a silly restriction on edges being present.
@DonDiego DonDiego ac3tab.h: #include the correct headers 4b48201
@DonDiego DonDiego x86: avcodec: Add a bunch of missing #includes for av_cold b0be1ae
@DonDiego DonDiego x86: hpeldsp: Add missing av_cold attribute to init function 4c642d8
Maxim Polijakowski ATRAC3+ decoder
Cleanup by Diego Biurrun.

Signed-off-by: Kostya Shishkov <>
@justinruggles justinruggles flac muxer: add option to disable writing the global header
The global header is not explicitly required for playback, and
omitting it allows for simple concatenation.
@kodabb kodabb lavfi: add framepack filter a7d0e7e
@kodabb kodabb fate: add framepack filter test 11d704d
@kodabb kodabb avfilter: add documentation for needs_writable d44bd7f
@kodabb kodabb avfilter: add needs_writable field to the internal AVFilterPad structure 5655732
@kodabb kodabb avfilter: fix leaks on error in ff_filter_frame abb5e37
@kodabb kodabb avutil: do not use avcodec header in frame.h 02b9faf
Commits on Jan 10, 2014
@mstorsjo mstorsjo fate: Explicitly specify the rgb555le pixel format for the mss2 rgb55…
…5 tests

This fixes these fate tests on big endian.

Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo arm: Add an option for making sure NEON registers aren't clobbered
This is pretty much based on the same test for XMM registers.

Signed-off-by: Martin Storsjö <>
Commits on Jan 11, 2014
Benjamin Larsson flv: Workaround for buggy Omnia A/XE encoder
The Omnia A/XE encoder writes the explicit extra data incorrectly
and wrongly disables parametric stereo. Truncating the extra data
by setting the size to 2 works around this. The AAC extra data
parser will then only parse the correct parts.

Bug-id: 599
Commits on Jan 12, 2014
@lu-zero lu-zero vc1dsp: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <>
Commits on Jan 13, 2014
@lu-zero lu-zero vc1: Factorize out chroma MC c798a6f
@michaelni michaelni vc1: Add avg_no_rnd_vc1_chroma_mc4_c()
Needed for proper interlaced support.

Signed-off-by: Luca Barbato <>
@Rodeo314 Rodeo314 vc1: Enable the interlaced B-frame codepath.
Signed-off-by: Luca Barbato <>
@mstorsjo mstorsjo x86/arm: Add clobber tests to libavresample
Signed-off-by: Martin Storsjö <>
@elenril elenril lavf: simplify handling of offset in av_probe_input_buuffer() c1868e7
@elenril elenril lavf: use a fixed width type
It's shorter and more consistent with the rest of the code.
@elenril elenril lavf: make av_probe_input_buffer more robust
Always use the actually read size as the offset instead of making
possibly invalid assumptions.

Addresses: CVE-2012-6618
@DonDiego DonDiego arm: Use full filenames as multiple inclusion guards 7151c5d
@DonDiego DonDiego x86: Consistently use cpu flag detection macros in places that still …
…miss it
@robertmk robertmk vf_yadif: Relicense from GPL to LGPL
All copyright holders have agreed to the relicensing.
Commits on Jan 14, 2014
Reimar Döffinger mxf: Set AV_FIELD_PROGRESSIVE
Needed for AVC-intra

Signed-off-by: Luca Barbato <>
@lu-zero lu-zero mxf: Do not use int to check the seek position
Overly large files are to be expected.

Reported-by: Jean-Baptiste Kempf <>
@cus cus mxf: Fix off by one error in d10 aes3 decoding
Without this fix the last sample was missing from the packet.
@lu-zero lu-zero mxf: Drop unnecessary checks
av_reallocp_array does the check already.
@lu-zero lu-zero mxf: Use av_malloc_array 1a4e4ad
@michaelni michaelni mxf: Fix a possible leak of extradata
Signed-off-by: Luca Barbato <>
@Tjoppen Tjoppen mxf: Correctly support files from Pinnacle Thunder
Such files have IndexTableSegments which when parsed cover EditUnit
ranges like this:


where each interval is

 [IndexStartPosition, IndexStartPosition + IndexDuration)

This would be reduced to a sparse index like:

 [0,1), [249,250)

instead of the full range:

 [0,249), [249,377)

Signed-off-by: Luca Barbato <>
@Tjoppen Tjoppen mxf: Fix potential leak in mxf_read_local_tags()
Signed-off-by: Luca Barbato <>
Janne Grunau cabac: remove leftovers from the cabac encoder
The cabac encoder was only used by the removed cabac test.

Signed-off-by: Janne Grunau <>
Janne Grunau aarch64: configure: set arch dependent features
Stack is always 16 byte aligned and clz, 64bit operations and unaligned
memory access are fast in aarch64 mode on ARMv8.

Signed-off-by: Janne Grunau <>
Janne Grunau aarch64: bswap inline assembly
Signed-off-by: Janne Grunau <>
Commits on Jan 15, 2014
@mstorsjo mstorsjo mov: Free intermediate arrays in the normal cleanup function
These arrays are normally freed at the end of mov_read_trak,
but make sure they're freed in case mov_read_trak returned
early (due to errors) or in case the atoms that allocate arrays
are encountered at some other point than within a trak (which
we don't have checks against).

Sample-Id: 00000496-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo mov: Free an earlier allocated array if allocating a new one
It could probably also be considered an error if the pointer isn't
null at this point, but then we might risk rejecting some
slightly broken files that we might have handled so far.

Sample-Id: 00000496-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <>
Janne Grunau dct-test: test ff_simple_idct_neon only on ARM for now
Signed-off-by: Janne Grunau <>
Janne Grunau aarch64: add cpuflags support for NEON and VFP
NEON and VFP are currently mandatory for all ARMv8 profiles. Both are
handled as extensions as far as cpuflags are concerned. This is
consistent with handling x86_64 which always has SSE2, but still
handles it as an extension.
Janne Grunau aarch64: h264 chroma motion compensation NEON optimizations
Since RV40 and VC-1 use almost the same algorithm so optimizations for
those two decoders are easy to do and included.
Janne Grunau aarch64: h264 idct NEON assembler optimizations
Ported from ARMv7 NEON.
Janne Grunau aarch64: h264 qpel NEON optimizations
Ported from ARMv7 NEON.
Janne Grunau aarch64: hpeldsp NEON optimizations
Ported from ARMv7 NEON.
Janne Grunau aarch64: h264 loop filter NEON optimizations
Ported from ARMv7 NEON.
Janne Grunau aarch64: h264 (bi)weight NEON optimizations
Ported from ARMv7 NEON.
Janne Grunau aarch64: port neon clobber test from arm fe96769
@DonDiego DonDiego build: Add separate hidden config option for the intrax8 code
This allows for slightly cleaner dependency specification.
@DonDiego DonDiego x86: dsputil: Simplify xvmc deprecation conditional aab40bb
Commits on Jan 17, 2014
@mstorsjo mstorsjo aviocat: Check the argv array length before reading element i+1
Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo aviocat: Add support for specifying the input duration
This avoids the caller having to calculate the byte rate if wanting
to push a file in a rate resembling realtime.

Signed-off-by: Martin Storsjö <>
@lu-zero lu-zero doxy: Add AVFrame to the structured modules ff23c4e
@lu-zero lu-zero doxy: Document better the available AVFrame flags 045654f
@elenril elenril mp3enc: add an option for disabling the Xing frame. f9cc688
@elenril elenril mp3enc: allow omitting the id3v2 header with -id3v2_version 0 3301890
@elenril elenril avconv: print a warning when falling back to default 25fps 2ce8bca
@elenril elenril yuv4mpeg: set average frame rate 5ef11b8
@elenril elenril buffersrc: handle non-refcounted frames in av_buffersrc_add_frame() c…
@michaelni michaelni avisynth: fix setting packet properties
Reviewed-by: Stephen Hutchinson <>
Signed-off-by: Michael Niedermayer <>
Signed-off-by: Anton Khirnov <>
Commits on Jan 18, 2014
Reinhard Tartler Prepare for 10_alpha2 Release 2108811
@elenril elenril h264: reset first_field if frame_start() fails for missing refs
In this case we may not have a current frame, while first_field being
set implies we do.

Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: limit allowed pred modes in ff_h264_check_intra_pred_mode() to 3
Higher modes are not allowed for 16x16/chroma, which is what this
function is used for. Otherwise this function would return 0 (vertical
prediction) for invalid higher modes, which could result in invalid

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: do not call field_end if we do not have a current picture
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: prevent two matching fields from being both a short/long ref co…

Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: reset ref count if decoding the slice header fails
Otherwise the ER code might try to use some already freed references.

Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: reset num_reorder_frames if it is invalid
An invalid VUI is not considered a fatal error, so the SPS containing it
may still be used. Leaving an invalid value of num_reorder_frames there
can result in writing over the bounds of H264Context.delayed_pic.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@elenril elenril h264: check that an IDR NAL only contains I slices
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Commits on Jan 19, 2014
@Rodeo314 Rodeo314 ac3: set default matrix encoding modes in parse_frame_header.
Deduplicates some code.
@Rodeo314 Rodeo314 (e)ac3: parse and store the Lt/Rt and LFE mix levels. c229f57
@Rodeo314 Rodeo314 (e)ac3: clip surround mix level indexes.
Values 0-2 are reserved, 3 (-1.5dB) should be used instead.
@Rodeo314 Rodeo314 eac3: cosmetics, re-indent. 0d43b11
Commits on Jan 20, 2014
@elenril elenril lavc: allow the caller to override dimensions in ff_get_buffer()
This will be useful for allocating edges in the encoders.
@elenril elenril mpegvideo: allocate edges when encoding.
Allocating edges will be removed from generic code, so the encoder must
handle this explicitly.
@elenril elenril lavc: deprecate CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width(). 93c553c
@justinruggles justinruggles mov: do not set avg_frame_rate in the demuxer
The track duration is often not reliable or is not the duration
represented by the number of frames. In those cases, avg_frame_rate
was reported incorrectly. Removing this code falls back to the
default calculation in avformat_find_stream_info().

This is a partial revert of commit c3aeaa5.

Signed-off-by: Derek Buitenhuis <>
@mstorsjo mstorsjo rtmpproto: Avoid using uninitialized memory
If the url ends with .flv, we stripped it but didn't initialize
rt->playpath, doing av_strlcat on an uninitialized buffer.

Signed-off-by: Martin Storsjö <>
@mstorsjo mstorsjo rtmpproto: Send a full, absolute timestamp if it isn't monotonically …

The normal differential timestamps can't handle negative
differences, thus send a full packet header with an absolute
timestamp in these cases.

Signed-off-by: Martin Storsjö <>
@michaelni michaelni vc1: Always reset numref when parsing a new frame header.
Fixes an issue where the B-frame coding mode switches from interlaced
fields to interlaced frames, causing incorrect decisions in the motion
compensation code and resulting in visual artifacts.

Signed-off-by: Tim Walker <>
Commits on Jan 21, 2014
@michaelni michaelni hevc: check that VPS referenced from SPS exists
This matches how its done for SPS/PPS.
Fixes null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <>
@michaelni michaelni hevc: Fix modulo operations
Keep qp fields within the range.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <>
@lu-zero lu-zero hevc: Use uint64 to check for tile dimensions
And use unsigned datatypes.

Otherwise it would overflow.

Sample-Id: 00001315-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@smarter smarter hevc: clip pixels when transquant bypass is used
The reconstructed picture should always be clipped (see section 8.6.5),
previously we did not clip coding units where
cu_transquant_bypass_flag == 1.

Sample-Id: 00001325-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

Signed-off-by: Luca Barbato <>
@smarter smarter hevc: Remove useless clip
The src buffer should only contain values in the interval
[0, (1 << BIT_DEPTH) - 1].

Since shift = (BIT_DEPTH - 5), src[x] >> shift must be in
the interval [0, 31], so no clip is needed.

Signed-off-by: Luca Barbato <>
@lu-zero lu-zero hevc: Prevent some integer overflows
get_ue_golomb_long() returns an unsigned.

Sample-Id: 00001541-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@lu-zero lu-zero hevc: Bound check slice_qp
The T-REC-H.265-2013044 page 79 states it has to be in the range
[-s->sps->qp_bd_offset, 51].

Sample-Id: 00001386-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
@lu-zero lu-zero hevc: Bound check cu_qp_delta
The T-REC-H.265-2013044 page 91 states it has to be in the range
[-(26 + s->sps->qp_bd_offset / 2), (25 + s->sps->qp_bd_offset / 2)].
@slouken slouken dxva2: Retry IDirectXVideoDecoder_BeginFrame()
If the function returns E_PENDING retry for a fixed number of times.

Signed-off-by: Luca Barbato <>
@slouken slouken dxva2: Log errors verbosely
Signed-off-by: Luca Barbato <>
@DonDiego DonDiego dxva2: Add missing #includes 766df7c
@DonDiego DonDiego dxva2: Use correct printf format strings ade4ecb
Kostya Shishkov dxtory: correctly handle YUV slices with average odd height e91a3f1
Kostya Shishkov dxtory: change error code for unexpected slice configuration 025fd76
@elenril elenril lavc: do not force the emu edge flag
The default get_buffer2() implementation (and possibly some
user ones) does not allocate edges when this flag is set, which may
expose bugs in some decoders. Until the 10 release is out, it is safer
to remove this part.
@michaelni michaelni swscale: fix stride used in planarToNv12Wrapper()
Signed-off-by: Anton Khirnov <>
@michaelni michaelni swscale: add nv12/nv21->yuv420 converter
Signed-off-by: Anton Khirnov <>
@michaelni michaelni swscale/x86/rgb2rgb: add support for AVX
This does not yet include any actual AVX code

Signed-off-by: Anton Khirnov <>
@michaelni michaelni rgb2rgb_template: add MMX/SSE2/AVX-optimized deinterleaveBytes
Signed-off-by: Anton Khirnov <>
Commits on Jan 22, 2014
@DonDiego DonDiego configure: Set default HOSTCFLAGS/HOSTCPPFLAGS after compiler detection
This prevents the default HOSTCFLAGS from getting clobbered by flags
passed to configure on the command line.
Janne Grunau h264: skip chroma edges at the picture boundary while deblocking 4:4:4
This handles macroblock edges for the chroma components in the same way
as for the luma compoment for 4:4:4 streams. The Spec explicitly states
that the deblocking filter is not applied to edges at the boundary of
the picture.

Signed-off-by: Janne Grunau <>
@DonDiego DonDiego bfin: vp3: Mark all binary object sections appropriately
This fixes a leftover from e44d7c6.
@mstorsjo mstorsjo mpegvideo_enc: Don't call ff_h263dsp_init unconditionally
This fixes builds with e.g. --disable-decoders --disable-encoders

Signed-off-by: Martin Storsjö <>
Commits on Jan 23, 2014
@srstrong srstrong Merge 1cd0207