Commit Graph

1183 Commits

Author SHA1 Message Date
Carl Eugen Hoyos
076ab9f7e3 Fix all VDPAU decoders.
Fixes ticket #3726.
2014-06-18 13:55:26 +02:00
Michael Niedermayer
dffb85a982 avcodec/mpegvideo: check that linesize is not too small
Note linesize is rounded up to at least a multiple of 8

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 18:40:21 +02:00
Michael Niedermayer
c5fc8ae126 avcodec/mpegvideo: fix edge emulation with uvlinesize below 25
Fixes fate-vsynth3-wmv2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 01:56:01 +02:00
Michael Niedermayer
67911cc57b Merge commit '0ddc53dabbc6f636d062b187ea27934610aaad30'
* commit '0ddc53dabbc6f636d062b187ea27934610aaad30':
  mpegvideo: synchronize AVFrame pointers in ERContext fully

Conflicts:
	libavcodec/mpegvideo.c

See: 8ef9dcf1d7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 22:30:49 +02:00
Janne Grunau
0ddc53dabb mpegvideo: synchronize AVFrame pointers in ERContext fully
Since error resilience uses AVFrame pointers instead of references it
has to copy NULL pointers too. After a codec flush the last/next frame
pointers in MpegEncContext are NULL and the old pointers remaining in
ERContext are invalid. Fixes a crash in vlc for android thumbnailer.
Reported and debugged by Adrien Maglo <magsoft@videolan.org>.
2014-06-11 21:28:27 +02:00
Michael Niedermayer
98a6806fdd Merge commit '368f50359eb328b0b9d67451f56fda20b3255f9a'
* commit '368f50359eb328b0b9d67451f56fda20b3255f9a':
  dsputil: Split off quarterpel bits into their own context

Conflicts:
	configure
	libavcodec/dsputil.c
	libavcodec/h263dec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/vc1dec.c
	libavcodec/vc1dsp.c
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/qpeldsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 02:43:34 +02:00
Michael Niedermayer
a9a312d299 Merge commit '3832a6590156e6abc575bed51cbffa78617ee5fd'
* commit '3832a6590156e6abc575bed51cbffa78617ee5fd':
  dsputil: Move ff_alternate_*_scan tables to mpegvideo

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 00:30:45 +02:00
Diego Biurrun
368f50359e dsputil: Split off quarterpel bits into their own context 2014-05-29 06:48:31 -07:00
Diego Biurrun
3832a65901 dsputil: Move ff_alternate_*_scan tables to mpegvideo 2014-05-29 06:41:15 -07:00
Michael Niedermayer
fa0f7c024e Merge commit 'a871ef0cc936612bdb0e643196be72efcf0c8986'
* commit 'a871ef0cc936612bdb0e643196be72efcf0c8986':
  hwaccel: Rename priv_data_size to frame_priv_data_size

Conflicts:
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 23:49:13 +02:00
Anton Khirnov
a871ef0cc9 hwaccel: Rename priv_data_size to frame_priv_data_size
This describes more accurately what this field is for.
2014-05-11 14:59:07 +02:00
Michael Niedermayer
41a679000f avcodec/mpegvideo: fix gray*() parameter types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 17:12:42 +02:00
Michael Niedermayer
c60b266eac avcodec/mpegvideo: support disabling motion compensation
This allows analyzing videos without having prior and current frames mixed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 16:51:39 +02:00
Michael Niedermayer
b3d48c315d Merge commit 'c1f92d13589d431e576d719dd44427486a5e05cd'
* commit 'c1f92d13589d431e576d719dd44427486a5e05cd':
  mpegvideo: remove unused MpegEncContext.b4_stride

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 00:28:51 +02:00
Michael Niedermayer
6a0b5e3476 avcodec/mpegvideo: fix null pointer dereference
Fixes: 111342.ogm with ffplay
Found-by: Dale Curtis <dalecurtis@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 14:52:12 +02:00
Anton Khirnov
c1f92d1358 mpegvideo: remove unused MpegEncContext.b4_stride 2014-04-29 14:49:42 +02:00
Michael Niedermayer
9341e9497b Fix overriden typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:20:45 +02:00
Carl Eugen Hoyos
941b2240f2 Do not overwrite VDPAU structures in ff_MPV_frame_start().
Fixes crashes with VDR and MPlayer as reported by irc user crow.
2014-04-18 05:08:24 +02:00
Michael Niedermayer
59a53842d3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: operate with pointers to AVFrames instead of whole structs

Conflicts:
	libavcodec/h261dec.c
	libavcodec/h263dec.c
	libavcodec/intrax8.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/mpegvideo_xvmc.c
	libavcodec/msmpeg4.c
	libavcodec/ratecontrol.c
	libavcodec/vaapi.c
	libavcodec/vc1dec.c
	libavcodec/vdpau_vc1.c

