Commit Graph

47 Commits

Author SHA1 Message Date
John Stebbins 7b20d35a54 vc1: re-initialize tables after width/height change.
read_sequence_header can change width/height; therefore, re-initialize
all tables if width/height changed

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-07 19:55:02 +02:00
Ronald S. Bultje 7d2e03afc8 vc1: make overlap filter for I-frames bit-exact. 2011-05-04 07:40:53 -04:00
Ronald S. Bultje 5c9f147e05 vc1dec: use s->start/end_mb_y instead of passing them as function args. 2011-05-04 07:40:02 -04:00
Ronald S. Bultje 18b6a69ce9 Revert "VC1: merge idct8x8, coeff adjustments and put_pixels."
This reverts commit f8bed30d8b. The reason
for this is that the overlap filter, which runs after IDCT, should run
on unclamped values, and thus IDCT and put_pixels() cannot be merged if
we want to attempt to be bitexact.
2011-05-04 07:40:01 -04:00
Stefano Sabatini 975a1447f7 Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-02 12:18:44 +02:00
Anton Khirnov e7021c0ed5 lavc: remove FF_API_HURRY_UP cruft 2011-04-26 08:16:05 +02:00
Ronald S. Bultje 0b05864eef vc1: fix fate-vc1 after previous commit.
PROFILE_ADVANCED doesn't set res_fasttx, so make that a special case
in the condition that decides which IDCT to use (and whether to read
coefficients transposed or not).

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2011-04-17 08:45:10 +02:00
Ronald S. Bultje 58bb6b7d93 wmv3dec: fix playback of complex WMV3 files using simple_idct.
IDCT coefficients are read transposed, but simple_idct does not expect
this. Therefore, only do tranposed coefficient reading if we're not
using simple_idct.

Fixes http://forum.videolan.org/viewtopic.php?f=14&t=89651
2011-04-16 15:19:53 -04:00
Alberto Delmás 768c525114 Parse sprite data for WMVP and WVP2, and decode sprites for the latter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-04-10 10:07:49 +02:00
Anton Khirnov 8ed2ae09a2 lavc: mark hurry_up for removal on next major bump
It has been deprecated for about five years, skip_idct/skip_frame should
be used instead.
2011-04-02 16:17:24 +02:00
Ronald S. Bultje c47d383502 vc1: make P-frame deblock filter bit-exact. 2011-03-21 21:28:17 -04:00
Ronald S. Bultje f44d6445b7 vc1: slice support.
Also reset coded_block at each new slice, fixes problems in slice playback.
2011-03-21 10:00:43 -04:00
Ronald S. Bultje b81a935bd9 vc1: fix up memleaks in the error codepath.
Introduce end: and err: labels at the end of vc1_decode_frame(), which
will clean up allocated memory consistently.
2011-03-21 09:51:16 -04:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Hendrik Leppkes 0215006ab7 VC1: Export profile/level
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-12 14:08:27 +00:00
Baptiste Coudurier fb98507126 vc1: fix decoding when end sequence is present
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-02 13:32:58 +00:00
Ronald S. Bultje f8bed30d8b VC1: merge idct8x8, coeff adjustments and put_pixels.
Merging these functions allows merging some loops, which makes the
results (particularly after SIMD optimizations) much faster.
2011-02-21 10:23:44 -05:00
Ronald S. Bultje bbfd2e7ab4 VC1: inline vc1_put_block() in vc1_decode_i_blocks().
Advantage is that it allows us to combine several loops into a single
one, and these can eventually be merged into the IDCT itself. Also, it
allows us to remove vc1_put_block(), and makes CODEC_FLAG_GRAY faster.
2011-02-21 10:23:44 -05:00
Ronald S. Bultje 70aa916e46 VC1: don't use vc1_put_block() in vc1_decode_i_blocks_adv().
Advanced profile never uses "range reduction", so vc1_put_block() quite
literally just calls put_pixels_clamped() from vc1_decode_i_blocks_adv().
By inlining the function, we can prevent calling IDCT8x8 if
CODEC_FLAG_GRAY is set, and we don't have to scale the coeffs in the
[0,256] range, but can instead use put_signed_pixels_clamped().
2011-02-20 08:31:14 -05:00
Reimar Döffinger 2bbec1eda4 Fix invalid reads in VC1 decoder
Patch discussed and taken from https://roundup.ffmpeg.org/issue2584
2011-02-19 11:33:01 +01:00
Ronald S. Bultje 12802ec060 dsputil: move VC1-specific stuff into VC1DSPContext. 2011-02-17 17:35:35 -05:00
Ronald S. Bultje 0b16cdc3fa VC1: simplify a calculation in a loop. 2011-02-17 17:35:35 -05:00
Ronald S. Bultje 1da6ea3954 VC1: transpose IDCT 8x8 coeffs while reading. 2011-02-17 17:35:35 -05:00
Ronald S. Bultje 2e27959879 Move ff_emulated_edge_mc() into DSPContext. 2011-01-28 22:13:26 -05:00
Diego Elio Pettenò d36beb3f69 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +00:00
Kostya Shishkov cba322d76d Make WMV3 decoder attempt to decode WMVP as well
Originally committed as revision 25209 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-26 13:56:50 +00:00
David Conrad fca58a815a vc1: Fix ordering of loop filter for I/B frames
All horizontal edges must be filtered before all vertical edges

