Commit Graph

346 Commits

Author SHA1 Message Date
Kostya Shishkov
35bffd7f3d VC-1 parser
Originally committed as revision 7809 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-03 06:39:50 +00:00
Kostya Shishkov
8165ee9394 0x00000103 is not an escape marker
Originally committed as revision 7807 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-02 15:14:13 +00:00
Kostya Shishkov
77ccd3ba54 General approach to parsing chunks in VC-1 AP
Originally committed as revision 7803 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-02 06:45:21 +00:00
Kostya Shishkov
b956373b6f Check for out-of-bounds access
Originally committed as revision 7797 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-01 18:39:49 +00:00
Kostya Shishkov
b024824bed Fix BI-frames decoding for Adv. profile
Originally committed as revision 7758 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-29 14:23:00 +00:00
Kostya Shishkov
74fd63d009 Set aspect ratio if present (for AP only)
Originally committed as revision 7720 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-27 06:57:11 +00:00
Kostya Shishkov
8ea780d73d Add debug messages for AP headers
Originally committed as revision 7695 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-24 17:50:28 +00:00
Kostya Shishkov
14f3f3a1ad Off-by-one error fix
Originally committed as revision 7694 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-24 17:49:26 +00:00
Kostya Shishkov
5cca6bc3cd Fail on VC-1 interlaced streams
Originally committed as revision 7693 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-24 17:47:42 +00:00
Alex Beregszaszi
fead30d444 rename BE/LE_8/16/32 to AV_RL/B_8/16/32
Originally committed as revision 7587 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-19 22:12:59 +00:00
Reimar Döffinger
6f3e4e1712 Check mb_pos is big enough before trying to access data left or above.
Fixes out-of-bound access for http://samples.mplayerhq.hu/V-codecs/WMV9/nokia_n90.wmv

Originally committed as revision 7324 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-17 11:11:44 +00:00
Måns Rullgård
849f10351d rename always_inline to av_always_inline and move to common.h
Originally committed as revision 7256 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-08 00:35:08 +00:00
Kostya Shishkov
08baa3e0d7 10e6l FastUVMC was done right but in the wrong place
Originally committed as revision 7207 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-02 12:55:29 +00:00
Kostya Shishkov
98ba1cfaf7 100l FastUVMC rounding was incorrect.
This should also improve quality on WMV9Drifting.asf

Originally committed as revision 7190 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-01 07:24:56 +00:00
Kostya Shishkov
61f5b14a8e Correct rounding values in overlap filtering
Originally committed as revision 7171 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-26 04:57:31 +00:00
Kostya Shishkov
5081f3aad5 B-frames support for adv. profile
Originally committed as revision 7170 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-26 04:54:17 +00:00
Kostya Shishkov
b8ce8f15a0 100l: Initialize dc_scale with current quantizer for adv I frames
Originally committed as revision 7169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-26 04:53:36 +00:00
Kostya Shishkov
25e9c7efa5 Use halfpq in coefficient scaling
Originally committed as revision 7168 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-26 04:52:36 +00:00
Kostya Shishkov
b6fa8993fb Overlap filtering was done in reverse order
Originally committed as revision 7111 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-17 06:09:32 +00:00
Diego Biurrun
c26abfa541 Rename ABS macro to FFABS.
Originally committed as revision 6666 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-11 23:17:58 +00:00
Diego Biurrun
b78e7197a8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
and fix GPL/LGPL version mismatches.

Originally committed as revision 6577 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-07 15:30:46 +00:00
Diego Biurrun
36c32bdddf Remove unused variables and the corresponding warnings along with them.
Originally committed as revision 6536 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-03 17:12:48 +00:00
Måns Rullgård
b86216de4c dc_val should be signed
Originally committed as revision 6364 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-27 22:13:44 +00:00
Måns Rullgård
191e8ca752 fix some signedness warnings
Originally committed as revision 6355 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-27 19:47:39 +00:00
Kostya Shishkov
a1ef006823 Finally enable B-frame decoding as all known samples work perfect
Originally committed as revision 6309 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-21 04:46:11 +00:00
Kostya Shishkov
6b33eed83f For B-frames if the second reference frame signals intensity compensation
then the first reference frame should be intensity compensated.