See: fc567ac49e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 15:18:46 +02:00
wm4
f6774f905f mpegvideo: operate with pointers to AVFrames instead of whole structs
The most interesting parts are initialization in ff_MPV_common_init() and
uninitialization in ff_MPV_common_end().

ff_mpeg_unref_picture and ff_thread_release_buffer have additional NULL
checks for Picture.f, because these functions can be called on
uninitialized or partially initialized Pictures.

NULL pointer checks are added to ff_thread_release_buffer() stub function.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-09 02:12:19 +02:00
Michael Niedermayer
72bff8da47 avcodec: Make ff_print_debug_info2() independant of Picture struct
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 22:43:05 +01:00
Michael Niedermayer
6ee2911996 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: drop ff_pixfmt_list_420

Conflicts:
	libavcodec/flvdec.c
	libavcodec/msmpeg4dec.c
	libavcodec/rv10.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 03:56:43 +01:00
Vittorio Giovara
6f6c029464 lavc: drop ff_pixfmt_list_420 2014-03-23 01:56:58 +01:00
Michael Niedermayer
329a3286d6 Merge commit 'be039278b5ebd8075d90a3508db2aed5adf59e02'
* commit 'be039278b5ebd8075d90a3508db2aed5adf59e02':
  mpegvideo: move ff_draw_horiz_band() to mpegutils.c

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 13:23:48 +01:00
Michael Niedermayer
9517900bef Merge commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b'
* commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b':
  mpegvideo: move mpegvideo formats-related defines to mpegutils.h

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_mvpred.h
	libavcodec/svq1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 12:36:48 +01:00
Michael Niedermayer
8ef9dcf1d7 avcodec/mpegvideo: ff_mpeg_set_erpic() clear destination
Fixes crash

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:13:59 +01:00
Michael Niedermayer
533bc4c0a3 Merge commit 'd66e305bd1b4f3e91ae4e7e549148509d0811672'
* commit 'd66e305bd1b4f3e91ae4e7e549148509d0811672':
  er: move relevant fields from Picture to ERPicture

Conflicts:
	libavcodec/error_resilience.c
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:08:46 +01:00
Michael Niedermayer
3ddf9b5b77 Merge commit '75af13a'
* commit '75af13a':
  mpegvideo: directly use frames in ff_draw_horiz_band()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 04:35:48 +01:00
Vittorio Giovara
be039278b5 mpegvideo: move ff_draw_horiz_band() to mpegutils.c
Drop the mpegvideo dependency for svq3 in configure.
2014-03-16 23:05:39 +01:00
Vittorio Giovara
e0c16e4e32 mpegvideo: move mpegvideo formats-related defines to mpegutils.h 2014-03-16 23:04:41 +01:00
Vittorio Giovara
d66e305bd1 er: move relevant fields from Picture to ERPicture
This is done to disentangle ER from mpegvideo. In order to use a
classic Picture, callers can use ff_mpeg_set_erpic() or use a custom function
to set the fields. Please note that buffers need to be allocated before
calling ff_er_frame_end().
2014-03-16 23:01:00 +01:00
Vittorio Giovara
75af13a0e4 mpegvideo: directly use frames in ff_draw_horiz_band() 2014-03-16 23:01:00 +01:00
Hendrik Leppkes
bc249bd673 mpegvideo: re-indent buffer clearing code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 13:47:16 +01:00
Hendrik Leppkes
fa84231ee8 mpegvideo: fix overwriting hwaccel surface objects
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 13:47:10 +01:00
Michael Niedermayer
42361bdf51 avcodec/mpegvideo: fix buffer clear code so it should work with negative linesizes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 18:14:59 +01:00
Michael Niedermayer
fbafd64acc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg: Drop unused parameters from ff_draw_horiz_band()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-29 17:05:51 +01:00
Diego Biurrun
54b2ce7418 mpeg: Drop unused parameters from ff_draw_horiz_band() 2014-01-29 16:37:23 +01:00
Michael Niedermayer
965fa6b0d9 Merge commit 'fb0c9d41d685abb58575c5482ca33b8cd457c5ec'
* commit 'fb0c9d41d685abb58575c5482ca33b8cd457c5ec':
  avutil: remove timer.h include from internal.h

Conflicts:
	libavcodec/ffv1dec.c
	libavutil/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 01:54:55 +01:00
Janne Grunau
fb0c9d41d6 avutil: remove timer.h include from internal.h
Added libavutil/timer.h include to all files with {START,STOP}_TIMER.
2014-01-25 21:50:20 +01:00
Michael Niedermayer
d83707c641 Merge commit '024db24912a39316b0ef0b7d793307d62da038f4'
* commit '024db24912a39316b0ef0b7d793307d62da038f4':
  mpegvideo: allocate edges when encoding.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 17:09:35 +01:00
