summaryrefslogtreecommitdiff
path: root/libavcodec/vc1dec.c
Commit message (Collapse)AuthorAge
* cosmetics: drop some completely pointless parenthesesDiego Biurrun2011-12-07
|
* vc1: use an enum for Frame Coding ModeLuca Barbato2011-11-28
| | | | Document it a little and possibly fix a bug in dxva2_vc1.
* vc1: select interlaced scan table by FCM elementKostya Shishkov2011-11-26
| | | | | | | Interlaced videos can contain progressive frames too and now wrong scantable is selected for them. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* VC1: Add bottom field offset to block_index[] to avoid rewriting (+10L)shahriman AMS2011-11-09
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* vc1dec: move an if() block.shahriman AMS2011-11-09
| | | | | | | There are no reason for "if (c_valid) { ... }" to appear before "if (b_valid) { ... }". Signed-off-by: Anton Khirnov <anton@khirnov.net>
* vc1dec: use correct hybrid prediction threshold.shahriman AMS2011-11-09
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* vc1dec: Partial rewrite of vc1_pred_mv()shahriman AMS2011-11-09
| | | | | | | | | | | The current code is a generalization of the earlier progressive MV prediction code. This was supposed to predict MVs for both interlaced and progressive pictures. But the interlaced MV prediction is buggy and works mostly by luck. This partially fixes interlaced MV prediction. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* vc1dec: take ME precision into account while scaling MV predictors.shahriman AMS2011-11-09
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* VC1: restore mistakenly removed codeMashiat Sarker Shakkhar2011-10-22
| | | | | | | | | The code was mistakenly removed in cad16562c8d76ea2a2a6495f29296c3ff7966946. It stored some motion vector data for future use in B-pictures. This fixes Bugzilla bug #57. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Use correct scaling table for bwd-pred MVs in second B-fieldMashiat Sarker Shakkhar2011-10-19
| | | | | | | | | | | When scaling backward predicted MVs in second B-field, the scaling table is opposite of that for P field pictures; i.e. first field P table will be used as second field B table and second field P table will be used as first field B table. This is not documented in the spec, but exists in the ref. decoder. This fixes SA10139. Signed-off-by: Martin Storsjö <martin@martin.st>
* vc1: more prettyprinting cosmeticsKostya Shishkov2011-10-12
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* vc1dec: interlaced stream decoding support 3/3Mashiat Sarker Shakkhar2011-10-10
| | | | | | Cosmetics: break some lines and reformat TODOs Signed-off-by: Anton Khirnov <anton@khirnov.net>
* VC1: Support dynamic dimension changesAlberto Delmás2011-08-31
| | | | | | | | Fixes SA00072, SA00073, SA10150, SA10151, Issue2076 Improves SA10153 Signed-off-by: Anton Khirnov <anton@khirnov.net>
* vc1: fix VC-1 Pulldown handling.John Stebbins2011-08-25
| | | | | | | | | | | | Pulldown flags are being set incorrectly and AVFrame->repeat_pict is not being set. Also, skipped frames exit header parsing too early and do not set pulldown flags appropriately. Ticks_per_frame needs to be set and time_base adjusted so player can extend frame duration by a field time. This fixes problems encountered when attempting to transcode HD-DVD EVOB files with HandBrake. Also makes these files play smoothly in avplay. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* VC1: Fix first/last row checks with slicesAlberto Delmás2011-08-25
| | | | | | | | | | | In some places 0/mb_height were used in place of start_mb_y/end_mb_y. Fixes SA00049, SA00058, SA10091, SA10097, SA10131, SA20021, SA30030 Improves PSNR in SA00054, SA00059, SA00060, SA10096, SA10098, SA20022, SA30031, SA30032, SA40012, SA40013 Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* vc1: properly zero coded_block[] edges on new slice entry.Ronald S. Bultje2011-08-24
| | | | | Previously, we would leave the left edge uninitialized, which led to CBP prediction errors on slice edges, e.g. in SA10098.vc1.
* Windows Media Image decoder (WMVP/WVP2)Alberto Delmás2011-08-23
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: use designated initialisers for all codecs.Anton Khirnov2011-07-29
| | | | It's more readable and less prone to breakage.
* Eliminate FF_COMMON_FRAME macro.Diego Biurrun2011-07-11
| | | | | FF_COMMON_FRAME holds the contents of the AVFrame structure and is also copied to struct Picture. Replace by an embedded AVFrame structure in struct Picture.
* Remove unused static tables and static inline functions.Diego Biurrun2011-07-04
|
* doxygen: Prefer member groups over grouping into modulesReinhard Tartler2011-07-02
| | | | | | | | | Before this, almost all module groups have been used for grouping functions and fields in structures semantically. This causes them to not appear properly in the file documentation and needlessly clutters up the "Modules" index. Additionally, this commit streamlines some spelling and appearances.
* vc1: re-initialize tables after width/height change.John Stebbins2011-06-07
| | | | | | | read_sequence_header can change width/height; therefore, re-initialize all tables if width/height changed Signed-off-by: Anton Khirnov <anton@khirnov.net>
* vc1: make overlap filter for I-frames bit-exact.Ronald S. Bultje2011-05-04
|
* vc1dec: use s->start/end_mb_y instead of passing them as function args.Ronald S. Bultje2011-05-04
|
* Revert "VC1: merge idct8x8, coeff adjustments and put_pixels."Ronald S. Bultje2011-05-04
| | | | | | | This reverts commit f8bed30d8b176fa030f6737765338bb4a2bcabc9. 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.
* Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.Stefano Sabatini2011-05-02
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* lavc: remove FF_API_HURRY_UP cruftAnton Khirnov2011-04-26
|
* vc1: fix fate-vc1 after previous commit.Ronald S. Bultje2011-04-17
| | | | | | | | 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>
* wmv3dec: fix playback of complex WMV3 files using simple_idct.Ronald S. Bultje2011-04-16
| | | | | | | | 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
* Parse sprite data for WMVP and WVP2, and decode sprites for the latterAlberto Delmás2011-04-10
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: mark hurry_up for removal on next major bumpAnton Khirnov2011-04-02
| | | | | It has been deprecated for about five years, skip_idct/skip_frame should be used instead.
* vc1: make P-frame deblock filter bit-exact.Ronald S. Bultje2011-03-21
|
* vc1: slice support.Ronald S. Bultje2011-03-21
| | | | Also reset coded_block at each new slice, fixes problems in slice playback.
* vc1: fix up memleaks in the error codepath.Ronald S. Bultje2011-03-21
| | | | | Introduce end: and err: labels at the end of vc1_decode_frame(), which will clean up allocated memory consistently.
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* VC1: Export profile/levelHendrik Leppkes2011-03-12
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* vc1: fix decoding when end sequence is presentBaptiste Coudurier2011-03-02
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* VC1: merge idct8x8, coeff adjustments and put_pixels.Ronald S. Bultje2011-02-21
| | | | | Merging these functions allows merging some loops, which makes the results (particularly after SIMD optimizations) much faster.
* VC1: inline vc1_put_block() in vc1_decode_i_blocks().Ronald S. Bultje2011-02-21
| | | | | | 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.
* VC1: don't use vc1_put_block() in vc1_decode_i_blocks_adv().Ronald S. Bultje2011-02-20
| | | | | | | | 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().
* Fix invalid reads in VC1 decoderReimar Döffinger2011-02-19
| | | | Patch discussed and taken from https://roundup.ffmpeg.org/issue2584
* dsputil: move VC1-specific stuff into VC1DSPContext.Ronald S. Bultje2011-02-17
|
* VC1: simplify a calculation in a loop.Ronald S. Bultje2011-02-17
|
* VC1: transpose IDCT 8x8 coeffs while reading.Ronald S. Bultje2011-02-17
|
* Move ff_emulated_edge_mc() into DSPContext.Ronald S. Bultje2011-01-28
|
* Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.Diego Elio Pettenò2011-01-26
| | | | | | | None of these symbols should be accessed directly, so declare them as hidden. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Make WMV3 decoder attempt to decode WMVP as wellKostya Shishkov2010-09-26
| | | | Originally committed as revision 25209 to svn://svn.ffmpeg.org/ffmpeg/trunk
* vc1: Fix ordering of loop filter for I/B framesDavid Conrad2010-07-11
| | | | | | All horizontal edges must be filtered before all vertical edges Originally committed as revision 24206 to svn://svn.ffmpeg.org/ffmpeg/trunk
* vc1: ff_draw_horiz_band needs a one row delay when the loop filter is activeDavid Conrad2010-07-11
| | | | Originally committed as revision 24205 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Make WMV3 decoder print more errors when decoding beta WMV9 files.Kostya Shishkov2010-07-10
| | | | | | 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