Michael Niedermayer
a0f20c3b3f
avcodec/mpegvideo_enc: Replace some s->avctx by avctx
...
Fixes issue reported by: Xu Guangxin <guangxin.xu@intel.com >
Original report:
Steps to reproduce:
1. ./configure --enable-debug=3 --disable-libx264 && make install
2. ffmpeg -i input.mp4 -profile:v baseline output.mp4 -y
you will see a crash like this:
[mpeg4 @ 0x5555575854c0] [Eval @ 0x7fffffffbf80] Undefined constant or missing '(' in 'baseline'
[mpeg4 @ 0x5555575854c0] Unable to parse option value "baseline"
[mpeg4 @ 0x5555575854c0] Error setting option profile to value baseline.
Thread 1 "ffmpeg" received signal SIGSEGV, Segmentation fault.
root cause:
If the codec has FF_CODEC_CAP_INIT_CLEANUP flag, and avcodec_open2 got an error before avctx->codec->init,
the ff_mpv_encode_end will face a null s->avctx.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-08-30 16:18:37 +02:00
Andreas Rheinhardt
8129c32e48
avcodec, avfilter, avformat: Remove redundant avpriv_align_put_bits
...
flush_put_bits() already fills the bitstream with zeroes, so it is
unnecessary to align the bitstream before.
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2020-08-01 18:56:32 +02:00
Steinar H. Gunderson
c63c303a1f
avcodec/put_bits: Parametrize bit buffer type
...
Preparatory patch for making the bit buffer different size on different
platforms; make a typedef and make all the hardcoded sizes into expressions
deriving from this size.
No functional change; generated assembler is near-identical.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-07-19 10:59:43 +02:00
Limin Wang
67de2d6a8c
avcodec/mpegvideo_enc: remove FF_ALLOCZ_ARRAY_OR_GOTO and gotos lable
...
Signed-off-by: Limin Wang <lance.lmwang@gmail.com >
2020-06-13 06:59:19 +08:00
James Almer
6e1903938b
avcodec/internal: move packet related functions to their own header
...
Signed-off-by: James Almer <jamrial@gmail.com >
2020-06-02 19:02:12 -03:00
Limin Wang
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
Anton Khirnov
f30a41a608
Stop hardcoding align=32 in av_frame_get_buffer() calls.
...
Use 0, which selects the alignment automatically.
2020-05-22 14:38:57 +02:00
Limin Wang
14285e4ca2
avcodec/mpegvideo_enc: return more specific error codes for ff_mpv_encode_init()
...
Signed-off-by: Limin Wang <lance.lmwang@gmail.com >
2020-05-09 09:33:49 +08:00
Limin Wang
6825f7c0ba
avcodec/mpegvideo_enc: reindent code
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: Limin Wang <lance.lmwang@gmail.com >
2020-05-08 21:09:28 +08:00
Andreas Rheinhardt
cc2a9509ce
libavcodec, libpostproc: Remove outcommented START/STOP_TIMER
...
as well as includes of libavutil/timer.h.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-03-14 18:24:04 +01:00
Ramiro Polla
531fbce0b2
mpegvideo_enc: add intra_penalty option for p frames
...
This option allows more control over the use of intra macroblocks in
predictive frames.
By using '-intra_penalty max', intra macroblocks are never used in
predictive frames.
It is useful for glitch artists to generate input material. This option
allows them to split and merge two video files while maintaining fluid
motion from the second video without having intra macroblocks restoring
chunks of the first video.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-10-24 19:45:17 +02:00
Steven Liu
76ab5ebbee
avcodec/mpegvideo_enc: add logging context to log
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Steven Liu <lq@chinaffmpeg.org >
2019-10-08 13:47:21 +08:00
Michael Niedermayer
7246bf365a
avcodec/mpegvideo_enc: Use av_assert1() instead of assert()
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-02-17 10:29:42 +01:00
Michael Niedermayer
1aa796bc9c
avcodec/mpegvideo_enc: Use av_assert1() instead of assert() in merge_context_after_encode()
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-02-07 00:29:01 +01:00
Rostislav Pehlivanov
a1c6fc773f
mpegvideo: remove support for libxvid's RC system
...
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com >
2018-05-05 19:41:30 +01:00
Muhammad Faiz
caa4bd7a9f
avcodec/me_cmp: remove ff_me_cmp_init_static()
...
Precalculate and constify ff_square_tab.
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com >
2018-02-05 22:42:59 +07:00
James Almer
bfab430856
Merge commit '94eed68ace9f2416af8457fcbf142b175928c06b'
...
* commit '94eed68ace9f2416af8457fcbf142b175928c06b':
lavc: Drop deprecated options moved to private contexts
Merged-by: James Almer <jamrial@gmail.com >
2017-10-23 17:08:32 -03:00
James Almer
b79a7da36f
Merge commit 'bb45d11282d93af0e8d4c8fd6bc6405f7439a940'
...
* commit 'bb45d11282d93af0e8d4c8fd6bc6405f7439a940':
lavc: Drop deprecated codec flags
Merged-by: James Almer <jamrial@gmail.com >
2017-10-23 16:19:38 -03:00
James Almer
400ecd8e40
Merge commit '72dc7ddd18fe54ee68aec71590c3202ad009a8fc'
...
* commit '72dc7ddd18fe54ee68aec71590c3202ad009a8fc':
lavc: Drop deprecated error rate option
Merged-by: James Almer <jamrial@gmail.com >
2017-10-23 15:50:46 -03:00
Carl Eugen Hoyos
724cf83f10
Remove some unneeded casts of bit_rate.
2017-09-22 01:33:22 +02:00
James Almer
4a654be3fb
avcodec/mpegvideo_enc: fix mixed declarations and code warning
2017-07-25 00:58:24 -03:00
Michael Niedermayer
aff93e1929
avcodec/mpegvideo_enc: Use intra/inter scantable matching mb type in quantization
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-07-24 02:42:33 +02:00
Michael Niedermayer
f670c13f13
avcodec: Rename ff_mpv_decode_mb() to ff_mpv_reconstruct_mb
...
The new name more accuratly describes what the function does
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-19 17:54:40 +02:00
Stefano Sabatini
dc70ea8c19
lavc/mpegvideo_enc: allow low_delay for non MPEG2 codecs depending on strict_std_compliance
...
Forcing low_delay can be useful, even if not officially supported.
2017-06-06 09:56:49 +02:00
Rostislav Pehlivanov
03eb0515c1
mpegvideo_enc: disable optimized huffman coding with AMV or slice threads
...
Doesn't work yet with slice threading and won't work with AMV.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-04-09 21:53:31 +02:00
Michael Niedermayer
724bb805ef
Revert "mjpegenc: disable huffman coding with AMV"
...
This was the wrong patch
This reverts commit 7f9b492d54 .
2017-04-09 21:53:30 +02:00
Rostislav Pehlivanov
7f9b492d54
mjpegenc: disable huffman coding with AMV
...
Isn't supported.
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com >
2017-04-09 00:00:32 +01:00
Vittorio Giovara
94eed68ace
lavc: Drop deprecated options moved to private contexts
...
Deprecated in 10/2014 and 07/2015.
2017-03-23 10:09:17 +01:00
Vittorio Giovara
bb45d11282
lavc: Drop deprecated codec flags
...
Deprecated between 04/2014 - 05/2015.
2017-03-23 10:09:16 +01:00
Vittorio Giovara
72dc7ddd18
lavc: Drop deprecated error rate option
...
Deprecated in 10/2013.
2017-03-23 10:09:14 +01:00
Clément Bœsch
e6be531a30
Merge commit '68811a41c70f019bde6df2a4f289674228c48958'
...
* commit '68811a41c70f019bde6df2a4f289674228c48958':
mpegvideo_enc: use the new encoding API for b_strategy=2
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-21 13:01:46 +01:00
Clément Bœsch
b2cb9191ea
Merge commit 'f03f78bc1c99b1e29624418e2f7315b8a47981e9'
...
* commit 'f03f78bc1c99b1e29624418e2f7315b8a47981e9':
mpegvideo_enc: handle encoding errors with b_strategy=2
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-21 12:57:02 +01:00
Clément Bœsch
70ca9b76e2
Merge commit '6f733ecab6faff2a16534f2ce7d2ffd41c07846b'
...
* commit '6f733ecab6faff2a16534f2ce7d2ffd41c07846b':
mpegvideo_enc: add const to the AVCodec instance
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-21 12:55:40 +01:00
Michael Niedermayer
3e1507a954
avcodec/mjpegenc: Bypass the 2 pass encoding when optimal tables are not requested
...
This limits the bugs, speedloss and extra memory allocation to the case when
optimal tables are needed.
Fixes regressions with slice multi-threading
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-10 00:12:01 +01:00
Jerry Jiang
884506dfe2
Implement optimal huffman encoding for (M)JPEG.
...
> seems to break
> make fate-vsynth1-mjpeg-444
Fixed.
2017-02-08 13:59:53 +00:00
Clément Bœsch
566bfd59c9
Merge commit 'd639dcdae022130078c9c84b7b691c5e9694786c'
...
* commit 'd639dcdae022130078c9c84b7b691c5e9694786c':
ratecontrol: Move Xvid-related functions to the place they are actually used
Merged-by: Clément Bœsch <u@pkh.me >
2017-02-01 14:21:36 +01:00
Diego Biurrun
a6901b9c6b
Drop libxvid rate control support for mpegvideo encoding
...
The feature has outlived is usefulness and complicates the code.
2016-12-11 09:27:40 +01:00
Michael Niedermayer
85407c7e63
avcodec/mpegvideo: Fix edge emu buffer overlap with interlaced mpeg4
...
Fixes Ticket5936
Regression since c5fc8ae126
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-11-17 12:21:48 +01:00
Michael Niedermayer
de0cd0ffc9
avcodec/mpegvideo_enc: Add missing emms_c() to clear MMX state after SIMD use
...
Fixes undefined behavior due to calling libc allocation with unclean FPU state
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-10-22 13:46:46 +02:00
Michael Niedermayer
03ec6b780c
avcodec/mpegvideo_enc: Clear mmx state in ff_mpv_reallocate_putbitbuffer()
...
This function must be called from the mb or slice encoding loop and MMX state may not
be clean there
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-10-21 14:17:50 +02:00
Anton Khirnov
68811a41c7
mpegvideo_enc: use the new encoding API for b_strategy=2
2016-09-28 10:01:52 +02:00
Anton Khirnov
f03f78bc1c
mpegvideo_enc: handle encoding errors with b_strategy=2
2016-09-28 10:01:52 +02:00
Anton Khirnov
6f733ecab6
mpegvideo_enc: add const to the AVCodec instance
2016-09-28 10:01:52 +02:00
Timo Rothenpieler
99b823f0a1
avcodec/mpegvideo_enc: fix memory leak
...
When the input frames contain side data, it will accumulate endlessly in
the coded frame, as av_frame_copy_props will append any new side data.
Fixes ticket #5799 .
2016-09-26 18:21:00 +02:00
Vittorio Giovara
d639dcdae0
ratecontrol: Move Xvid-related functions to the place they are actually used
...
This will simplify the de-MpegEncContextualization.
2016-07-20 18:59:36 +02:00
Vittorio Giovara
44972e227d
ratecontrol: Move mpegenc-only function where it is used
2016-07-20 18:59:36 +02:00
Clément Bœsch
a4403e49b9
Merge commit 'b7e64fba7f37cc0399beae844f0a5dbef9219376'
...
* commit 'b7e64fba7f37cc0399beae844f0a5dbef9219376':
Reduce the scope of some variables
Merged-by: Clément Bœsch <u@pkh.me >
2016-06-21 22:40:56 +02:00
Clément Bœsch
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
Diego Biurrun
b7e64fba7f
Reduce the scope of some variables
...
This avoids unused variable warnings after the next version bump.
Also drop a trace level av_log() call that is in the way.
2016-05-11 12:21:25 +02:00
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2016-05-04 18:16:21 +02:00