Martin Storsjö [Mon, 2 Sep 2013 13:23:17 +0000 (16:23 +0300)]
movenc: Don't flush after each written packet
This should improve write performance quite significantly.
---
Tested with both writing a normal mp4, by using the faststart
feature and writing a fragmented mp4 file; all turn out with the
same md5sum as before.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diego Biurrun [Mon, 2 Sep 2013 18:21:49 +0000 (20:21 +0200)]
cosmetics: Fix ATRAC codec name spelling
Anton Khirnov [Sat, 24 Aug 2013 19:30:46 +0000 (21:30 +0200)]
ape demuxer: check for EOF in potentially long loops
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Anton Khirnov [Sat, 24 Aug 2013 19:30:46 +0000 (21:30 +0200)]
4xm: check that bits per sample is strictly positive
Avoids a divide by zero.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Anton Khirnov [Sat, 24 Aug 2013 19:30:46 +0000 (21:30 +0200)]
lavf: avoid integer overflow when estimating bitrate
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Anton Khirnov [Sun, 25 Aug 2013 09:53:34 +0000 (11:53 +0200)]
lavf: move a variable declaration to the block where it's used
Anton Khirnov [Sat, 24 Aug 2013 19:30:46 +0000 (21:30 +0200)]
pictordec: pass correct context to avpriv_request_sample
Fixes invalid reads.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Anton Khirnov [Sat, 24 Aug 2013 19:30:46 +0000 (21:30 +0200)]
pictordec: break out of both decoding loops when y drops below 0
Otherwise picmemset can get called with negative y, resulting in an
invalid write.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Anton Khirnov [Sat, 24 Aug 2013 19:30:46 +0000 (21:30 +0200)]
vcr1: add sanity checks
Fixes invalid reads with corrupted files.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Martin Storsjö [Sat, 31 Aug 2013 15:35:33 +0000 (17:35 +0200)]
pcm-dvd: Fix build on big endian
Signed-off-by: Martin Storsjö <martin@martin.st>
Vittorio Giovara [Wed, 28 Aug 2013 08:30:14 +0000 (10:30 +0200)]
configure: Add docdir configuration option
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diego Elio Pettenò [Sat, 31 Aug 2013 10:30:16 +0000 (03:30 -0700)]
vf_lut: Constantize
The pixel format tables are never modified, mark them as constant.
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Christian Schmidt [Fri, 30 Aug 2013 16:15:47 +0000 (18:15 +0200)]
pcm_dvd: consolidate pieces from pcm.c and mpeg.c
Remove the header decoding for PCM audio from mpeg.c and the
20/24bit parts from pcm.c and merge them into a new decoder in
pcm-dvd.c.
The decoder has added support for samples that span multiple
packets and modified 20/24bit group decoding. Both is needed to
decode samples that have been generated with DVD-Lab Pro 2. The
decoding of 16bit PCM and two channel 24bit is identical to
before. No other samples are known to verify the correctness of
the encoding this software does.
The complete list of tested formats is
48kHz/16bit/2-8 channels
48kHz/24bit/2-5 channels
96kHz/16bit/2-4 channels
96kHz/24bit/2 channels
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Christian Schmidt [Fri, 30 Aug 2013 16:15:46 +0000 (18:15 +0200)]
pcm_bluray: cosmetics
Christian Schmidt [Fri, 30 Aug 2013 16:15:44 +0000 (18:15 +0200)]
pcm_bluray: rename pcm-mpeg.c to pcm-bluray.c
The original idea was to collect PCM codecs that could appear in various
MPEG streams in this file. Discussion in IRC lead to the conclusion that
one codec per file would be better and stop the need for #ifdefs.
Sean McGovern [Thu, 29 Aug 2013 14:39:31 +0000 (10:39 -0400)]
ppc: don't return a value from a function declared void
Signed-off-by: Martin Storsjö <martin@martin.st>
Diego Biurrun [Tue, 20 Aug 2013 13:32:00 +0000 (15:32 +0200)]
x86: avcodec: Consistently structure CPU extension initialization
Diego Biurrun [Tue, 20 Aug 2013 12:46:58 +0000 (14:46 +0200)]
x86: avcodec: Use convenience macros to check for CPU flags
Diego Biurrun [Tue, 20 Aug 2013 12:39:36 +0000 (14:39 +0200)]
x86: Add and use more convenience macros to check CPU extension availability
Diego Biurrun [Fri, 23 Aug 2013 16:50:53 +0000 (18:50 +0200)]
ppc: cosmetics: Consistently format CPU flag detection invocations
Diego Biurrun [Tue, 20 Aug 2013 16:24:27 +0000 (18:24 +0200)]
cosmetics: Place arch initialization calls in alphabetical order
Diego Biurrun [Fri, 23 Aug 2013 18:01:36 +0000 (20:01 +0200)]
arm: fmtconvert: Split armv6 fmtconvert code off from vfp code
Diego Biurrun [Fri, 23 Aug 2013 17:39:21 +0000 (19:39 +0200)]
arm: float_dsp: Propagate cpu_flags to vfp initialization function
Diego Biurrun [Fri, 23 Aug 2013 16:15:32 +0000 (18:15 +0200)]
arm: dcadsp: Move synth filter initialization to dcadsp file
Diego Biurrun [Sun, 25 Aug 2013 15:30:05 +0000 (17:30 +0200)]
swscale: cosmetics: Drop silly camelCase from swScale function pointer name
Diego Biurrun [Tue, 20 Aug 2013 08:52:54 +0000 (10:52 +0200)]
swscale: Add some missing av_cold to arch-specific init functions
Diego Biurrun [Tue, 20 Aug 2013 08:48:40 +0000 (10:48 +0200)]
swscale: consistent names for arch-specific acceleration functions
Diego Biurrun [Wed, 10 Oct 2012 23:06:04 +0000 (01:06 +0200)]
swscale: ppc: Hide arch-specific initialization details
Also give consistent names to init functions.
Diego Biurrun [Fri, 23 Aug 2013 16:48:17 +0000 (18:48 +0200)]
ppc: Add missing AltiVec cpuflag detection invocations
Diego Biurrun [Fri, 23 Aug 2013 16:46:49 +0000 (18:46 +0200)]
ppc: fdct: Remove vim editor settings comment
Diego Biurrun [Tue, 20 Aug 2013 16:25:04 +0000 (18:25 +0200)]
mpegvideo: Replace arch initialization ifdeffery by standard conditionals
Diego Biurrun [Tue, 20 Aug 2013 13:26:02 +0000 (15:26 +0200)]
x86: rv40dsp: Move inline assembly optimizations out of YASM init section
Diego Biurrun [Fri, 12 Oct 2012 17:54:45 +0000 (19:54 +0200)]
swscale: x86: Hide arch-specific initialization details
Also give consistent names to init functions.
Diego Biurrun [Fri, 12 Oct 2012 17:57:25 +0000 (19:57 +0200)]
dsputil: x86: Hide arch-specific initialization details
Also give consistent names to init functions.
Diego Biurrun [Tue, 20 Aug 2013 14:36:47 +0000 (16:36 +0200)]
ppc: Add and use convenience macro to check for AltiVec availability
Diego Biurrun [Tue, 20 Aug 2013 14:36:46 +0000 (16:36 +0200)]
avutil: Refactor CPU extension availability macros
Diego Biurrun [Tue, 20 Aug 2013 15:49:01 +0000 (17:49 +0200)]
avutil: Move internal CPU detection function declarations to private header
Rafaël Carré [Tue, 27 Aug 2013 15:35:49 +0000 (17:35 +0200)]
apedec: do not buffer decoded samples over AVPackets
Only consume an AVPacket when all the samples have been read.
When the rate of samples output is limited (by the default value
of max_samples), consuming the first packet immediately will cause
timing problems:
- The first packet with PTS 0 will output 4608 samples and be
consumed entirely
- The second packet with PTS 64 will output the remaining samples
(typically, a lot, that's why max_samples exist) until the decoded
samples of the first packet have been exhausted, at which point the
samples of the second packet will be decoded and output when
av_decode_frame is called with the next packet).
That means there's a PTS jump since the first packet is 'decoded'
immediately, which can be seen with avplay or mplayer: the timing
jumps immediately to 6.2s (which is the size of a packet).
Sample: http://streams.videolan.org/issues/6348/Goldwave-MAClib.ape
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
Diego Biurrun [Tue, 27 Aug 2013 21:33:57 +0000 (23:33 +0200)]
configure: x86: Fix handling of i686 and cpunop features
The i686 feature really is a CPU feature and should be handled as such.
The cpunop dependency on i686 should be expressed with a standard _deps
declaration instead of a manual test.
Martin Storsjö [Thu, 15 Aug 2013 10:17:15 +0000 (13:17 +0300)]
rtmpproto: Fix limelight authentication with abbreviated app names
When streaming to limelight, the app name is either a full
"appname/subaccount" or "appname/_definst_". In the latter case,
the app name can be simplified into simply "appname", but the
authentication hashing assumes the /_definst_ still to be present.
Signed-off-by: Martin Storsjö <martin@martin.st>
Hendrik Leppkes [Tue, 27 Aug 2013 20:44:14 +0000 (22:44 +0200)]
vf_fps: use double constants for default/min/max for start_time
When using AV_NOPTS_VALUE (which expands to INT64_C(0x8000000000000000))
as union initializer for a double field, the c99 converter needs to
interpret this constant when filling the union initializer, and it is
interpreted as a positive value.
When converting AV_NOPTS_VALUE to a double, MSVC 2010 ends up with
the same positive value as the c99 converter, while MSVC 2012 gets
a negative value.
This results in an infite loop in various FATE tests on MSVC 2012.
Signed-off-by: Martin Storsjö <martin@martin.st>
Luca Barbato [Tue, 27 Aug 2013 14:14:42 +0000 (16:14 +0200)]
doc: document the asf demuxer
And drop a typo from the previous FLV entry.
Vittorio Giovara [Tue, 27 Aug 2013 21:41:39 +0000 (23:41 +0200)]
vf_interlace: fix file permissions
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Martin Storsjö [Tue, 27 Aug 2013 11:55:06 +0000 (14:55 +0300)]
Revert "w32pthread: help compiler figure out undeeded code"
This reverts commit
4622f11f9c83db8a2e08408c71ff901826ca652c.
The compiler should be able to do the dead code elimination now
without this when the cond_* names point directly to the real
functions instead of to local function pointers.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Tue, 27 Aug 2013 11:48:56 +0000 (14:48 +0300)]
w32threads: Don't use function pointers when linking directly to newer APIs
This reduces the call overhead slightly. More noticeably, it
restores the earlier (unintended?) feature that condition variable
functions work just fine even if w32thread_init() hasn't been called.
This was broken as a side effect of
4622f11f9, if explicitly targeting
Vista+.
This makes w32threading work in VP8 again, if targeting Vista+.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Sat, 17 Aug 2013 15:42:23 +0000 (16:42 +0100)]
smoothstreamingenc: Write to a temp file while updating the manifest
If a client tries to read the file while it's being updated, the client
would get an incomplete manifest. Instead write to a separate temp file
and atomically rename it to replace the previous one.
Signed-off-by: Martin Storsjö <martin@martin.st>
Luca Barbato [Sat, 27 Jul 2013 08:16:35 +0000 (10:16 +0200)]
ac3: Return proper error codes
Luca Barbato [Sun, 28 Jul 2013 11:32:18 +0000 (13:32 +0200)]
ac3: Clean up the error paths
Luca Barbato [Sun, 28 Jul 2013 11:26:12 +0000 (13:26 +0200)]
ac3: Do not clash with normal AVERROR
The parsing function return AVERROR and AAC_AC3_PARSE_ERROR values,
make sure they are not misunderstood.
Luca Barbato [Tue, 27 Aug 2013 11:04:21 +0000 (13:04 +0200)]
flv: Fix the help string
Luca Barbato [Mon, 26 Aug 2013 14:22:44 +0000 (16:22 +0200)]
doc: Document the flv demuxer
John Stebbins [Thu, 22 Aug 2013 15:54:59 +0000 (08:54 -0700)]
matroskaenc: Fix writing TRACKDEFAULTFLAG
The element was only being written when the value == 1. But the default
value of this element is 1, so this has no useful effect. This element
needs to be written when the value == 0.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Martin Storsjö [Mon, 26 Aug 2013 07:45:27 +0000 (10:45 +0300)]
movenc: Check for errors from mov_create_chapter_track
On failures in the write_trailer function, we could also ignore
the errors and try to finish the file despite these errors (which
would only leave an incomplete chapters track). It's probably better
to signal the error clearly to the caller though (and if this
function failed there's no guarantee that there's enough memory to
finish the trailer either).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 26 Aug 2013 07:59:46 +0000 (10:59 +0300)]
movenc: Properly free allocated data on failures in mov_write_header
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 26 Aug 2013 07:56:17 +0000 (10:56 +0300)]
movenc: Check that tracks->enc exists before trying to free extradata
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Sun, 25 Aug 2013 18:23:58 +0000 (21:23 +0300)]
movenc: Check for allocation failures in mov_create_chapter_track
Signed-off-by: Martin Storsjö <martin@martin.st>
Kostya Shishkov [Thu, 11 Jul 2013 05:04:42 +0000 (07:04 +0200)]
imc: support mode 1
Kostya Shishkov [Sat, 24 Aug 2013 13:00:08 +0000 (15:00 +0200)]
twinvq: set block align for codecs and use it in size checks
This both allows factoring out size check for both MetaSound and TwinVQ-VQF
decoders and fixes the situation when there are several MetaSound frames
stuffed together (that happens in 8kHz @ 8kbps MetaSound in ASF for example).
Luca Barbato [Sun, 25 Aug 2013 11:02:33 +0000 (13:02 +0200)]
mov: Write tmcd extradata
Luca Barbato [Sun, 25 Aug 2013 11:02:07 +0000 (13:02 +0200)]
mov: Parse tmcd extradata
Luca Barbato [Thu, 22 Aug 2013 13:05:27 +0000 (15:05 +0200)]
mov: Refactor multiple stsd skipping in mov_mov_skip_multiple_stsd
Luca Barbato [Thu, 22 Aug 2013 13:05:27 +0000 (15:05 +0200)]
mov: Refactor codec specific final steps in mov_finalize_stsd_codec
Luca Barbato [Thu, 22 Aug 2013 13:05:27 +0000 (15:05 +0200)]
mov: Refactor subtitle specific parsing in mov_parse_stsd_subtitle
Luca Barbato [Thu, 22 Aug 2013 13:05:27 +0000 (15:05 +0200)]
mov: Refactor audio specific parsing in mov_parse_stsd_audio
Luca Barbato [Thu, 22 Aug 2013 13:05:27 +0000 (15:05 +0200)]
mov: Refactor video specific parsing in mov_parse_stsd_video
Luca Barbato [Thu, 22 Aug 2013 13:00:46 +0000 (15:00 +0200)]
mov: Refactor codec id selection in mov_codec_id
Diego Biurrun [Thu, 15 Aug 2013 22:29:23 +0000 (00:29 +0200)]
h264_cabac: Mark functions calling decode_cabac_residual_internal as noinline
This ensures that decode_cabac_residual_internal actually does get inlined,
which it otherwise does not, even though it is marked as always_inline.
Diego Biurrun [Fri, 23 Aug 2013 14:59:43 +0000 (16:59 +0200)]
arm: h264chroma: Do not compile h264_chroma_mc* dependent on h264 decoder
The functions are used by all codecs that enable the h264chroma component
and the file is already compiled conditional on h264chroma being enabled.
Diego Biurrun [Wed, 21 Aug 2013 13:09:18 +0000 (15:09 +0200)]
libfdk-aacdec: formatting cosmetics
Diego Biurrun [Sat, 6 Oct 2012 18:28:56 +0000 (20:28 +0200)]
vp56: Mark VP6-only optimizations as such.
Most of our VP56 optimizations are VP6-only and will stay that way.
So avoid compiling them for VP5-only builds.
John Stebbins [Thu, 22 Aug 2013 14:25:18 +0000 (07:25 -0700)]
movenc: Make tkhd "enabled" flag QuickTime compatible
QuickTime will play multiple audio tracks concurrently if this flag is
set for multiple audio tracks. And if no subtitle track has this flag
set, QuickTime will show no subtitles in the subtitle menu.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
John Stebbins [Thu, 22 Aug 2013 14:25:17 +0000 (07:25 -0700)]
mov: use tkhd enabled flag to set the default track
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diego Biurrun [Sun, 4 Aug 2013 11:24:15 +0000 (13:24 +0200)]
x86: Split DCT and FFT initialization into separate files
Clément Bœsch [Tue, 20 Aug 2013 14:46:09 +0000 (07:46 -0700)]
movenc: fix detection of 64bit offset requirement
The old method doesn't work when moov is relocated to beginning of file
Signed-off-by: Martin Storsjö <martin@martin.st>
John Stebbins [Mon, 19 Aug 2013 23:05:33 +0000 (16:05 -0700)]
movenc: Make chapter track QuickTime compatible
QuickTime requires that the stsd.text box be completely filled in.
Signed-off-by: Martin Storsjö <martin@martin.st>
Clément Bœsch [Mon, 19 Aug 2013 23:05:31 +0000 (16:05 -0700)]
movenc: add faststart option for web streaming
Faststart moves the moov atom to the beginning of the file and rewrites
the rest of the file after muxing is complete.
Signed-off-by: Martin Storsjö <martin@martin.st>
Rafaël Carré [Tue, 20 Aug 2013 17:25:22 +0000 (19:25 +0200)]
w32pthread: help compiler figure out undeeded code
The emulation code is not needed when targetting Vista+
This helps getting rid of CreateSemaphore symbol, which is
forbidden in Windows Store apps.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diego Biurrun [Mon, 19 Aug 2013 13:32:36 +0000 (15:32 +0200)]
x86: h264_idct: Remove incorrect comment
Diego Biurrun [Tue, 20 Aug 2013 12:24:04 +0000 (14:24 +0200)]
avcodec/utils: Simplify a condition that combines HAVE_NEON and ARCH_ARM
Diego Biurrun [Mon, 19 Aug 2013 13:18:49 +0000 (15:18 +0200)]
h264_ps: Use more meaningful error values
Diego Biurrun [Mon, 19 Aug 2013 13:16:05 +0000 (15:16 +0200)]
h264_ps: K&R formatting cosmetics
Diego Biurrun [Mon, 19 Aug 2013 13:22:06 +0000 (15:22 +0200)]
h264_ps: Drop commented-out cruft
Diego Biurrun [Mon, 19 Aug 2013 10:44:58 +0000 (12:44 +0200)]
h264data: Move some tables to the only place they are used
Diego Biurrun [Mon, 19 Aug 2013 10:43:17 +0000 (12:43 +0200)]
h264data: Remove unused luma_dc_field_scan table
Martin Storsjö [Thu, 15 Aug 2013 19:40:32 +0000 (15:40 -0400)]
Add a libfdk-aac decoder
This can be useful for decoding AAC object types that are not supported
by the native AAC decoder, e.g. AAC-LD and AAC-ELD.
Justin Ruggles [Thu, 15 Aug 2013 20:14:57 +0000 (16:14 -0400)]
vf_fps: add 'start_time' option
This allows for dropping or duplication to match a particular start time.
Diego Biurrun [Tue, 20 Aug 2013 12:25:33 +0000 (14:25 +0200)]
avcodec: Remove some commented-out debug cruft
John Stebbins [Mon, 19 Aug 2013 23:05:30 +0000 (16:05 -0700)]
movenc: Allow chapters to be written in trailer
This allows creation of frame accurate chapter marks from sources
like DVD and BD where the precise chapter location is not known until
the chapter mark has been reached during reading.
Signed-off-by: Martin Storsjö <martin@martin.st>
John Stebbins [Mon, 19 Aug 2013 23:05:29 +0000 (16:05 -0700)]
movenc: Allow chapter track in default MODE_MP4
Signed-off-by: Martin Storsjö <martin@martin.st>
Diego Biurrun [Tue, 20 Aug 2013 10:23:24 +0000 (12:23 +0200)]
avformat: Fix references to removed av_close_input_file in Doxygen
Luca Barbato [Mon, 19 Aug 2013 15:18:23 +0000 (17:18 +0200)]
mov: Prevent segfaults on mov_write_hdlr_tag
Do not segfault when writing tracks such as tmcd by writing them down
as generic DataHandlers if not known.
Luca Barbato [Mon, 19 Aug 2013 15:18:22 +0000 (17:18 +0200)]
mov: Compute max duration among the tracks with a timescale
Prevent an assert.
Luca Barbato [Mon, 19 Aug 2013 15:18:21 +0000 (17:18 +0200)]
mov: Set the timescale for data streams
Data streams have a defined timebase, do not ignore it.
Martin Storsjö [Mon, 19 Aug 2013 07:33:14 +0000 (08:33 +0100)]
mkv: Allow flushing the current cluster in progress
Allow emitting the current cluster that is being written before
starting a new one, simplifying how to figure out where clusters
are positioned in the output stream (for live streaming).
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 18 Aug 2013 18:09:41 +0000 (20:09 +0200)]
mkv: Flush the old cluster before writing a new one
This simplifies keeping track of cluster boundaries for e.g.
livestreaming of WebM.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 18 Aug 2013 18:09:40 +0000 (20:09 +0200)]
mkv: Add options for specifying cluster limits
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 18 Aug 2013 18:09:39 +0000 (20:09 +0200)]
mkv: Refactor mkv_write_packet
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Reimar Döffinger [Sun, 18 Aug 2013 15:40:51 +0000 (17:40 +0200)]
ogg: Fix potential infinite discard loop
Seeking in certain broken files would cause ogg_read_timestamp
to fail because ogg_packet would go into a state where all packets
of stream 1 would be discarded until the end of the stream.
Bug-Id: 553
CC: libav-stable@libav.org
Signed-off-by: Jan Gerber <j@v2v.cc>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö [Sat, 17 Aug 2013 16:05:53 +0000 (17:05 +0100)]
movenc: Indicate that negative timestamps are supported
The mov/mp4 muxer has support for handling negative timestamps
via edit lists (which customarily is used for handling the 1-frame
delay due to B-frames as well).
Using the muxer's native way of handling it is better than using
the generic offsetting. The generic offsetting is a bit too
crude when e.g. the timebase of one track is 1/fps, where the
edit lists can handle it accurately.
Signed-off-by: Martin Storsjö <martin@martin.st>
Janne Grunau [Sat, 17 Aug 2013 10:36:36 +0000 (12:36 +0200)]
dxa: fix decoding of first I-frame by separating I/P-frame decoding
5ef7c84 broke decoding for the first keyframe due to an unnecessary
check for a reference frame.
CC: libav-stable@libav.org