summaryrefslogtreecommitdiff
path: root/libavcodec/libx264.c
Commit message (Collapse)AuthorAge
* avcodec/libx264: add a check for the prft AVCodecContext export_side_data flagJames Almer2020-02-22
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libx264: export Producer Reference Time as packet side dataJames Almer2020-01-15
| | | | | | Taken from Wallclock at the time the frame is submitted to the encoder. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libx264: use AV_OPT_TYPE_DICT for x264-paramsMarton Balint2020-01-01
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* lavc/x264: Use FF_CODEC_CAP_INIT_THREADSAFE if x264 is new.Carl Eugen Hoyos2019-10-01
| | | | Usage of strtok() was removed from x264, see also b02490a4
* libavcodec/libx264: add a flag to output ROI warnings only once.Guo, Yejun2019-09-24
| | | | Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
* lavc/x264: Also clean-up libx264rgb after init errors.Carl Eugen Hoyos2019-08-25
| | | | Missed in c180f0f6
* lavc/libx264: Cast cpb bit_rates to int64_t to avoid an integer overflow.Carl Eugen Hoyos2019-08-10
| | | | Fixes remaining part of ticket #8071 on next version bump.
* lavc/libx264: Cast bit_rate to int64_t to avoid an integer overflow.Carl Eugen Hoyos2019-08-10
| | | | Fixes ticket #8071.
* lavc/libx264: bit_rates > INT_MAX are not supported.Carl Eugen Hoyos2019-08-10
|
* libx264: Update ROI behaviour to match documentationMark Thompson2019-07-07
| | | | | | | | Fix the quantisation offset - use the whole range, and don't change the offset size based on bit depth. Iterate the list in reverse order. The first region in the list is the one that applies in the case of overlapping regions.
* lavc/libx264: Use avctx->framerate first for frame rate settingJun Zhao2019-05-11
| | | | | | | | | | perfer avctx->framerate first than use avctx->time_base when setting the frame rate to encoder. 1/time_base is not the average frame rate if the frame rate is not constant. In this case, we need to setting avctx->framerate and avctx->time_base both, but avctx->framerate not equal to 1/(avctx->time_base). Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* avcodec/libx264: add support for ROI-based encodingGuo, Yejun2019-01-17
| | | | | | | | This patch just enables the path from ffmpeg to libx264, the more encoders can be added later. Signed-off-by: Guo, Yejun <yejun.guo@intel.com> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* libx264: Pass the reordered_opaque field through the encoderMartin Storsjö2018-11-05
| | | | | | | | | | | | | | libx264 does have a field for opaque data to pass along with frames through the encoder, but it is a pointer, while the libavcodec reordered_opaque field is an int64_t. Therefore, allocate an array within the libx264 wrapper, where reordered_opaque values in flight are stored, and pass a pointer to this array to libx264. Update the public libavcodec documentation for the AVCodecContext field to explain this usage, and add a codec capability that allows detecting whether an encoder handles this field. Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/libx264: remove FF_CODEC_CAP_INIT_THREADSAFE flagMarton Balint2018-10-24
| | | | | | | | | | | | | Libx264 uses strtok which is not thread safe. Strtok is used in x264_param_default_preset in param_apply_tune in x264/common/base.c. Therefore the flag must be removed. x264 fixed the issue, once the fix is pushed to stable, an #if can be added to re-enable the flag based on X264_BUILD number. Fixes ticket #7446. Signed-off-by: Marton Balint <cus@passwd.hu>
* lavc/libx264: Support monochrome encoding.Carl Eugen Hoyos2018-08-07
|
* Merge commit 'c6558e8840fbb2386bf8742e4d68dd6e067d262e'James Almer2017-12-27
|\ | | | | | | | | | | | | | | | | | | | | * commit 'c6558e8840fbb2386bf8742e4d68dd6e067d262e': x264: Support version 153 See 2a111c99a60fdf4fe5eea2b073901630190c6c93 7e60c74329353db28db00552028bc88cd2a52346 Merged-by: James Almer <jamrial@gmail.com>
| * x264: Support version 153Luca Barbato2017-12-27
| | | | | | | | It has native simultaneus 8 and 10 bit support.
| * avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | avcodec/libx264: set supported pix_fmts at runtime rather than build timeJames Almer2017-12-26
| | | | | | | | | | | | This partially reverts a change in behavior introduced in 2a111c99a60fdf4fe5eea2b073901630190c6c93. Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/libx264: fix compilation with x264 builds >= 153James Almer2017-12-26
| | | | | | | | | | | | | | | | x264 now supports multibitdepth builds, with a slightly changed API to request bitdepth during initialization. Reviewed-by: Ricardo Constantino <wiiaboo@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/libx264: use the pixfmt descriptor to check for high bit depthsJames Almer2017-12-25
| | | | | | | | | | | | The x264_bit_depth constant has been removed in newer x264 builds. Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Merges Libav commit 47687a2f8aca3f65b6fdd117b1cb66a7409a7fd1.
* | Merge commit '94eed68ace9f2416af8457fcbf142b175928c06b'James Almer2017-10-23
|\| | | | | | | | | | | | | * commit '94eed68ace9f2416af8457fcbf142b175928c06b': lavc: Drop deprecated options moved to private contexts Merged-by: James Almer <jamrial@gmail.com>
| * lavc: Drop deprecated options moved to private contextsVittorio Giovara2017-03-23
| | | | | | | | Deprecated in 10/2014 and 07/2015.
* | avcodec/libx264: add me_method alias to set X264Context->motion_estJames Almer2017-10-23
| | | | | | | | | | | | | | | | | | Replaces the now dropped global option. Addresses ticket #6771. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/libx264: fix forced_idr logicTimo Rothenpieler2016-11-22
| | | | | | | | | | | | | | | | Currently, it forces IDR frames for both true and false. Not entirely sure what the original idea behind the tri-state bool option is. Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | lavc: Enable a53cc by default for x264 and qsv_h264.Carl Eugen Hoyos2016-09-14
| |
* | libx264: Increase x264 opts character limit to 4096Sasi Inguva2016-07-22
| | | | | | | | | | Signed-off-by: Sasi Inguva <isasi@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/libx264: Remove unused variableMichael Niedermayer2016-06-23
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec: factor out SEI generation for A53 captionsAndrey Turkin2016-06-19
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Seperate x264rgb encoder and only enable when its actually supportedMichael Niedermayer2016-06-05
| | | | | | | | | | | | | | This avoids enabling and building the x264rgb encoder when its actually not supported and thus would not work Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '5fca95c8e515a5ae542d9626ec088bdfc658450e'Derek Buitenhuis2016-05-12
|\| | | | | | | | | | | | | * commit '5fca95c8e515a5ae542d9626ec088bdfc658450e': libx264: Forbid inverted Stereo3D mode Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * libx264: Forbid inverted Stereo3D modeVittorio Giovara2016-04-21
| |
* | Merge commit '9e2af0e9071a1229cfe21efff394691d91f979b2'Derek Buitenhuis2016-05-12
|\| | | | | | | | | | | | | * commit '9e2af0e9071a1229cfe21efff394691d91f979b2': libx264: Allow Stereo3D monoscopic value Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * libx264: Allow Stereo3D monoscopic valueVittorio Giovara2016-04-21
| |
| * libx264: Fix noise_reduction option assignmentVittorio Giovara2016-02-22
| | | | | | | | | | First check the context, then check internal option. Drop the ! typo. Introduced in 60f0fde3092d18d4d36555962c192af8691a099c.
| * libx264: Make sure to preserve default option valuesVittorio Giovara2016-02-01
| | | | | | | | | | | | | | | | The private options chromaoffset, sc_threshold, and noise_reduction were set to 0 rather than -1, and were always initializing values in libx264 rather than letting the library use its default. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '936f0d98f864f9f6bb4f9e5458b78537e146bacd'Derek Buitenhuis2016-01-31
|\| | | | | | | | | | | | | * commit '936f0d98f864f9f6bb4f9e5458b78537e146bacd': lavc: Move rtp_payload_size to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | libx264: Make sure to preserve default option valuesVittorio Giovara2016-01-28
| | | | | | | | | | | | | | | | The private options chromaoffset, sc_threshold, and noise_reduction were set to 0 rather than -1, and were always initializing values in libx264 rather than letting the library use its default. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/libx264: Fix sc_threshold after 30c1bdb87ce336f2b9957769e30a10d72f93d372Michael Niedermayer2016-01-28
| | | | | | | | | | | | | | | | | | After the merge the default threshold was unconditionally overwritten A similar fix was written by Vittorio Giovara, but i didnt see that before i wrote this and it also doesnt apply cleanly Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '1482aff2048511b821ff9feac19426113cc641a2'Derek Buitenhuis2016-01-28
|\| | | | | | | | | | | | | * commit '1482aff2048511b821ff9feac19426113cc641a2': lavc: Move noise_reduction to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move noise_reduction to codec private optionsVittorio Giovara2016-01-21
| | | | | | | | | | | | | | This option is only used by mpegvideoenc, x264, xavs, and vpx. It is a very codec-specific option, so deprecate the global variant. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '7c79587d7407dab4b9445d66b5f111fe657c8c4d'Derek Buitenhuis2016-01-28
|\| | | | | | | | | | | | | * commit '7c79587d7407dab4b9445d66b5f111fe657c8c4d': lavc: Move scenechange_threshold to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move scenechange_threshold to codec private optionsVittorio Giovara2016-01-21
| | | | | | | | | | | | | | This option is only used by mpegvideoenc, x264, and xavs. It is a very codec-specific option, so deprecate the global variant. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '5764d38173661c29d954711dd5abfddf709e9ba4'Derek Buitenhuis2016-01-28
|\| | | | | | | | | | | | | * commit '5764d38173661c29d954711dd5abfddf709e9ba4': lavc: Move chromaoffset to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move chromaoffset to codec private optionsVittorio Giovara2016-01-21
| | | | | | | | | | | | | | This option is only used by x264 and xavs. It is a very codec-specific option, so deprecate the global variant. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92'Derek Buitenhuis2016-01-27
|\| | | | | | | | | | | | | * commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92' lavc: Move b_frame_strategy and b_sensitivity to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move b_frame_strategy and b_sensitivity to codec private optionsVittorio Giovara2016-01-21
| | | | | | | | | | | | | | | | | | | | The b_frame_strategy option is only used by mpegvideoenc, qsv, x264, and xavs, while b_sensitivity is only used by mpegvideoenc. These are very codec-specific options, so deprecate the global variants. Set proper limits to the maximum allowed values. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avutil: Rename FF_CEIL_COMPAT to AV_CEIL_COMPATDerek Buitenhuis2016-01-27
| | | | | | | | | | | | | | | | | | | | Libav, for some reason, merged this as a public API function. This will aid in future merges. A define is left for backwards compat, just in case some person used it, since it is in a public header. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | lavc/x264: Add compatibility values for coder options.Carl Eugen Hoyos2016-01-10
| | | | | | | | Fixes ticket #5142.