Originally committed as revision 24206 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-11 22:52:51 +00:00
David Conrad 3683b7e570 vc1: ff_draw_horiz_band needs a one row delay when the loop filter is active
Originally committed as revision 24205 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-11 22:52:47 +00:00
Kostya Shishkov 42ff9d7a58 Make WMV3 decoder print more errors when decoding beta WMV9 files.
As a side effect it will also decode a lot of P-frames from those.

Originally committed as revision 24161 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-10 14:36:53 +00:00
Reimar Döffinger 0724a674fc Change type of zz_table to uint8_t to match the scantables it points to.
Originally committed as revision 23831 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-27 19:27:08 +00:00
Kostya Shishkov 1c100b1367 321l: do not use shifted s->linesize instead of correct s->uvlinesize.
This should fix chroma issues in WMV3/VC-1 decoder with avfilter enabled.

Originally committed as revision 23370 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-29 07:28:24 +00:00
Diego Biurrun ba87f0801d Remove explicit filename from Doxygen @file commands.
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Stefano Sabatini 72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Kostya Shishkov d2df291f73 ff_msmpeg4_decode_init() calls ff_h263_decode_init() which calls
MPV_common_init(), so calling both is redundant and leads to memory
leaks in WMV3/VC-1 decoder. Thus use only the first function in
WMV3/VC-1 decoder initialization.

Originally committed as revision 22024 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 13:11:38 +00:00
Måns Rullgård d68b27a95d VC1: fix missing include h263.h
Originally committed as revision 21932 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 02:46:44 +00:00
Michael Niedermayer 261a3c2d05 Move AVCodecs from h263dec.c to msmpeg4.c and disentangle init decode init.
Originally committed as revision 21102 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-08 19:40:10 +00:00
Kostya Shishkov 53b04467ae Warn when WVC1 cannot be decoded
Originally committed as revision 20201 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-11 05:36:59 +00:00
Andrew Dennison 95ce961d88 Since some junk may be or may be not present before actual VC-1 extradata,
search for real extradata start instead of always skipping one byte.

Patch by Andrew Dennison gmailify(${name}d, lists)
Thread: [PATCH] Fix VC1 "Incomplete extradata" for mkv files generated by eac3to

Originally committed as revision 20178 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-06 15:30:08 +00:00
Reimar Döffinger c05df6895f Use ff_msmpeg4_decode_init to initialize ff_msmp4_mb_i_vlc since static
VLC tables should only be initialized from one place.
This initializes/calculates more VLC tables than necessary for VC1 decoding,
but this is only done once and only a small overhead in time and space (maybe
30 kB) it seems not worth adding a separate function.

Originally committed as revision 20010 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-24 10:49:47 +00:00
Reimar Döffinger 2ba8301769 Mark all pix_fmts and supported_framerates compound literals as const.
Makes no difference for gcc but at least icc can put them in .rodata then.

Originally committed as revision 19789 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-06 16:09:21 +00:00
Diego Biurrun 700363afe7 Only enable WMV3 decoder when it has been turned on in the build system.
Originally committed as revision 19534 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-29 11:31:52 +00:00
Diego Biurrun e0f58e39c4 Do not check for both CONFIG_VC1_VDPAU_DECODER and CONFIG_WMV3_VDPAU_DECODER,
the former depends upon the latter.

Originally committed as revision 19532 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-29 09:54:00 +00:00
Kostya Shishkov 74a30595b2 Edge emulation should be used in B-frame MC in mspel mode with
mv_x < 1 or mv_y < 1.

Originally committed as revision 19255 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-23 07:41:38 +00:00
Jason Garrett-Glaser 351653a51e VC-1/WMV: Remove redundant ff_init_block_index() calls.
These are only supposed to be called once per row, not once per macroblock.
~1.5% faster according to oprofile.

Originally committed as revision 19213 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-17 05:54:42 +00:00
Jason Garrett-Glaser 010f98f96a VC-1/WMV3 decoding: don't clear blocks unless they're actually used.
~8% faster VC-1 decoding.
Possible future optimization: clear blocks after use instead of before, and for
DC-only blocks, only clear the DC coefficient.

Originally committed as revision 19205 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 09:09:03 +00:00
Jason Garrett-Glaser 4f717c69ed idct_dc for VC-1/WMV3 decoder; ~11% faster decoding overall.
Includes mmx2 asm for the various functions.
Note that the actual idct still does not have an x86 SIMD implemtation.
For wmv3 files using regular idct, the decoder just falls back to simple_idct,
since simple_idct_dc doesn't exist (yet).

Originally committed as revision 19204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 09:00:55 +00:00
Diego Biurrun b761659bef Split decoder-specific code off from vc1.c into vc1dec.c and keep code
shared between decoder and parser in vc1.c.

Originally committed as revision 19152 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-11 09:31:31 +00:00