Originally committed as revision 6308 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-21 04:44:35 +00:00
Kostya Shishkov
162f412dec Reorder MV order in B-frames so no swapping in vc1_b_mc() is needed
Originally committed as revision 6307 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-21 04:38:47 +00:00
Kostya Shishkov
e179fbc850 Swap back and forward motion vectors to achieve correct picture
Originally committed as revision 6237 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-12 04:35:11 +00:00
Kostya Shishkov
1884a48bee Set motion vectors used in B-frames to zero by default
Originally committed as revision 6236 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-12 04:29:37 +00:00
Kostya Shishkov
c8868640c1 Use h264_chroma funcs in B-frames MC too
Originally committed as revision 6235 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-12 04:19:07 +00:00
Kostya Shishkov
b116cc7f95 Fix edge emulation for bicubic MC in B frames
Originally committed as revision 6234 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-12 04:16:28 +00:00
Kostya Shishkov
f9942ba94b 2989l: Set avctx->has_b_frames value in header and don't change it
Originally committed as revision 6233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-12 04:13:00 +00:00
Kostya Shishkov
dc43482b26 Disable B-frames decoding until they produce correct picture
Originally committed as revision 6218 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-10 04:24:53 +00:00
Kostya Shishkov
34a8dcd031 Drop unneeded checks before av_free() and change to av_freep() where it's more suitable.
Originally committed as revision 6212 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-09 11:40:41 +00:00
Kostya Shishkov
767516533d Support for BI-frames in Advanced Profile
Originally committed as revision 6211 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-09 11:32:36 +00:00
Kostya Shishkov
d429c98208 Don't print header bits by default
Originally committed as revision 6210 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-09 11:29:17 +00:00
Kostya Shishkov
6cf6d0ec1a [Cosmetics] Remove if(profile < PROFILE_ADVANCED) from decode_sequence_header()
as it's always true and reindent code inside by the way.

Originally committed as revision 6209 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-09 11:28:02 +00:00
Kostya Shishkov
d1d28ddf99 [Cosmetics] Remove some done TODOs/FIXMEs from comments
Originally committed as revision 6208 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-09 11:23:44 +00:00
Kostya Shishkov
1dc1ce643e Proper support for B/BI frames
Originally committed as revision 6207 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-09 11:21:56 +00:00
Kostya Shishkov
3c275f6def VC-1 Advanced Profile support (progressive only, tested on WVC1 samples)
Originally committed as revision 6162 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-04 04:24:49 +00:00
Kostya Shishkov
b0c8e1b80a Replace usage of put_*_vc1_qpel_pixels_tab with put_*_h264_chroma_pixels_tab
Originally committed as revision 6151 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-02 04:53:49 +00:00
Kostya Shishkov
74691b7bcb New qpel MC functions conforming to VC-1 standard.
Existing DSPUtil functions cause chroma artifacts on some files.