Anton Khirnov
024db24912 mpegvideo: allocate edges when encoding.
Allocating edges will be removed from generic code, so the encoder must
handle this explicitly.
2014-01-20 12:50:14 +01:00
Michael Niedermayer
2830f287e2 Merge commit 'ebfe622bb1ca57cecb932e42926745cba7161913'
* commit 'ebfe622bb1ca57cecb932e42926745cba7161913':
  mpegvideo: drop support for real (non-emulated) edges

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_motion.c
	libavcodec/wmv2.c

If this is slower on a major platform then it should be investigated
and potentially reverted.

See: 8fc52a5ef9
See: 3969b4b861
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 14:19:24 +01:00
Anton Khirnov
ebfe622bb1 mpegvideo: drop support for real (non-emulated) edges
Several decoders disable those anyway and they are not measurably faster
on x86. They might be somewhat faster on other platforms due to missing
emu edge SIMD, but the gain is not large enough (and those decoders
relevant enough) to justify the added complexity.
2014-01-09 09:41:19 +01:00
Michael Niedermayer
adc09a353c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: remove disabled bfin asm

Conflicts:
	libavcodec/bfin/mpegvideo_bfin.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 03:13:54 +01:00
Michael Niedermayer
9b9f64fe31 Merge commit 'a4d0c6e0503562d4cc8f9f6d02d84d7b32583b15'
* commit 'a4d0c6e0503562d4cc8f9f6d02d84d7b32583b15':
  mpegvideo: move dct_unquantize functions up to avoid forward declarations

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 03:03:02 +01:00
Michael Niedermayer
fb17f03dad Merge commit 'aec25b1c4650944d32706bfd40eb02bbd5587303'
* commit 'aec25b1c4650944d32706bfd40eb02bbd5587303':
  mpegvideo: split the encoding-only parts of frame_start() into a separate function

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:56:29 +01:00
Michael Niedermayer
532b93b516 Merge commit 'feded990e3ef9af4a0b827d5b6d8fe86f0b94942'
* commit 'feded990e3ef9af4a0b827d5b6d8fe86f0b94942':
  mpegvideo: set reference/pict_type on generated reference frames

Conflicts:
	libavcodec/mpegvideo.c

The picture type is left at P type as it was explicitly set before

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 00:16:58 +01:00
Michael Niedermayer
950fb8acb4 avcodec/mpegvideo: fix ac/dc_val and coded_block table sizes
With interlaced vc1 it was possible that accesses could happen outside these
tables before this.

Regression since 017e234c20
Reproduced with a sample from Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Fixes (again) : 480i30__codec_WVC1__mode_2__framerate_29.970__type_2__preproc_17.SIGFPE.bfa.390.wmv
No releases are affected by this

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 20:35:55 +01:00
Anton Khirnov
a3a55645f0 mpegvideo: remove disabled bfin asm
It has been disabled as 'broken' over 3 years ago in b716a792
2014-01-03 16:54:24 +01:00
Anton Khirnov
a4d0c6e050 mpegvideo: move dct_unquantize functions up to avoid forward declarations 2014-01-03 16:54:00 +01:00
Anton Khirnov
aec25b1c46 mpegvideo: split the encoding-only parts of frame_start() into a separate function
This introduces some code duplication. However, much of it should go
away once the decoders stop using MpegEncContext.
2014-01-03 16:52:49 +01:00
Anton Khirnov
feded990e3 mpegvideo: set reference/pict_type on generated reference frames
Otherwise the generic code will unref them, which can then result in
last_picture_ptr == current_picture_ptr, which causes deadlocks at least
in rv40.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:36:43 +01:00
Ivan Kalvachev
1c63aed232 Convert XvMC to hwaccel v3
Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 22:03:47 +01:00
Michael Niedermayer
34fe125f4b avcodec/mpegvideo_enc: fix frame skipping with intra only codecs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 15:04:40 +01:00
Michael Niedermayer
3b2b07397c Merge commit '2d1f4288dd02a624cb8b86ab06371d6434c9da69'
* commit '2d1f4288dd02a624cb8b86ab06371d6434c9da69':
  mpegvideo: call av_frame_unref() instead of avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:08:08 +01:00
Michael Niedermayer
efb5ebe832 Merge commit 'b06c8bce02b15115a4789252365df2dda0c4713c'
* commit 'b06c8bce02b15115a4789252365df2dda0c4713c':
  mpegvideo: remove an unneeded call to avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:55:51 +01:00
