18e75f493d
avcodec/mpegvideo: Remove write-only [fb]_code
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-02-13 19:49:29 +01:00
746e7102be
avcodec/mpegvideo: Move encoder-only stuff to a new header
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-02-13 19:49:29 +01:00
876d0afe1f
avcodec/mpeg4video.h: Move encoder-only parts in a new file
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-02-13 19:41:57 +01:00
20d74fb09d
avcodec/h263.h: Move encoder-only stuff to a new header h263enc.h
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-02-13 19:41:43 +01:00
b326c2dcdc
avcodec/mpeg4videoenc: Use stack variable for aspect_ratio_info
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-01-29 18:34:30 +01:00
49627b2f2a
avcodec/mpeg4videoenc: Use stack variable for vo_type
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-01-29 18:34:30 +01:00
c21433c953
avcodec/mpeg4video: Split off data in a header of its own
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-01-13 08:15:28 +01:00
a247ac640d
avcodec: Constify AVCodecs
...
Given that the AVCodec.next pointer has now been removed, most of the
AVCodecs are not modified at all any more and can therefore be made
const (as this patch does); the only exceptions are the very few codecs
for external libraries that have a init_static_data callback.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2021-04-27 10:43:15 -03:00
929107c751
avcodec/mpeg4videoenc: Make encoder init-threadsafe
...
Reviewed-by: Anton Khirnov <anton@khirnov.net >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2021-04-27 00:41:03 +02:00
d99707b42a
avcodec/mpeg4video: Make initializing RLTable thread-safe
...
Up until now the RLTable ff_mpeg4_rl_intra was initialized by both mpeg4
decoder and encoder (except the VLCs that are only used by the decoder).
This is an obstacle to making these codecs init-threadsafe, so move
initializing this to a single function that is guarded by a dedicated
AVOnce.
Reviewed-by: Anton Khirnov <anton@khirnov.net >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2021-04-27 00:40:18 +02:00
7d9afb46f2
avcodec/mpegvideo: Deprecate bframe opts for encoders not supporting them
...
MPEG-1/2/4 are the only mpegvideo based encoders that support bframes;
yet even the encoders not supporting bframes have options that only make
sense for an encoder that supports bframes; setting any of these options
for such an encoder has no impact on the encoded outcome (but setting
b_strategy to two slows down encoding considerably). So deprecate these
options.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2021-04-10 04:21:21 +02:00
6c2cc205f6
avcodec/mpegvideo: Deprecate duplicate matrix opt for unsupported codecs
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2021-04-10 04:17:44 +02:00
2de159fcf1
avcodec/mpegvideo: Deprecate a53cc option for encoders != MPEG-2
...
The MPEG-2 encoder is the only mpegvideo-based encoder that supports
embedding a53 side data.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2021-04-10 04:16:54 +02:00
42c895ef5c
avcodec/mpegvideo: Deprecate mpeg_quant option for codecs != MPEG-4
...
mpeg_quant may only be set for MPEG-4 and MPEG-2, yet for the latter
it is no option as the code acts as if it were always set.
So deprecate the option for all codecs for which it makes no sense.
Furthermore, given that the code already errors out if the option is set
for a codec that doesn't support it we can restrict the range of
the option for all these codecs without breaking something. This means
that the checks for whether mpeg_quant is set for these codecs can be
removed as soon as AVCodecContext.mpeg_quant is removed.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2021-04-10 03:56:39 +02:00
c81b8e04aa
Avoid intermediate bitcount for number of bytes in PutBitContext
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2021-03-30 12:36:32 +02:00
33a1687bf6
avcodec/mpeg4videoenc: Check extradata malloc()
...
Fixes: Null pointer dereference
Fixes: any mpeg4 testcase which fails the malloc at that exact spot
Found-by: Rafael Dutra <rafael.dutra@cispa.de >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-03-20 00:36:09 +01:00
aff923c0b5
avcodec/Makefile: Make H.263 encoder compilable without MPEG4 encoder
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2021-01-21 19:02:18 +01:00
dc1099442e
put_bits: make avpriv_copy_bits() lavc-local
...
It is not used outside of lavc anymore. Keep the avpriv exported symbol
around until the next bump to preserve ABI compatibility.
2020-10-28 13:53:23 +01:00
944ba30db0
put_bits: make avpriv_put_string() lavc-local
...
It has not been used outside of libavcodec since
20f325f320
2020-10-28 13:53:23 +01:00
467d9e27e0
avcodec: Add FF_CODEC_CAP_INIT_CLEANUP
...
then ff_mpv_encode_end() will be unnecessary in ff_mpv_encode_init()
if it's failed.
The FF_CODEC_CAP_INIT_CLEANUP flag is need for single thread, For multithread,
it'll be cleanup still by AV_CODEC_CAP_FRAME_THREADS flag if have.
Signed-off-by: Limin Wang <lance.lmwang@gmail.com >
2020-05-27 21:59:51 +08:00
82f9eb6f6c
avcodec: move mpeg4 profiles to profiles.h
...
Also bump micro version after the recent option changes.
Signed-off-by: Marton Balint <cus@passwd.hu >
2020-05-22 22:23:18 +02:00
f163d30de2
mpeg4videoenc: Don't crash with -fsanitize=bounds
...
Also the patch makes this code consistent with mpeg4videodec.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-04-22 23:21:10 +02:00
e1182fac1a
avcodec/mpeg4videoenc: Use 64 bit for times in mpeg4_encode_gop_header()
...
Fixes truncation
Fixes Assertion n <= 31 && value < (1U << n) failed at libavcodec/put_bits.h:169
Fixes: ffmpeg_crash_2.avi
Found-by: Thuan Pham <thuanpv@comp.nus.edu.sg >, Marcel Böhme, Andrew Santosa and Alexandru RazvanCaciulescu with AFLSmart
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-05-27 23:10:12 +02:00
efcba5a06a
Merge commit 'd5fda00efa756387cffb4d7294691cd54cfe86cf'
...
* commit 'd5fda00efa756387cffb4d7294691cd54cfe86cf':
mpeg4videoenc: Kill non-compiling disabled cruft
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-19 13:48:07 +01:00
d5fda00efa
mpeg4videoenc: Kill non-compiling disabled cruft
2016-08-17 12:16:42 +02:00
8ef57a0d61
Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
...
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
cosmetics: Fix spelling mistakes
Merged-by: Clément Bœsch <u@pkh.me >
2016-06-21 21:55:34 +02:00
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2016-05-04 18:16:21 +02:00
f502583663
avcodec/mpeg4videoenc: Use 64bit for time variables
...
Fixes assertion failure and integer overflow
Fixes: fc677bbea2c6f901763eb637b61fa5e2/signal_sigabrt_7ffff6ae7cb7_9556_dfd95f040a69f725d1b2f861bd491725.ivf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-01-23 02:17:53 +01:00
7c97946d61
avcodec/mpeg4video: Check time_incr
...
Fixes assertion failure
Fixes out of memory access
Fixes: test_casex.ivf
Found-by: Tyson Smith <twsmith@mozilla.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-01-12 03:35:29 +01:00
fb99ef0bd3
avcodec: use AV_OPT_TYPE_BOOL in a bunch of places
2015-12-04 15:37:05 +01:00
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-27 22:50:18 +02:00
94d68a41fa
Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
...
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
lavc: AV-prefix all codec flags
Conflicts:
doc/examples/muxing.c
ffmpeg.c
ffmpeg_opt.c
ffplay.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/ac3enc_float.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/atrac3plusdec.c
libavcodec/dcadec.c
libavcodec/ffv1enc.c
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mb.c
libavcodec/imc.c
libavcodec/libmp3lame.c
libavcodec/libtheoraenc.c
libavcodec/libtwolame.c
libavcodec/libvpxenc.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegaudiodec_template.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/nellymoserdec.c
libavcodec/nellymoserenc.c
libavcodec/nvenc.c
libavcodec/on2avc.c
libavcodec/options_table.h
libavcodec/opus_celt.c
libavcodec/pngenc.c
libavcodec/ra288.c
libavcodec/ratecontrol.c
libavcodec/twinvq.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
libavcodec/vorbisdec.c
libavcodec/vp3.c
libavcodec/wma.c
libavcodec/wmaprodec.c
libavcodec/x86/hpeldsp_init.c
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-27 22:10:35 +02:00
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2015-07-27 15:24:58 +01:00
7c6eb0a1b7
lavc: AV-prefix all codec flags
...
Convert doxygen to multiline and express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2015-07-27 15:24:58 +01:00
75647622b5
Merge commit '6f57375d707de40dcec28d3cef886c364e032c21'
...
* commit '6f57375d707de40dcec28d3cef886c364e032c21':
rl: Rename ff_*_rl() to ff_rl_*()
Conflicts:
libavcodec/mpeg4videodec.c
libavcodec/rl.c
libavcodec/rl.h
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-05-28 21:48:49 +02:00
6f57375d70
rl: Rename ff_*_rl() to ff_rl_*()
2015-05-28 15:38:43 +01:00
d9b264bc73
Merge commit '848e86f74d3e6e87fa592ee8ba8c184cc5fd9a42'
...
* commit '848e86f74d3e6e87fa592ee8ba8c184cc5fd9a42':
mpegvideo: Drop flags and flags2
Conflicts:
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/ratecontrol.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-05-22 20:24:41 +02:00
848e86f74d
mpegvideo: Drop flags and flags2
...
They are just duplicates of AVCodecContext members so use those instead.
2015-05-22 15:34:39 +01:00
c1df467d73
Merge commit '835f798c7d20bca89eb4f3593846251ad0d84e4b'
...
* commit '835f798c7d20bca89eb4f3593846251ad0d84e4b':
mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes
Conflicts:
libavcodec/h261dec.c
libavcodec/intrax8.c
libavcodec/mjpegenc.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpeg4videoenc.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo.h
libavcodec/mpegvideo_enc.c
libavcodec/rv10.c
libavcodec/x86/mpegvideoenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-08-15 20:11:56 +02:00
835f798c7d
mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes
2014-08-15 01:26:33 -07:00
3a2d1465c8
Merge commit '2d60444331fca1910510038dd3817bea885c2367'
...
* commit '2d60444331fca1910510038dd3817bea885c2367':
dsputil: Split motion estimation compare bits off into their own context
Conflicts:
configure
libavcodec/Makefile
libavcodec/arm/Makefile
libavcodec/dvenc.c
libavcodec/error_resilience.c
libavcodec/h264.h
libavcodec/h264_slice.c
libavcodec/me_cmp.c
libavcodec/me_cmp.h
libavcodec/motion_est.c
libavcodec/motion_est_template.c
libavcodec/mpeg4videoenc.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/x86/Makefile
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-17 23:27:40 +02:00
2d60444331
dsputil: Split motion estimation compare bits off into their own context
2014-07-17 09:07:10 -07:00
581b5f0b9b
Merge commit 'e3fcb14347466095839c2a3c47ebecff02da891e'
...
* commit 'e3fcb14347466095839c2a3c47ebecff02da891e':
dsputil: Split off IDCT bits into their own context
Conflicts:
configure
libavcodec/aic.c
libavcodec/arm/Makefile
libavcodec/arm/dsputil_init_arm.c
libavcodec/arm/dsputil_init_armv6.c
libavcodec/asvdec.c
libavcodec/dnxhdenc.c
libavcodec/dsputil.c
libavcodec/dvdec.c
libavcodec/dxva2_mpeg2.c
libavcodec/intrax8.c
libavcodec/mdec.c
libavcodec/mjpegdec.c
libavcodec/mjpegenc_common.h
libavcodec/mpegvideo.c
libavcodec/ppc/dsputil_altivec.h
libavcodec/ppc/dsputil_ppc.c
libavcodec/ppc/idctdsp.c
libavcodec/x86/Makefile
libavcodec/x86/dsputil_init.c
libavcodec/x86/dsputil_mmx.c
libavcodec/x86/dsputil_x86.h
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-01 15:22:11 +02:00
e3fcb14347
dsputil: Split off IDCT bits into their own context
2014-06-30 07:58:46 -07:00
2b05db4f81
Merge commit 'e74433a8e6fc00c8dbde293c97a3e45384c2c1d9'
...
* commit 'e74433a8e6fc00c8dbde293c97a3e45384c2c1d9':
dsputil: Split clear_block*/fill_block* off into a separate context
Conflicts:
configure
libavcodec/asvdec.c
libavcodec/dnxhddec.c
libavcodec/dnxhdenc.c
libavcodec/dsputil.h
libavcodec/eamad.c
libavcodec/intrax8.c
libavcodec/mjpegdec.c
libavcodec/ppc/dsputil_ppc.c
libavcodec/vc1dec.c
libavcodec/x86/dsputil_init.c
libavcodec/x86/dsputil_mmx.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-06-19 04:54:38 +02:00
e74433a8e6
dsputil: Split clear_block*/fill_block* off into a separate context
2014-06-18 14:07:23 -07:00
7db0f9bef1
avcodec/mpeg4videoenc: fix alternative implementation of mpeg4_encode_dc()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-05-06 05:36:10 +02:00
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
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
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