Originally committed as revision 6139 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-31 04:44:54 +00:00
Kostya Shishkov
2d5eadccb5 Spelling
Originally committed as revision 6138 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-31 04:42:13 +00:00
Kostya Shishkov
66ff2c1f52 Motion compensation for luma always use halfpel precision.
Originally committed as revision 6137 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-31 04:39:27 +00:00
Kostya Shishkov
6b53e173cf Disable B-frames decoding until I return and finish their proper decoding.
Originally committed as revision 5980 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-11 04:41:30 +00:00
Kostya Shishkov
fb2d9140e4 Correct MC for B-frames and some improvements (not 100% complete though)
Originally committed as revision 5938 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-06 03:44:31 +00:00
Kostya Shishkov
78cbfc0c88 Bicubic interpolation requires two additional pixels for block
Originally committed as revision 5937 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-06 03:42:39 +00:00
Kostya Shishkov
99f649a265 100l: intensity compensation must be also done in 4-MV mode
Originally committed as revision 5928 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-04 03:31:01 +00:00
Kostya Shishkov
48d3fca717 Don't try to decode P-frames from old WMV3 variant until their format is figured
Originally committed as revision 5900 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-03 05:09:36 +00:00
Kostya Shishkov
8295eb302f Use bicubic MC (should also remove those ringing artifacts) when needed
Originally committed as revision 5864 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-30 03:50:31 +00:00
Kostya Shishkov
5ce425f7e6 Use functions from DSPContext in vc1.c
Originally committed as revision 5863 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-30 03:47:26 +00:00
Kostya Shishkov
09be55df9c Set MpegEncContext->mspel flag (here it indicates that bicubic MC will be use)
Originally committed as revision 5845 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-29 03:11:14 +00:00
Kostya Shishkov
ffb9a8b1b6 Support range reduced frames
Originally committed as revision 5844 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-29 03:07:30 +00:00
Kostya Shishkov
138712fe43 Support grayscale decoding.
Originally committed as revision 5843 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-29 03:05:29 +00:00
Kostya Shishkov
0154bae137 Add rounding for overlap filters
Originally committed as revision 5834 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-28 03:27:37 +00:00
Kostya Shishkov
5df6889364 Some B-frames support (parsing and decoding only, no motion compesation is done)
Originally committed as revision 5820 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-24 04:24:53 +00:00
Kostya Shishkov
c39e3c6fbb Some fixes for decode_p_mb()
Originally committed as revision 5819 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-24 04:20:49 +00:00
Diego Biurrun
9f82cdc7b5 Remove obsolete and misleading warning.
Originally committed as revision 5816 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-23 20:45:20 +00:00
Kostya Shishkov
83b3df83d3 Correct edge MC for chroma
Originally committed as revision 5813 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-23 04:57:36 +00:00
Kostya Shishkov
230e9d4ca7 Replace code for clipping MV vectors (which is wrong to use here) with clipping source coords.
Originally committed as revision 5811 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-22 03:57:53 +00:00
Kostya Shishkov
4b94465927 Don't do non-uniform quantization on zero coeffs.
Originally committed as revision 5810 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-22 03:54:00 +00:00
Kostya Shishkov
27ed1a0dee 1000l: scale DC predictors instead of predicted value.
Originally committed as revision 5808 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-21 04:06:06 +00:00
Kostya Shishkov
92ad0d9d3b Set DC = 0 for skipped MB as it interferes DC prediction
Originally committed as revision 5807 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-21 04:03:56 +00:00
Kostya Shishkov
b53921aabd Set correctly quantizer and transform mode when parsing frame header.
Originally committed as revision 5806 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-21 03:58:48 +00:00
Kostya Shishkov
7e84f27693 Don't pass block[6][64] parameter to decode_p_mb as we always use s->block
Originally committed as revision 5761 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 03:50:00 +00:00
Kostya Shishkov
0a45801f8e Correct inverse quantization for P-frames
Originally committed as revision 5760 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 03:47:34 +00:00
Kostya Shishkov
c5b32ec1cb Rounding control for motion compensation.
Originally committed as revision 5759 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 03:45:04 +00:00
Diego Biurrun
e148c6e193 FastUVMV vs FastUVMC typo, noticed by bond
Originally committed as revision 5693 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-09 15:12:45 +00:00
Kostya Shishkov
fdb5983285 Check if 4-MV MB should not be decoded.
Originally committed as revision 5688 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-09 03:00:57 +00:00
Kostya Shishkov
5c4b8efd4b MVRANGE may occur in all frames and RESPIC in all but B-frames
Originally committed as revision 5687 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-09 02:56:40 +00:00
Kostya Shishkov
3a3f1cf3f8 Fix mquant selection for ALL_MBS mode
Originally committed as revision 5686 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-09 02:51:13 +00:00
Kostya Shishkov
65c7bb9ec4 Use overlap filter instead of loop filter.
Originally committed as revision 5685 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-09 02:47:09 +00:00
Kostya Shishkov
d2779ecd8b Use s->first_slice_line in checks instead of s->mb_y
Originally committed as revision 5684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-09 02:44:05 +00:00
Kostya Shishkov
913e93d5f2 Improve chroma MC: correct case for FASTUVMC=1, use slower but correct /2, and always use halfpel MC.
Not quite there yet but a bit better picture on some files.