Anton Khirnov
2d1f4288dd mpegvideo: call av_frame_unref() instead of avcodec_get_frame_defaults().
This is a temporary workaround to allow deprecating
avcodec_get_frame_defaults(). The proper solution will be using a
properly allocated AVFrame in Picture.
2013-12-11 20:39:55 +01:00
Anton Khirnov
b06c8bce02 mpegvideo: remove an unneeded call to avcodec_get_frame_defaults().
ff_mpeg_unref_picture() already resets the frame.
2013-12-11 20:39:55 +01:00
Michael Niedermayer
52b69fa142 Merge commit '282c6a1a0ef3e8c8e180c15b39cfe5b89704d848'
* commit '282c6a1a0ef3e8c8e180c15b39cfe5b89704d848':
  mpegvideo: make ff_release_unused_pictures() static

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 03:46:47 +01:00
Michael Niedermayer
f1db3f5f59 Merge commit 'c99307caee01441cfde24f3b7b0db3037b7022dc'
* commit 'c99307caee01441cfde24f3b7b0db3037b7022dc':
  mpegvideo: make frame_size_alloc() static.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 03:29:33 +01:00
Michael Niedermayer
08667c2678 Merge commit '0b0a7a751de02464a33717e70352f696372ba1c4'
* commit '0b0a7a751de02464a33717e70352f696372ba1c4':
  mpegvideo: move encode-only parts of common_end() to encode_end()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 03:12:10 +01:00
Michael Niedermayer
e3b7f0e184 Merge commit 'd0d111d0592bfd6b2b8bcd2321986c0fc493455d'
* commit 'd0d111d0592bfd6b2b8bcd2321986c0fc493455d':
  mpegvideo: remove commented out cruft from ff_MPV_frame_end()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:54:45 +01:00
Michael Niedermayer
26c2e3bf1a Merge commit '381a722562bcc0b623acf6a00a583fe989bcb72a'
* commit '381a722562bcc0b623acf6a00a583fe989bcb72a':
  mpegvideo: split the encoding-only parts of ff_MPV_frame_end() into a separate function

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:48:09 +01:00
Michael Niedermayer
d5050bae80 Merge commit 'b7254288d222013e20539c530b1ec5d324ed5352'
* commit 'b7254288d222013e20539c530b1ec5d324ed5352':
  mpegvideo: do not update last_non_b_pict_type in update_thread_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:18:50 +01:00
Michael Niedermayer
20b28fc7b0 Merge commit '1f8eb69079880ef1f394c498dfdf471f91222a06'
* commit '1f8eb69079880ef1f394c498dfdf471f91222a06':
  mpegvideo: move encoding-only initialization from common_init() to encode_init()

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:12:59 +01:00
Michael Niedermayer
2951b7fb1d Merge commit 'bedf952bb80ae26427854dcde56c139ecb87d4a0'
* commit 'bedf952bb80ae26427854dcde56c139ecb87d4a0':
  mpegvideo: move setting encoding-only vars from common_defaults() to encode_defaults()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:58:55 +01:00
Michael Niedermayer
16338b4fb9 Merge commit '2cab011f0f02fcff8a0629a611bcac2f0459f04a'
* commit '2cab011f0f02fcff8a0629a611bcac2f0459f04a':
  mpegvideo: don't copy input_picture_number in update_thread_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:52:53 +01:00
Anton Khirnov
282c6a1a0e mpegvideo: make ff_release_unused_pictures() static
It is only called from one place in mpegvideo.c now. Also remove the
remove_current parameter, which is always 1.
2013-12-05 13:26:50 +01:00
Anton Khirnov
c99307caee mpegvideo: make frame_size_alloc() static.
It is not called from outside of mpegvideo.c anymore.
2013-12-05 13:25:46 +01:00
Anton Khirnov
0b0a7a751d mpegvideo: move encode-only parts of common_end() to encode_end() 2013-12-05 13:25:26 +01:00
Anton Khirnov
d0d111d059 mpegvideo: remove commented out cruft from ff_MPV_frame_end() 2013-12-05 13:25:15 +01:00
Anton Khirnov
381a722562 mpegvideo: split the encoding-only parts of ff_MPV_frame_end() into a separate function 2013-12-05 13:23:55 +01:00
Anton Khirnov
b7254288d2 mpegvideo: do not update last_non_b_pict_type in update_thread_context()
It is used for encoding only.
2013-12-05 13:23:33 +01:00
Anton Khirnov
1f8eb69079 mpegvideo: move encoding-only initialization from common_init() to encode_init() 2013-12-05 13:23:03 +01:00
Anton Khirnov
bedf952bb8 mpegvideo: move setting encoding-only vars from common_defaults() to encode_defaults() 2013-12-05 13:22:55 +01:00
Anton Khirnov
2cab011f0f mpegvideo: don't copy input_picture_number in update_thread_context()
It is encoding-only, frame threading is not used for encoding.
2013-12-05 13:22:46 +01:00
Michael Niedermayer
e2f63be012 Merge commit 'e62a43f6b1a9c0c82e1df33c0c038e32029c0aa4'
* commit 'e62a43f6b1a9c0c82e1df33c0c038e32029c0aa4':
  mpeg4videodec: move MpegEncContext.time_increment_bits to Mpeg4DecContext

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 22:45:05 +01:00
Michael Niedermayer
ad13b8ca9b Merge commit 'ee8af2dd99dcb7a01a667deedec81d1aa2a00d72'
* commit 'ee8af2dd99dcb7a01a667deedec81d1aa2a00d72':
  mpeg4videodec: move MpegEncContext.shape to Mpeg4DecContext

