Commit Graph
100 Commits
Author SHA1 Message Date
Reimar Döffinger 3fa6d20533 H264 parser: enable header parsing/frame type detection for is_avc.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-19 15:29:10 +01:00
Reimar Döffinger 57182b9f0f lavf-fate-ogg_vp3: Try -idct auto instead of -idct simple.
-idct simple for some reason results in different results on
different systems.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 21:45:07 +01:00
Reimar Döffinger 76cc0992d8 oggenc: fix condition when not to flush due to keyframe granule.
The previous condition of 0 page size was wrong,
that would disable the mechanism for all frames at
a start of a page, thus some keyframes still would not
get their own granule.
The real problem is that header packets must not be flushed,
but they have (and must have) 0 granule and thus would
be detected as keyframes.
Add a separate parameter to mark header packets.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 21:35:49 +01:00
Reimar Döffinger 030e96fe55 oggdec: improve warning message.
Print whether it was a keyframe or a non-keyframe that
was incorrectly marked as the other.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 21:35:49 +01:00
Reimar Döffinger f23a740303 Add muxer test based on stream-copy from FATE sample.
This should test muxing Theora into Ogg.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 16:41:39 +01:00
Reimar Döffinger ad8173eb81 Allow other programs to open the same files on Windows.
In order to match Linux behaviour better our
Windows-specific open() replacement should disable
Windows default file locking.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 12:26:35 +01:00
Reimar Döffinger 7c8d477299 Make AAC in Ogg (ogm) work.
This needs the extradata to be extracted.
The approach used is the one MPlayer uses, though it is
unclear whether the 4 bytes extradata that are skipped
should be skipped always or only for AAC.
The AAC parser must be disabled, too, otherwise playback
still does not work.
Fixes trac issue #547.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-18 12:04:14 +01:00
Reimar Döffinger d493170ec9 matroskadec: introduce resync function.
This allows handling matroska files with errors.
Fixes test4.mkv and test7.mkv from the official Matroska test suite.
These are also trac issues #544 and #545.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-17 17:29:51 +01:00
Reimar Döffinger 9e0f897fe5 Add ismv regression test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-17 17:29:51 +01:00
Reimar Döffinger 3ce7148dff movenc: fix crashes if a stream is empty.
For some reason this always happens with -f ismv.
See trac issue #996.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-17 17:04:10 +01:00
Reimar Döffinger 048cc80292 Update mkv seek tests.
Seek beyond the end will now directly return an error instead
of claiming to succeed and then return EOF immediately on next read.
This change is because before 47e015e6f1
mkv seek incorrectly never failed.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-13 21:48:20 +01:00
Reimar Döffinger 47e015e6f1 matroskadec: properly fall back to generic seek.
In particular, detect when the index is obviously broken.
This fixes the worst symptoms of trac issue #958 and makes
sense to allow seeking in files without index.
However it is possible that there still is an index parsing bug
with that file.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-13 20:04:09 +01:00
Reimar Döffinger c18899d432 matroskadec: reset num_levels on seek.
Otherwise when we run into levels beyond the max. allowed
playback will be permanently broken.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-13 20:04:09 +01:00
Reimar Döffinger f51a072160 Fix compilation without HAVE_AVX.
%ifdef HAVE_AVX must now be %if HAVE_AVX.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 21:42:31 +01:00
Reimar Döffinger c15f3bd3db Simplify: use local variable with same contents directly.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 18:56:07 +01:00
Reimar Döffinger ff92549195 Fix Theora-in-ogg keyframe handling.
To make seeking work correctly, we must write a new granule for
each keyframe.
Unfortunately we currently have no regression tests due to no
included Theora encoder.
A test based on -vcodec copy from a Theora FATE sample should
probably be added.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 18:56:06 +01:00
Reimar Döffinger b223035511 Detect and check for CMOV.
Some MMX-only CPUs do not have support for CMOV.
All SSE/MMX2 CPUs should be fine, thus no check was
added to those functions.
See also https://sourceforge.net/tracker/?func=detail&aid=3358347&group_id=205275&atid=992986

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 18:56:06 +01:00
Reimar Döffinger 394d41ee30 Partially revert "Fix png decoding on x86."
This partially reverts commit 58dabf7bf2.
It is no longer necessary to use unaligned mov.
The swapped mov argument fix remains though.
2012-02-10 23:18:52 +01:00
Reimar Döffinger 3fe00cac71 Fix bitexact intra mismatch control.
The DC coefficient should be included, too.
This probably was missed because DC quantizer is always
even for MPEG-1/2 but this function is also used for MPEG-4.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-10 23:18:52 +01:00
Reimar Döffinger 5338566eaf mpegvideodec: minor simplifications.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-10 23:18:52 +01:00
Reimar Döffinger 787528b4a6 Detect theora keyframes by content in Ogg demuxer.
A lot of files do not mark keyframes correctly via
granule, so detect keyframe or not based on data
and complain if it mismatches.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-06 22:08:45 +01:00
Reimar Döffinger 8162c6f0bd oggdec: add missing ogg_reset on seek.
It would never be called when the searched-for position
was already in the index.
In the other cases, the ogg_reset at the end of the
read_timestamp function handled it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-05 14:21:16 +01:00
Reimar Döffinger 1b0dc96fc9 oggdec: fix keyframe seeking when granule_is_start is 0.
In this case, the pts values will be delayed by one, but
at the same time pts values might only be supplied for e.g.
keyframes.
This results on only the frame after the keyframe having a
pts value.
As a hack, make read_timestamp return the keyframe position
together with the pts from a following frame when seeking
to a keyframe.
Fixes trac issue #438.
However it causes the read_timestamp function to return a
pos value that is actually before the packet with the
indicated pts.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-05 14:21:16 +01:00
Reimar Döffinger 5b0103590c Remove warning about Ogg skeleton v4.
We can handle v4 just fine, the parts we currently use
are the same for v3 and v4.
v4 can in addition contain an index which we so far do
not use though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-04 20:18:31 +01:00
Reimar Döffinger d7b542ae29 Fix potential infinite discard loop.
Fixes trac issue #438.
Seeking in that sample 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.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-04 19:13:29 +01:00
Reimar Döffinger 58dabf7bf2 Fix png decoding on x86.
Line sizes are only 8-byte aligned, so use unaliged loads
for add_bytes_l2 pointers.
Increasing the alignment requirement to 16 seemed a bit extreme
(png may be used for rather small sizes).
Also fix a mov that had its arguments swapped, leading
add_bytes_l2 being applied on up to 8 bytes too few.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-03 23:12:10 +01:00
Reimar Döffinger da1ba4e88b Fix NASM compilation.
movd needs explicit register size prefix for NASM.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-03 20:42:30 +01:00
Reimar DöffingerandJustin Ruggles f54ae2f8e7 fraps: Use av_fast_padded_malloc() instead of av_realloc()
Ensures alignment and avoids using uninitialized data.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar DöffingerandJustin Ruggles 0880503fbb mjpegdec: use av_fast_padded_malloc()
also check for allocation failure

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar DöffingerandJustin Ruggles 2f4b9021a1 eatqi: use av_fast_padded_malloc()
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar DöffingerandJustin Ruggles 00db4d4ad5 asv1: use av_fast_padded_malloc()
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:46 -05:00
Reimar Döffinger 2ab5feafe1 huffman: use a simple assignment instead of FFSWAP.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-30 18:39:08 +01:00
Reimar Döffinger 6166bf3cbe Deobfuscate ff_huff_build_tree.
I have no idea what the idea was behind the original code,
but the new code is equivalent to it.
In that loop that places the new node nodes[j] contains
always the data of the new node (since the steps are always
in order: FFSWAP copies node[j] to node[j-1], j is decremented).
Thus nodes[j].no == i and nodes[j].sym == HNODE.
make fate still passes and contains VP6 samples which use
FF_HUFFMAN_FLAG_HNODE_FIRST.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-30 18:39:08 +01:00
Reimar Döffinger f9eb622944 Fix offset validity checks.
Offsets are relative to the end of the header, not the
start of the buffer, thus the buffer size needs to be subtracted.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:55 +01:00
Reimar Döffinger cd3ced1bb9 fraps: frame threading support.
Codec is too simple to gain much from it at lower resolutions,
but should help at very high resolutions, particularly for
v3 and v5 where a not too optimized pseudo-YUV to RGB
is done in the codec.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:55 +01:00
Reimar Döffinger 0efdb942a6 fraps: Deduplicate some code.
Also moves it before the get_buffer call so that most error exits
happen before it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:54 +01:00
Reimar Döffinger 3469c88804 fraps: Minor simplification, use local variable.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 21:52:54 +01:00
Reimar Döffinger 7fabef1f01 fraps: optimize pseudo-YUV to RGB conversion.
With gcc 4.6 this part of the code is ca. 4x faster, resulting
in an overall speedup of around 5% for fate-fraps-v5 sample.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 17:34:22 +01:00
Reimar Döffinger f4e8292eb7 fraps: Add release_buffer forgotten when reget_buffer was removed.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:48:36 +01:00
Reimar Döffinger 95e873bb14 fraps: fix indentation.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:21:36 +01:00
Reimar Döffinger 6a9b565e0a FRAPS: Do not needlessly use reget_buffer.
Codec has only I- and skip-frames, so there is no
need for reget_buffer, change it so it works with
get_buffer.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:17:12 +01:00
Reimar Döffinger 05741d70c7 Fallback to input timestamps for non-delay encoders.
Causes FFmpeg to pass through the correct pts values,
instead of clobbering all to AV_NOPTS_VALUE (the av_init_packet
default) to then make up new ones based on only fps when muxing.
Included are also the related FATE ref changes, which all
some reasonable on quick investigation.
Also set all H.264 references to us -vsync drop to reduce the
diff for the ref files.
Otherwise almost all H.264 references need to change, mostly due
to now starting with negative pts values.
About 20 additional H.264 conformance tests needed -vsync
drop anyway because they create pts values that are out of
order and thus not possible to mux otherwise.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-29 14:17:11 +01:00
Reimar Döffinger 97dece333d rawenc: initialize coded_frame via avcodec_get_frame_defaults.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 23:21:03 +01:00
Reimar Döffinger dbc7c6121e libgsm: Fix compilation.
Move libgsm_encode_close before its first use and call it
with the correct number of arguments.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 23:21:03 +01:00
Reimar Döffinger 47a5274104 Add -vsync drop.
This allows to work around any non-monotonic time-stamp errors
by just discarding all time stamps.
This will be necessary to allow H.264 conformance tests to pass
after fixing time stamps to be passed through rawenc.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger 836110665f Compare video_sync_method against the appropriate defines.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger 34751f8313 Demux all parts of concatenated H.264.
We may or may not be able to play the latter parts
but not demuxing at all seems like the worst possible behaviour.
Fixes playback of e.g.
http://playlist.yahoo.com/makeplaylist.dll?sid=128114687&sdm=web&pt=rd
As a proper solution either multiple video streams should
be exported or side data should be used to update extradata
if necessary.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger bb2d42c22f Set AVFMT_TS_NONSTRICT for framecrc muxer.
Since it is set for e.g. webm muxer we should make it possible
to test such streams with framecrc, too.
Though the primary reason is that this allows the H.264 tests
to not run into this check when fixing raw video encode to
pass pts values on.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger 333f5b52e3 Remove unnecessary -vsync 0.
The tests work fine without it, and it will cause issues when the
rawvideo decoder is changed to properly handle pts values.
The H.264 conformance tests however are still broken, usually losing
the first frames without it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:09 +01:00
Reimar Döffinger a0eb8de5e0 Merge palette-only header with actual video frame.
This fixes the video frame pts (off by one for each MVIh)
and makes the "key frames" decode stand-alone (MVIh
contains only palette, such a palette-only frame being
marked as key frame is not really correct).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 22:01:05 +01:00
Reimar Döffinger 0b378e8aa9 DFA: fix "skip frame" TSW1 encoding.
Previously the decoder would raise an error.
The end result is the same, the time stamps only change
because regression tests create time stamps incorrectly.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-28 21:59:01 +01:00
Reimar Döffinger b4ec645f47 Extract some duplicated code.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-22 14:41:15 +01:00
Reimar Döffinger b64b1608d8 Remove pointless and distracting ()
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-22 14:41:15 +01:00
Reimar Döffinger 57608d9029 Simplify: just add header_size directly.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-22 14:41:15 +01:00
Reimar Döffinger b09c93d7bc Move some duplicated code, simplify.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-22 14:41:15 +01:00
Reimar Döffinger 0a403588d2 Make variable that always has the same value const.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-22 14:41:15 +01:00
Reimar Döffinger daa47fdd2c Optimized base64 decode by writing 3 bytes at once.
About 25% faster.
decode: 248852 -> 200385 decicycles
(syntax check unchanged)

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-22 14:41:15 +01:00
Reimar Döffinger 420719e141 Cosmetics: add do {} while 0 to macro.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-22 14:41:15 +01:00
Reimar Döffinger def19c9036 Unroll base64 decode loop.
Around 50% faster.
decode:       374139 -> 248852 decicycles
syntax check: 236955 -> 123854 decicycles

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-21 16:35:11 +01:00
Reimar Döffinger 523f676b51 Use a full table for base64 decode.
Also encodes error or end marker into table.
About 20% faster.
decode:       466491 -> 374139 decicycles
syntax check: 236955 -> 161182 decicycles

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-21 14:52:05 +01:00
Reimar Döffinger d41c824b23 Fix valgrind FATE for out-of-tree builds.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-21 14:52:05 +01:00
Reimar Döffinger 8650d5faf9 base64: more thorough decode tests.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-21 12:04:46 +01:00
Reimar Döffinger 77b90f0cd0 Add a --valgrind configure option.
If specified runs "make fate" through valgrind using the
given valgrind binary.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-21 12:04:46 +01:00
Reimar Döffinger d60d718c49 Slightly optimize base64 encode.
Move handling of last byte outside of innermost loop.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-20 23:28:31 +01:00
Reimar Döffinger 6af4c9814a Optimize output buffer size check in base64 decode.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-20 23:28:26 +01:00
Reimar Döffinger 686ba5f4ea Minor optimization of base64 decode.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-20 23:27:16 +01:00
Reimar Döffinger 6fd4b8a6ef Replace a av_fast_malloc with av_fast_padded_malloc.
This one was missed in the previous fraps fix, the
allocation is exactly the same in both cases.
Fixes fraps-v5 under valgrind.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-18 22:04:14 +01:00
Reimar Döffinger e8b060f7e7 Use av_fast_padded_malloc in mimic and truemotion2 decoders.
Fixes use of uninitialized data errors under valgrind.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-18 22:04:14 +01:00
Reimar Döffinger f9ced97543 Use av_fast_padded_malloc in fraps and mpc decoders.
Fixes FATE failures due to uninitialized reads under valgrind
for these two codecs.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-18 21:22:01 +01:00
Reimar Döffinger d393f41a33 Fix memleak after switch to encode_audio2 API.
Obviously the packet allocated by the encoder must be freed somewhere.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-17 22:16:07 +01:00
Reimar Döffinger 178f8ea76e Use ff_packet_free_side_data instead of duplicating it.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-17 22:16:07 +01:00
Reimar Döffinger 71a2c9b265 ffmpeg: check tcgetattr result.
This fixes parallel FATE (make fate -j4) failing under valgrind with:
 Syscall param ioctl(TCSET{S,SW,SF}) points to uninitialised byte(s)
    at 0x5D98B23: tcsetattr (tcsetattr.c:88)
    by 0x43D66C: term_init (ffmpeg.c:734)
    by 0x43CD8D: main (ffmpeg.c:5071)
  Address 0x7fefffdd0 is on thread 1's stack
  Uninitialised value was created by a stack allocation
    at 0x43D5B0: term_init (ffmpeg.c:716)

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-17 20:16:50 +01:00
Reimar Döffinger 3b55429d56 Add and use av_fast_padded_malloc.
The same as av_fast_malloc but uses av_mallocz and keeps extra
always-0 padding.
This does not mean the memory will be 0-initialized after each call,
but actually only after each growth of the buffer.
However this makes sure that
a) all data anywhere in the buffer is always initialized
b) the padding is always 0
c) the user does not have to bother with adding the padding themselves
Fixes another valgrind warning about use of uninitialized data,
this time with fate-vsynth1-jpegls.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-17 20:16:35 +01:00
Reimar Döffinger 7e62315c91 Use correct register size.
Fixes compilation with NASM.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-17 08:41:39 +01:00
Reimar Döffinger c203044f37 Remove extraneous newline from dpx reference which breaks FATE.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-16 19:44:37 +01:00
Reimar Döffinger 7594791541 Rework VP8 decoder frame skipping code.
This reworks the frame skipping code such that the reference
buffers are still updated according to the header.
However it also ensures that the current frame will not end
up in any reference buffer.
Also fixes a hang with frame-multithreading, probably because
get_buffer was already called and would have reset the progress,
however the frame could remain in framep due to the missing update
(or it could be assigned to next_framep and a skip_frame skip would
then write it into framep - there might be even more failure modes).
Sample might become available at samples/nsv/vp8.nsv

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-16 19:21:24 +01:00
Reimar Döffinger 203f94fd7c mxfdec: Add missing free.
Should fix valgrind FATE.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-16 19:21:24 +01:00
Reimar Döffinger 6003ec880b asfdec: Move variable declarations into the blocks they are used in.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-16 19:21:24 +01:00
Reimar Döffinger ea3abcd58f Fix ff_get_guid for short reads or errors.
Current code would just return uninitialized data with no way
to detect this condition.
Instead, fill the whole GUID with 0 in that case.
Fixes valgrind uninitialized data errors in fate-seek-lavf_asf.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-15 20:37:54 +01:00
Reimar Döffinger 8af6b9711e Fix uninitialized reads for fate-vsynth1-asv2 test.
This is not a real error and memsetting always even when the
size did not change is overkill, but it still should be
an acceptable trade-off.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-15 13:54:19 +01:00
Reimar Döffinger 7a1723086a Fix compilation without HAVE_AVX, HAVE_YASM etc.
At the very least this should fix warnings about unused static
functions if one or more of these is not defined.
However even compilation might be broken if the compiler does
not optimize the function away completely.
This actually happens in case of the AVX function, since the
function pointer is used in an assignment that is not under
an #if and thus probably only optimized away after the function
was already marked as used.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-14 23:09:39 +01:00
Reimar Döffinger 83b12c16af Use correct register size, fixes compilation with NASM.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-14 17:43:47 +01:00
Reimar Döffinger c4ba5198ea Fix leaking of side data.
While we correctly "register" the side data when we split it,
the application (in this case FFmpeg) might not update the
AVPacket pool it uses to finally free the packet, thus
causing a leak.
This also makes the av_dup_packet unnecessary which could
cause an even worse leak in this situation.
Also change the code to not modify the user-provide AVPacket at all.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-14 17:23:57 +01:00
Reimar Döffinger 4cef928ef7 j2kdec: Fix memleak, ensure cleanup is called also on error.
Fixes valgrind fate with fate-suite/r3d/4MB-sample.r3d.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-13 19:51:19 +01:00
Reimar Döffinger 7cbb32e461 Use an int MotionVector for find_block_motion.
Using the double variant causes several pointless conversions between
double and int.
Worse, one of the conversions is in an inner loop together with a
function using MMX, resulting in undefined behaviour.
Based on debugging by Ray Simard.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Tested-by: Ray Simard <rhs.ffmpeg@sylvan-glade.com>
2012-01-12 20:09:16 +01:00
Reimar Döffinger 742b660eb7 wtvdec: fix a few memleaks as show by valgrind with the FATE test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-12 20:09:16 +01:00
Reimar Döffinger 4231bbbf4c sgidec: make compiler optimize away memcpy call in inner loop.
Using an always_inline function makes the memcpy length a constant,
any reasonable compiler will replace it by a single mov instruction
without us having to duplicate the actual code.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-09 11:02:21 +01:00
Reimar Döffinger efd6b80b40 rawdec: use av_shrink_packet.
This fixes reads of uninitialized data by the parser when running
FATE sample h264-conformance/SL1_SVA_B.264.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-09 11:02:21 +01:00
Reimar Döffinger aeeb0e6deb indeo4, swresample: add some missing static/const to tables.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-08 19:11:58 +01:00
Reimar Döffinger fe21ea1798 Add wmv8-x8intra fate test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-08 17:26:24 +01:00
Reimar Döffinger ee4ba9aecd Fix incorrect increment in sgidec.c
Fixes trac issue #899.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-08 17:26:23 +01:00
Reimar Döffinger 4dfb74cd4f Flush decoders correctly in avformat_find_stream_info().
The decoders should not only be flushed on EOF or error, but also when
e.g. probe size was reached.
It is best to just always flush by default and only disable it
explicitly when we know that we have everything we need.
Fixes trac ticket #879.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-06 19:00:33 +01:00
Reimar Döffinger 4278023240 Check for overread in vqa video decoder.
This issue was discovered while decoding the FATE sample vqa/ws_snd.vqa.
For some unknown reason only audio decoding is tested by FATE for that file,
but not video.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-05 22:24:51 +01:00
Reimar Döffinger 1d0d63052b sipr: fall back to setting mode based on bit_rate.
Not all applications (e.g. MPlayer) set block_align, and
when using a different demuxer it might not even be
easily available.
So fall back to selecting mode based on bit rate as before
if block_align has not useful value.
It can't be worse than failing to decode completely.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-01-05 22:24:51 +01:00
Reimar DöffingerandAnton Khirnov c914038d38 rawdec: Set start_time to 0 for raw audio files.
None of the raw audio files have timestamps, thus setting
start_time to 0 should be reasonable.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-01 22:27:04 +01:00
Reimar Döffinger 42a1f1d7a8 Avoid uninitialized data in lcldec when ofs is 0 in MSZH.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2011-12-31 16:31:15 +01:00
Reimar Döffinger 874da652b3 Avoid av_memcpy_backptr hang without extra branch.
This only happens for a "back" value of 0 which is invalid anyway,
but lcldec does not properly validate input.
Also extend the documentation to specify valid values.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2011-12-30 10:37:33 +01:00
Reimar DöffingerandAnton Khirnov 733b23c2e4 fate: Add v210 codec regression tests
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-28 20:50:41 +01:00
Reimar Döffinger 36be045ed7 Support "VLB " audio in NSV files.
See samples/nsv/vlb_audio.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2011-12-13 23:07:40 +01:00
Reimar Döffinger 31a68ad554 Update seek reference for added metadata to lavf tests.
As far as I could see the only change is increased pos values,
which is as expected with additional metadata in the files.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2011-12-12 21:54:52 +01:00