Commit Graph

1072 Commits

Author SHA1 Message Date
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