Conflicts:
	libavcodec/h263dec.c
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 22:35:52 +01:00
Anton Khirnov
e62a43f6b1 mpeg4videodec: move MpegEncContext.time_increment_bits to Mpeg4DecContext
The field remains in MpegEncContext for use in the encoder.
2013-11-29 14:19:47 +01:00
Anton Khirnov
ee8af2dd99 mpeg4videodec: move MpegEncContext.shape to Mpeg4DecContext 2013-11-29 14:19:47 +01:00
Michael Niedermayer
56e122787e Merge commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23'
* commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23':
  lavc: use buf[0] instead of data[0] in checks whether a frame is allocated

Conflicts:
	libavcodec/h264_refs.c
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 03:56:53 +01:00
Kostya Shishkov
16e7b189c5 mpegvideo: Fix swapping of UV planes for VCR2 2013-11-19 02:05:51 +01:00
Anton Khirnov
a553c6a347 lavc: use buf[0] instead of data[0] in checks whether a frame is allocated
data[0] may be NULL for valid frames with hwaccel pixel formats.
2013-11-18 18:09:48 +01:00
Michael Niedermayer
91e00c4a78 Merge commit '458446acfa1441d283dacf9e6e545beb083b8bb0'
* commit '458446acfa1441d283dacf9e6e545beb083b8bb0':
  lavc: Edge emulation with dst/src linesize

Conflicts:
	libavcodec/cavs.c
	libavcodec/h264.c
	libavcodec/hevc.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/rv34.c
	libavcodec/svq3.c
	libavcodec/vc1dec.c
	libavcodec/videodsp.h
	libavcodec/videodsp_template.c
	libavcodec/vp3.c
	libavcodec/vp8.c
	libavcodec/wmv2.c
	libavcodec/x86/videodsp.asm
	libavcodec/x86/videodsp_init.c

Changes to the asm are not merged, they are left for volunteers or
in their absence for later.
The changes this merge introduces are reordering of the function
arguments

See: face578d56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 15:07:10 +01:00
Kostya Shishkov
bae14f38d9 mpegvideo: Fix swapping of UV planes for VCR2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 07:33:59 +01:00
Michael Niedermayer
5231eecdaf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Deprecate obsolete XvMC hardware decoding support

Conflicts:
	libavcodec/mpeg12.c
	libavcodec/mpeg12dec.c
	libavcodec/mpegvideo.c
	libavcodec/options_table.h
	libavutil/pixdesc.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 03:26:35 +01:00
Diego Biurrun
19e30a58fc Deprecate obsolete XvMC hardware decoding support
XvMC has long ago been superseded by newer acceleration APIs, such as
VDPAU, and few downstreams still support it. Furthermore XvMC is not
implemented within the hwaccel framework, but requires its own specific
code in the MPEG-1/2 decoder, which is a maintenance burden.
2013-11-13 21:07:45 +01:00
Diego Biurrun
c7f7bfc9e3 Remove all Alpha architecture optimizations
Alpha has been end-of-lifed and no more test machines are available.
2013-11-13 20:45:49 +01:00
Michael Niedermayer
6e87dfb589 mpegvideo: reduce whitespace differences to libav
This excludes many changes that worsen readability

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 01:24:01 +01:00
Michael Niedermayer
c6c03dfdf1 Merge commit 'ccc71298456d97f64f539e303c771d04dcb33c53'
* commit 'ccc71298456d97f64f539e303c771d04dcb33c53':
  lavc: deprecate FF_DEBUG_MV and remove all traces of its use

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:22:42 +01:00
Anton Khirnov
ccc7129845 lavc: deprecate FF_DEBUG_MV and remove all traces of its use
It has not been actually used since
37045e4229, when the broken vismv code was
removed.
2013-10-31 20:21:13 +01:00
Luca Barbato
72072bf9de mpegvideo: Drop a faulty assert
That check is easily reachable by faulty input.

