Michael Niedermayer
b51e935477
avcodec/vc1: reset fcm/field_mode in non advanced header parsing
...
Fixes NULL pointer dereference
Fixes: signal_sigsegv_1ab8bf4_2847_cov_4254117347_SA10091.vc1
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-02-01 19:07:01 +01:00
Michael Niedermayer
dcf5bfbdb6
avcodec/vc1: Check bfraction_lut_index
...
Fixes: out of array read
Fixes: asan_static-oob_1b40507_2849_SA10143.vc1
Fixes: asan_static-oob_1b40a15_2849_cov_1182297305_SA10143.vc1
Fixes: asan_static-oob_1b40f15_2849_cov_2159513432_SA10143.vc1
Fixes: asan_static-oob_1b40f15_2849_cov_3230311510_SA10143.vc1
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-02-01 17:10:48 +01:00
Michael Niedermayer
388b4cf86e
avcodec/vc1: factor read_bfraction() out
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-02-01 17:06:24 +01:00
Michael Niedermayer
40c218c60d
avcodec/vc1: fix type of tmp
...
Fixes CID1163850
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-24 03:40:37 +01:00
Michael Niedermayer
a459891e62
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
vc1: Always reset numref when parsing a new frame header.
Conflicts:
libavcodec/vc1.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-21 04:29:59 +01:00
Michael Niedermayer
dd2d0039b6
vc1: Always reset numref when parsing a new frame header.
...
Fixes an issue where the B-frame coding mode switches from interlaced
fields to interlaced frames, causing incorrect decisions in the motion
compensation code and resulting in visual artifacts.
CC: libav-stable@libav.org
Signed-off-by: Tim Walker <tdskywalker@gmail.com >
2014-01-20 23:22:30 +01:00
Tim Walker
49b9badcaa
vc1: Enable the interlaced B-frame codepath.
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2014-01-13 10:23:01 +01:00
Hendrik Leppkes
719f1ce5fb
vc1: set chromaformat = 1 for simple/main profile
...
1 is the only valid value for VC-1/WMV3, and setting it here makes sure
no invalid value is send to a hw accelerator, for example.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-01 02:57:44 +01:00
Mason Carter
61ae993957
vc1: Fix intensity compensation performance regression
...
Introduced by 28243b0d35
Intensity compensation is always used once it was encountered, because
v->next_use_ic is never set back to zero.
Reset v->next_use_ic, when resetting v->next_luty/uv.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2013-12-22 18:31:44 +01:00
Michael Niedermayer
64b98df389
vc1: simplify *_use_ic initialization
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-12-22 14:59:31 +01:00
Mason Carter
ed5bed4152
VC1: Fix intensity compensation performance regression
...
Fix https://trac.ffmpeg.org/ticket/3204
The problem was that intensity compensation was always used once it was
encountered. This is because v->next_use_ic was never set back to zero.
To fix this, when resetting v->next_luty/uv, also reset v->next_use_ic.
This improved (restored) performance by 85% when decoding
http://bit.ly/bbbwmv
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-12-22 14:05:06 +01:00
Michael Niedermayer
d8fd183683
vc1: Fix mb_height for field pictures
...
Tables are always allocated now with sufficient space for either progressive
or interlaced content. The alternative would be to detect a change
and reallocate.
This fixes decoding of a sample.
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-12-17 22:01:45 +02:00
Michael Niedermayer
2224159c78
avcodec/vc1: fix DIFF2/NORM2 with width<=16
...
Fixes read of uninitialized memory
Fixes msan_uninit-mem_7f785da000e8_585_480i30__codec_WVC1__mode_2__framerate_29.970__type_2__preproc_17.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-12-14 18:02:01 +01:00
Michael Niedermayer
017e234c20
avcodec/vc1: fix mb_height for field pictures
...
Fixes ticket2531
Tables are always allocated now with sufficient space for either progressive
or interlaced content. The alternative would be to detect a change
and reallocate.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-12-14 16:50:21 +01:00
Michael Niedermayer
2cfccd8060
avcodec/vc1: Factorize imode enum out / remove duplication
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-12-14 05:16:25 +01:00
Michael Niedermayer
2d614e9be1
Merge commit 'c2f7417eeb9cc31f75e71f7be2780f90f1628d7e'
...
* commit 'c2f7417eeb9cc31f75e71f7be2780f90f1628d7e':
vc1: move MpegEncContext.resync_marker into VC1Context.
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-11-30 00:49:34 +01:00
Anton Khirnov
c2f7417eeb
vc1: move MpegEncContext.resync_marker into VC1Context.
...
The field still remains in MpegEncContext because it is used by the
mpeg4 decoder.
2013-11-29 14:19:47 +01:00
Michael Niedermayer
0290a646ac
Merge commit 'de44dfc7c0ec02bda7d846ef713145c890bfae3f'
...
* commit 'de44dfc7c0ec02bda7d846ef713145c890bfae3f':
vc1: Reset numref if fieldmode is not set
This change is redundant, numref is already reset
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-11-26 12:23:39 +01:00
Kostya Shishkov
de44dfc7c0
vc1: Reset numref if fieldmode is not set
...
There are samples in the wild with B-frames and P-frames with different
interlace mode.
CC: libav-stable@libav.org
Reported-by: Jean-Baptiste Kempf <jb@videolan.org >
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2013-11-26 00:34:12 +01:00
Michael Niedermayer
28923f1923
Merge commit '28243b0d35b47bbf9abbd454fc444a6e0a9e7b71'
...
* commit '28243b0d35b47bbf9abbd454fc444a6e0a9e7b71':
vc1dec: Redesign the intensity compensation
Conflicts:
libavcodec/vc1.c
libavcodec/vc1dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-29 03:00:04 +02:00
Michael Niedermayer
728214992e
vc1dec: Remove interlaced warning
...
Also add a note about the feature in the changelog.
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-28 13:56:29 +03:00
Michael Niedermayer
28243b0d35
vc1dec: Redesign the intensity compensation
...
Use the intensity-compensated reference frame for subsequent
fields/B-frames.
Since we currently don't change the reference frame we have to
maintain lookup tables for intensity compensation in the following
dependent frames.
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-28 13:55:55 +03:00
Michael Niedermayer
4390fa6273
Merge commit 'd46c588f3cb1963a00e990ceaf4ba9ffa05a716d'
...
* commit 'd46c588f3cb1963a00e990ceaf4ba9ffa05a716d':
Remove commented-out #includes
h263dec: Remove broken and disabled debug cruft
vc1: Reindent INIT_LUT(), align backslashes
Conflicts:
libavcodec/vc1.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-16 09:11:04 +02:00
Michael Niedermayer
e3c24f663e
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
configure: Use linker hardening flags on mingw
vc1: Make INIT_LUT() self contained
vc1: Simplify code by using INIT_LUT()
vc1: Move INIT_LUT() further up to allow using it in more places
vc1dec: Remove some now unused variables
vc1dec: Do not allow field_mode to change after the first header
vc1, mss2: Check for any negative return value from ff_vc1_parse_frame_header
vc1dec: Fix current ptr selection in vc1_mc_4mv_chroma()
vc1dec: Factorize picture pointer selection in vc1_mc_4mv_chroma()
vc1dec: Factorize picture pointer selection code
vc1dec: Factorize srcU/V offseting
vc1dec: Fix tff == 0 handling in init_block_index()
vc1dec: Update destination pointers in context for fields
Conflicts:
libavcodec/vc1.c
libavcodec/vc1dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-15 20:09:20 +02:00
Martin Storsjö
b0696e947f
vc1: Reindent INIT_LUT(), align backslashes
...
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-15 20:59:24 +03:00
Michael Niedermayer
6ce2c3106d
vc1: Make INIT_LUT() self contained
...
Move the local variables it uses into the macro, enclosing them
in a do {} while (0) scope.
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-15 12:42:53 +03:00
Michael Niedermayer
37f2ac36a9
vc1: Simplify code by using INIT_LUT()
...
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-15 12:13:53 +03:00
Michael Niedermayer
0379fc1487
vc1: Move INIT_LUT() further up to allow using it in more places
...
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-15 12:13:53 +03:00
Michael Niedermayer
4162fc62b3
vc1dec: Do not allow field_mode to change after the first header
...
This fixes out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-15 12:13:53 +03:00
Michael Niedermayer
cb22692f05
Merge commit 'fe06795d783785a76c6cbcaa2cd3012e6deb5fa5'
...
* commit 'fe06795d783785a76c6cbcaa2cd3012e6deb5fa5':
vc1: implement frame interlaced b-frame header parsing
Conflicts:
libavcodec/vc1.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-15 09:57:28 +02:00
Hendrik Leppkes
fe06795d78
vc1: implement frame interlaced b-frame header parsing
...
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-05-14 13:24:55 +03:00
Michael Niedermayer
0aa095483d
Merge commit '6fee1b90ce3bf4fbdfde7016e0890057c9000487'
...
* commit '6fee1b90ce3bf4fbdfde7016e0890057c9000487':
avcodec: Add av_cold attributes to init functions missing them
Conflicts:
libavcodec/aacpsy.c
libavcodec/atrac3.c
libavcodec/dvdsubdec.c
libavcodec/ffv1.c
libavcodec/ffv1enc.c
libavcodec/h261enc.c
libavcodec/h264_parser.c
libavcodec/h264dsp.c
libavcodec/h264pred.c
libavcodec/libschroedingerenc.c
libavcodec/libxvid_rc.c
libavcodec/mpeg12.c
libavcodec/mpeg12enc.c
libavcodec/proresdsp.c
libavcodec/rangecoder.c
libavcodec/videodsp.c
libavcodec/x86/proresdsp_init.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-05 11:34:29 +02:00
Diego Biurrun
6fee1b90ce
avcodec: Add av_cold attributes to init functions missing them
2013-05-04 21:09:45 +02:00
Michael Niedermayer
d78329700d
vc1dec: make sure next_use_ic is set correctly
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-26 15:50:32 +02:00
Michael Niedermayer
ee4c01bef6
vc1dec: factor lut clean code
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-26 15:39:32 +02:00
Michael Niedermayer
05f4c05061
vc1dec: remove interlaced warning
...
While not yet bugfree, the warning is IMHO no longer appropriate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-26 03:44:05 +02:00
Michael Niedermayer
782ebd6118
vc1dec: redesign the intensity compensation
...
The existing implementation had little to do with VC1.
This could be implemented by adjusting the reference frames
ithemselfs but that would make frame multi-threading difficult.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-24 21:07:26 +02:00
Michael Niedermayer
c560437e95
vc1: make INIT_LUT() self contained
...
factorize variable declarations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-24 15:33:11 +02:00
Michael Niedermayer
62d9445396
vc1: simplify code use INIT_LUT()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-24 12:52:52 +02:00
Michael Niedermayer
a0fbc28c38
vc1dec: Fix non pullup tff
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-20 02:22:32 +02:00
Michael Niedermayer
fa92ee821b
Merge commit '63d744e2be39466e3a734c2987cd713e0bac101e'
...
* commit '63d744e2be39466e3a734c2987cd713e0bac101e':
av_log_missing_feature() ---> avpriv_report_missing_feature()
Conflicts:
libavcodec/aacdec.c
libavcodec/tta.c
libavformat/mpegts.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-03-14 12:30:19 +01:00
Diego Biurrun
63d744e2be
av_log_missing_feature() ---> avpriv_report_missing_feature()
2013-03-13 20:42:21 +01:00
Michael Niedermayer
a984efd104
Merge commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f'
...
* commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f':
Remove unnecessary dsputil.h #includes
Conflicts:
libavcodec/ffv1.c
libavcodec/h261dec.c
libavcodec/h261enc.c
libavcodec/h264pred.c
libavcodec/lpc.h
libavcodec/mjpegdec.c
libavcodec/rectangle.h
libavcodec/x86/idct_sse2_xvid.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-02-26 13:05:10 +01:00
Diego Biurrun
c242bbd8b6
Remove unnecessary dsputil.h #includes
2013-02-26 00:51:34 +01:00
Michael Niedermayer
7845f8d282
vc1dec: do not allow field_mode to change after the first header
...
Fixes out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-11-16 04:58:46 +01:00
Hendrik Leppkes
33f2a49423
vc1: only disable interlaced b-frames for software decoding
...
Tested-by: Gwenole Beauchesne <gb.devel@gmail.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-10-20 00:07:43 +02:00
Michael Niedermayer
2a56e65c3b
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
vc1: Use codec ID from AVCodecContext while parsing frame header
avplay: support mid-stream sample rate changes
Conflicts:
ffplay.c
libavcodec/vc1.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2012-10-13 17:09:13 +02:00
Mashiat Sarker Shakkhar
5d2be71b9e
vc1: Use codec ID from AVCodecContext while parsing frame header
...
This fixes a segfault with samples that I have (both of them MPEG-TS). Looks like
avctx->codec is not being set during parsing.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com >
2012-10-13 08:33:07 +02:00
Michael Niedermayer
526cb36e4b
Merge commit '4436f25a1682ada3f7226cb6fadf429946933161'
...
* commit '4436f25a1682ada3f7226cb6fadf429946933161':
build: remove references to unused EXTRAOBJS variable
lavfi: convert input/ouput list compound literals to named objects
fate: add h263 obmc vsynth tests
avconv: remove bogus warning when using avconv -h without parameter
averror: explicitly define AVERROR_* values
flashsv: propagate inflateReset() errors
indeo4/5: remove constant parameter num_bands from wavelet recomposition
mxfdec: return error if no segments are available in mxf_get_sorted_table_segments
Double motion vector range for HPEL interlaced picture in proper place
Conflicts:
libavcodec/v210dec.h
libavfilter/af_aformat.c
libavfilter/af_amix.c
libavfilter/af_asyncts.c
libavfilter/af_channelmap.c
libavfilter/af_join.c
libavfilter/asrc_anullsrc.c
libavfilter/buffersrc.c
libavfilter/f_setpts.c
libavfilter/f_settb.c
libavfilter/fifo.c
libavfilter/src_movie.c
libavfilter/vf_ass.c
libavfilter/vf_blackframe.c
libavfilter/vf_boxblur.c
libavfilter/vf_delogo.c
libavfilter/vf_drawbox.c
libavfilter/vf_drawtext.c
libavfilter/vf_fade.c
libavfilter/vf_fieldorder.c
libavfilter/vf_fps.c
libavfilter/vf_hflip.c
libavfilter/vf_overlay.c
libavfilter/vf_pad.c
libavfilter/vf_select.c
libavfilter/vf_transpose.c
libavfilter/vf_yadif.c
libavfilter/vsrc_testsrc.c
libavformat/mxfdec.c
libavutil/error.h
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2012-10-11 15:46:48 +02:00
Mashiat Sarker Shakkhar
35a35d49d2
Double motion vector range for HPEL interlaced picture in proper place
...
The existing code is not in the right place and it should cover both
interlaced frame and field pictures.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2012-10-10 14:56:02 -04:00