Originally committed as revision 5652 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-07 05:02:01 +00:00
Kostya Shishkov
50af2fd30d Enable coefficient scaling
Originally committed as revision 5651 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-07 04:51:50 +00:00
Kostya Shishkov
928dc49d0e Don't read out-of-bounds values.
Originally committed as revision 5650 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-07 04:50:13 +00:00
Kostya Shishkov
1ae4a8e61f Fix one case of choosing MV for chroma
Originally committed as revision 5635 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-06 03:42:51 +00:00
Kostya Shishkov
66d0ad2605 Implement intensity compensation
Originally committed as revision 5609 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-04 15:40:09 +00:00
Kostya Shishkov
8a66a390cc Correctly choose global transform mode, MV mode and fix bitplane decoding
Originally committed as revision 5608 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-04 15:39:21 +00:00
Kostya Shishkov
35a9cac888 Optimizations suggested by Michael Niedermayer
Originally committed as revision 5607 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-04 15:33:28 +00:00
Kostya Shishkov
05103ed33f Correctly detect when use hpel or qpel mode
Originally committed as revision 5601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-03 17:22:18 +00:00
Kostya Shishkov
ef6cc8ce46 4-MV mode final fixes (now it works for non-exotic modes)
Originally committed as revision 5600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-03 17:21:18 +00:00
Kostya Shishkov
4a5343fabc vc1_decode_intra_block() simplifications and corrections
Originally committed as revision 5599 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-03 17:17:25 +00:00
Kostya Shishkov
e4bf0302a3 4-MV decoding support
Originally committed as revision 5591 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-03 02:38:08 +00:00
Kostya Shishkov
8f8d0e4875 Adjust AC prediction if (some) predictors are not available.
Originally committed as revision 5564 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-01 07:22:29 +00:00
Kostya Shishkov
e9f2396e6f 0xFFFF l of cola. Now P-frames are decoded almost without distortions.
Originally committed as revision 5563 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-01 07:13:52 +00:00
Kostya Shishkov
a34c26cc3d Remove unused variable (and it wasn't free'd too)
Originally committed as revision 5562 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-01 03:19:28 +00:00
Kostya Shishkov
0f7344aad9 Use MpegEncContext->mbskip_table instead of custom bitplane.
Originally committed as revision 5561 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-01 03:17:54 +00:00
Kostya Shishkov
3f6d6af66e Slightly reworked MC code, it gives better picture.
Originally committed as revision 5554 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-30 03:19:31 +00:00
Kostya Shishkov
c436ff41d2 typo
Originally committed as revision 5553 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-30 03:17:31 +00:00
Kostya Shishkov
87dfe848fa Some optimization and fixes - mostly reworked MC and bitplanes.
Originally committed as revision 5543 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-29 11:05:33 +00:00
Kostya Shishkov
e8ba1cea3c This should make P-frames decoding work on x86 (by avoiding get_bits(0))
Originally committed as revision 5542 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-29 11:02:33 +00:00
Kostya Shishkov
f26c2ef53b Added loop filtering as ersatz for overlap filter (improves picture quality for coarse quantization).
Originally committed as revision 5535 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-27 15:37:48 +00:00
Kostya Shishkov
8985c915af VC1 Intra blocks in P-frames use different zigzag table than I-frames.
Originally committed as revision 5534 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-27 15:34:14 +00:00
Kostya Shishkov
be3492ec7e VC-1 decoder with I-frames support and partial P-frames decoding
Originally committed as revision 5530 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-27 03:11:51 +00:00
Kostya Shishkov
10b9c374cf Rename VC9 to VC1 as there is no such thing as VC9
Originally committed as revision 5529 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-06-27 02:55:54 +00:00