CC:libav-stable@libav.org
Reported-by: Torsten Sadowski <tsadowski@gmx.net>
2013-10-23 10:49:48 +02:00
Ronald S. Bultje
face578d56 Rewrite emu_edge functions to have separate src/dst_stride arguments.
This allows supporting files for which the image stride is smaller than
the max. block size + number of subpel mc taps, e.g. a 64x64 VP9 file
or a 16x16 VP8 file with -fflags +emu_edge.
2013-09-28 20:28:08 -04:00
Ronald S. Bultje
c341f734e5 Convert multiplier for MV from int to ptrdiff_t.
This prevents emulated_edge_mc from not undoing mvy*stride-related
integer overflows.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-28 11:28:09 +02:00
Michael Niedermayer
dcc7686ae7 avcodec/mpegvideo: drop emu edge check from chroma_4mv_motion_lowres()
This is in line with the other functions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-24 17:15:24 +02:00
Michael Niedermayer
0ebc372856 Merge commit '5f24fe82e5fcf227abb5ebf62aa9bc246fda8c0d'
* commit '5f24fe82e5fcf227abb5ebf62aa9bc246fda8c0d':
  mpegvideo: Initialize chroma_*_shift and codec_tag even if the size is 0

Conflicts:
	libavcodec/mpegvideo.c

The chroma_*_shift and codec_tag code was not under a size!=0 check in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-24 14:55:14 +02:00
Martin Storsjö
5f24fe82e5 mpegvideo: Initialize chroma_*_shift and codec_tag even if the size is 0
This fixes breakage in a few fate tests on certain setups
(that for some reason didn't break on OS X) after the previous
commit (8812a8057). Currently, some video streams are initialized
in ff_MPV_common_init with width/height set at 0 and only changed
to a proper video size with ff_MPV_common_frame_size_change later.

The breakage was diagnosed by Anton Khirnov.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-24 14:02:23 +03:00
Michael Niedermayer
4f5454d201 avcodec/mpegvideo: reduce log level for messages about allocating frames.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-30 14:20:59 +02:00
Michael Niedermayer
259292f9d4 avcodec/mpegvideo: Dont incorrectly warn about missing keyframes
Files starting with B frames in presentation order generated the
"no keyframe" warning before this change.

Based on patch by: Robert Krüger <krueger@lesspain.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-30 01:45:11 +02:00
Michael Niedermayer
8251529ff3 Merge commit '70dd8892bf00923af838756dfbb356a9b1e4e40d'
* commit '70dd8892bf00923af838756dfbb356a9b1e4e40d':
  mpegvideo: Replace arch initialization ifdeffery by standard conditionals

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 14:53:44 +02:00
Diego Biurrun
70dd8892bf mpegvideo: Replace arch initialization ifdeffery by standard conditionals 2013-08-28 23:59:24 +02:00
Michael Niedermayer
68b63a3432 mpegvideo: Use picture_ptr instead of picture in ff_mpeg_draw_horiz_band()
Fixes strides and issue with mplayer and mpeg2 field pictures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-20 00:19:21 +02:00
Michael Niedermayer
a0c6c8e53e Revert "Merge commit of 'vdpau: remove old-style decoders'"
This reverts commit bf36dc50ea, reversing
changes made to b7fc2693c7.

Conflicts:

	libavcodec/h264.c

Keeping support for the old VDPAU API has been requested by our VDPAU maintainer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-17 22:17:49 +02:00
Michael Niedermayer
bf36dc50ea Merge commit '578ea75a9e4ac56e0bbbbe668700be756aa699f8'
* commit '578ea75a9e4ac56e0bbbbe668700be756aa699f8':
  vdpau: remove old-style decoders

Conflicts:
	libavcodec/allcodecs.c
	libavcodec/h263dec.c
	libavcodec/h264.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg4videodec.c
	libavcodec/vc1dec.c
	libavcodec/vdpau.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-06 13:24:22 +02:00
Rémi Denis-Courmont
578ea75a9e vdpau: remove old-style decoders
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-08-05 11:15:49 +02:00
Michael Niedermayer
5e763920a4 avcodec/mpegvideo: update disabled assert() to av_assert0()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-27 15:23:13 +02:00
Michael Niedermayer
205f423e28 libavcodec/mpegvideo: change some asserts to av_assert0()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-26 22:29:55 +02:00
Michael Niedermayer
c88bbc01eb avcodec/mpegvideo: replace assert about interlaced EC by debug av_log()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-26 22:29:47 +02:00
Michael Niedermayer
104dfaadaa dct_unquantize_h263_intra_c: fix assert condition
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-07 01:50:59 +02:00
Carl Eugen Hoyos
712ef25116 Avoid a null pointer dereference after oom on frame size change in mpegvideo.c.
Fixes ticket #2735.
2013-06-30 23:45:37 +02:00
Michael Niedermayer
0abe923d20 mpegvideo: fix forgotten lowres op_index limits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-29 19:55:27 +02:00
Michael Niedermayer
c2625c26c5 mpegvideo: implement ff_put_h264_chroma_mc1 & ff_avg_h264_chroma_mc2
These are needed for lowres 3

This may fix Ticket2538

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-29 19:48:03 +02:00
Michael Niedermayer
5f44f47b72 mpegvideo_enc: do not unreference frames before the code is done with them
Fixes Ticket2592

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-25 20:30:50 +02:00
Michael Niedermayer
1724123c65 Merge commit '3eae9b030cbbdc263f69834b791624613032d548'
* commit '3eae9b030cbbdc263f69834b791624613032d548':
  mpegvideo: unref buffers in ff_mpeg_unref_picture on frame size changes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-23 10:25:25 +02:00
Janne Grunau
3eae9b030c mpegvideo: unref buffers in ff_mpeg_unref_picture on frame size changes
ff_mpeg_unref_picture clears the flag indicating that the frame needs to
be reallocated after a frame size change. Since we have now reference
counted buffers we can unref the buffers immediately.
2013-05-22 15:40:12 +02:00
Michael Niedermayer
d61681f9e9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: unref old current_picture before allocating a new one

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-20 12:07:17 +02:00
Janne Grunau
4b79668154 mpegvideo: unref old current_picture before allocating a new one
Allows decoding with only three frame buffers with frame reference
counting. Fixes VAAPI based decoding in vlc which uses only three
frame buffers for the mpegvideo-based codecs.
2013-05-19 23:02:35 +02:00
Jindrich Makovicka
259af1b923 mpegvideo: allocate sufficiently large scratch buffer for interlaced vid
MPV_decode_mb_internal needs 3 * 16 * linesize bytes of scratch buffer

For interlaced content, linesize is multiplied by two after the allocation
of the scratch buffer, and the dest_cr pointer ends past the buffer.

This patch makes ff_mpv_frame_size_alloc allocate a total of
(aligned line_size) * 2 * 16 * 3 bytes, which suffices even for the
interlaced case.

CC:libav-stable@libav.org

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-05-17 07:49:05 +02:00
Michael Niedermayer
efc08e00cc Merge commit 'b3ea76624ad1baab0b6bcc13f3f856be2f958110'
* commit 'b3ea76624ad1baab0b6bcc13f3f856be2f958110':
  vf_aspect: use the name 's' for the pointer to the private context
  Remove commented-out debug #define cruft

Conflicts:
	libavcodec/4xm.c
	libavcodec/dvdsubdec.c
	libavcodec/ituh263dec.c
	libavcodec/mpeg12.c
	libavfilter/avfilter.c
	libavfilter/vf_aspect.c
	libavfilter/vf_fieldorder.c
	libavformat/rtmpproto.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-16 09:56:43 +02:00
Michael Niedermayer
0d83b5722e Merge commit '9cacdabd1c8cd257a942d8289349c37d992989b7'
* commit '9cacdabd1c8cd257a942d8289349c37d992989b7':
  jpegls: cosmetics: Drop some unnecessary parentheses
  mpegvideo: Remove commented-out PARANOID debug cruft

Conflicts:
	libavcodec/jpegls.c
	libavcodec/mpegvideo.c
	libavcodec/x86/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-16 09:19:11 +02:00
Diego Biurrun
2832ea26f3 Remove commented-out debug #define cruft 2013-05-16 00:23:30 +02:00
Diego Biurrun
004b81c465 mpegvideo: Remove commented-out PARANOID debug cruft 2013-05-15 23:53:42 +02:00
Michael Niedermayer
c67bca2b5a avcodec/mpegvideo: Fix edge emu with lowres
Fixes a few green artifacts at the top
Fixes rest of Ticket 2535

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-08 01:18:56 +02:00
Michael Niedermayer
bca50e5cd5 avcodec/mpegvideo: Fix block height for lowres 3 interlaced blocks
Fixes green trash
Fixes part of Ticket2535

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-08 01:17:45 +02: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
cae8f469fe Merge commit '38282149b6ce8f4b8361e3b84542ba9aa8a1f32f'
* commit '38282149b6ce8f4b8361e3b84542ba9aa8a1f32f':
  ppc: More consistent arch initialization

Conflicts:
	libavcodec/fft.h
	libavcodec/mpegaudiodsp.c
	libavcodec/mpegaudiodsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-01 18:08:13 +02:00
Diego Biurrun
38282149b6 ppc: More consistent arch initialization 2013-04-30 12:19:45 +02:00
Michael Niedermayer
8d86cf4cfa Merge commit 'feec9349d35b3a46d0c6a05e3b23626050b76a77'
* commit 'feec9349d35b3a46d0c6a05e3b23626050b76a77':
  mpegvideo: unref cur/next/prev frames when flushing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-24 10:11:34 +02:00
Hendrik Leppkes
feec9349d3 mpegvideo: unref cur/next/prev frames when flushing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-04-23 19:11:59 +02:00
Michael Niedermayer
4824aea7af avcodec/mpegvideo: change asserts to av_asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 21:31:19 +02:00
Ronald S. Bultje
f4fed5a2f9 mpegvideo: Use hpeldsp instead of dsputil for half-pel functions
This also converts vc1, since that is mpegvideo-based.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:21 +03:00
Michael Niedermayer
6ae03353de mpegvideo: Make the table reallocation more robust.
This fixes out of array writes after resolution changes
No FFmpeg releases are known to be affected by this

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-29 02:11:34 +01:00
Michael Niedermayer
46c48d546d mpegvideo: fix null pointer dereference on switching streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-26 21:54:36 +01:00
Michael Niedermayer
7b3ca7ae8b mpegvideo/h264: drop period_since_free
This should not be needed anymore

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-26 19:27:32 +01:00
Michael Niedermayer
2cdedcbcea Merge commit '75644335b907919057960716508477239c26fed4'
* commit '75644335b907919057960716508477239c26fed4':
  lavc: Move start code finding to utils.c

Conflicts:
	configure
	libavcodec/mpegvideo.c
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-26 13:22:48 +01:00
Martin Storsjö
75644335b9 lavc: Move start code finding to utils.c
This allows dropping the mpegvideo dependency from a number of
components.

This also fixes standalone building of the h264 parser, which
was broken in 64e438697.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-26 09:48:12 +02:00
Michael Niedermayer
f7fee8f700 Merge commit 'c3ebfcd6e1327ca7bbcaee822e593c2da6cfd352'
* commit 'c3ebfcd6e1327ca7bbcaee822e593c2da6cfd352':
  mpegvideo: allocate hwaccel privdata after the frame buffer
  h264: allocate hwaccel privdata after the frame buffer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 11:57:28 +01:00
Michael Niedermayer
54b0bef390 Merge commit '4e70d66ded537cadd32dbd02a38c3d86a203c812'
* commit '4e70d66ded537cadd32dbd02a38c3d86a203c812':
  mpegvideo: fix allocation of the hwaccel_picture_private data
  lavc: update the doxy for avcodec_decode_{video,audio} wtih refcounting.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 11:43:29 +01:00
Hendrik Leppkes
c3ebfcd6e1 mpegvideo: allocate hwaccel privdata after the frame buffer
This ensures the hwaccel privdata does not leak when a frame buffer could
not be allocated (and toggle the assert when the frame is re-used).
Having no frame buffer available is quite common when using the DXVA2
hwaccel in situations where the DXVA2 renderer is being re-allocated, for
example when moving between displays.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-19 11:20:22 +01:00
Hendrik Leppkes
4e70d66ded mpegvideo: fix allocation of the hwaccel_picture_private data
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-19 11:18:42 +01:00
Michael Niedermayer
64308941d4 mpegvideo: Fix exported qp table offest
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-15 14:38:09 +01:00
Michael Niedermayer
df4517106a Merge commit 'ee8704916de79158da8a48a9ea5be819e83d23ba'
* commit 'ee8704916de79158da8a48a9ea5be819e83d23ba':
  mpegvideo: reindent

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-13 13:08:04 +01:00
Michael Niedermayer
f45fdb123f Merge commit '19cac8e301419dcde31526d15196a952ddf2c4c7'
* commit '19cac8e301419dcde31526d15196a952ddf2c4c7':
  mpegvideo: remove useless references to h264 and svq3

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-13 12:56:43 +01:00
Ronald S. Bultje
4ba5dbc0e4 mpegvideo: use hpeldsp instead of dsputil for half-pel functions.
This also converts vc1, since that is mpegvideo-based.
2013-03-13 03:58:00 +01:00
Michael Niedermayer
3c1326411d Merge commit '37045e422903695e610cca6ecb753df643ab9380'
* commit '37045e422903695e610cca6ecb753df643ab9380':
  mpegvideo: drop vismv code

Conflicts:
	libavcodec/mpegvideo.c

vismv code works fine, and thus only the unused fields are droped

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 12:57:54 +01:00
Michael Niedermayer
53fd4f5594 avcodec: fix motion vector vissualization
was broken by the buffer ref stuff

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 11:23:07 +01:00
Michael Niedermayer
6ae4372532 h264/mpegvideo: fix ff_print_debug_info2 arguments
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 11:06:35 +01:00
Michael Niedermayer
ee3c3dd523 ff_alloc_picture: free tables in case of dimension mismatches
Fixes memory corruption
In theory this should not be needed but its better to check at
one place than to hope 50 other places set the flags correctly
2013-03-12 03:23:55 +01:00
Michael Niedermayer
9e73f6d1f9 mpegvideo: dont allow last == current
this fixes deadlocks

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 03:23:53 +01:00