summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* lavc/nvenc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUEAnton Khirnov2023-01-29
|
* lavc/librav1e: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUEAnton Khirnov2023-01-29
|
* lavc/encode: pass through frame durations to encoded packetsAnton Khirnov2023-01-29
| | | | | | The generic code can only handle the no-delay case. Encoders with delay need to be handled individually, which will be done in the following commits.
* lavc: support AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE in all no-delay encodersAnton Khirnov2023-01-29
| | | | Including fake-delay encoders marked with FF_CODEC_CAP_EOF_FLUSH.
* lavc: add a codec flag for propagating opaque from frames to packetsAnton Khirnov2023-01-29
| | | | | | | | | This is intended to be a more convenient replacement for reordered_opaque. Add support for it in the two encoders that offer AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE: libx264 and libx265. Other encoders will be supported in future commits.
* lavc: add a private cap for fake-delay encodersAnton Khirnov2023-01-29
| | | | | | | | | Some encoders (ffv1, flac, adx) are marked with AV_CODEC_CAP_DELAY onky in order to be flushed at the end, otherwise they behave as no-delay encoders. Add a capability to mark these encoders. Use it for setting pts generically.
* lavc/avcodec: improve AV_CODEC_FLAG_RECON_FRAME doxyAnton Khirnov2023-01-29
| | | | | | Do not break a sentence on a period after "i.e.". Link to the definition of AV_CODEC_CAP_ENCODER_RECON_FRAME.
* lavc/avcodec: improve enc/dec API doxyAnton Khirnov2023-01-29
| | | | Change return value descriptions into lists of @retval
* doc/ffmpeg: drop non-existent -dc optionAnton Khirnov2023-01-29
|
* fftools/ffmpeg: add an AVClass to MuxStream/OutputStreamAnton Khirnov2023-01-29
| | | | | Use it for logging. This makes log messages related to this output stream more consistent.
* fftools/ffmpeg: add an AVClass to Muxer/OutputFileAnton Khirnov2023-01-29
| | | | | Use it for logging. This makes log messages related to this output file more consistent.
* fftools/ffmpeg: add options for writing encoding statsAnton Khirnov2023-01-29
| | | | | | | Similar to -vstats, but more flexible: - works for audio as well as video - frame and/or packet information - user-specifiable format
* avcodec/utils: use 32pixel alignment for binkMichael Niedermayer2023-01-28
| | | | | | | | | | bink supports 16x16 blocks in chroma planes thus we need to allocate enough. Fixes: out of array access Fixes: 55026/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BINK_fuzzer-6013915371012096 Reviewed-by: Peter Ross <pross@xvid.org> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vf_ssim360: Constify AVFilterAndreas Rheinhardt2023-01-28
| | | | | | | | This brings ff_vf_ssim360 in line with its declaration in allfilters.c; this discrepancy is actually undefined behaviour. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_ssim360: Don't initialize twiceAndreas Rheinhardt2023-01-28
| | | | | | | | | | The FILTER_INPUTS and FILTER_OUTPUTS macros already set AVFilter.(inputs|outputs); Clang therefore emits a warning for this: "initializer overrides prior initialization of this subobject [-Winitializer-overrides]" Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_ssim360: Fix left-shift of negative valueAndreas Rheinhardt2023-01-28
| | | | | Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavfi/vf_ssim360: Fix compilation with MSVCMartin Storsjö2023-01-28
| | | | | | | | | Don't use "static const" for compile time float constants, but use defines. This fixes the following error: src/libavfilter/vf_ssim360.c(549): error C2099: initializer is not a constant Signed-off-by: Martin Storsjö <martin@martin.st>
* lavfi: Add vf_ssim360 filterShannon Chen2023-01-28
| | | | | | | | | | | | | Customized SSIM for various projections (and stereo formats) of 360 images and videos. Further contributions by: Ashok Mathew Kuruvilla Matthieu Patou Yu-Hui Wu Anton Khirnov Suggested-By: ffmpeg@fb.com Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avfilter/f_reverse: set output frame durationPaul B Mahol2023-01-27
|
* avfilter/vf_ciescope: set output frame durationPaul B Mahol2023-01-27
|
* avfilter/vf_tpad: set output frame durationPaul B Mahol2023-01-27
|
* avfilter/vf_random: set output frame durationPaul B Mahol2023-01-27
|
* avfilter/vf_datascope: call av_frame_copy_props()Paul B Mahol2023-01-27
|
* avcodec: add CBD2 DPCM decoderPaul B Mahol2023-01-27
|
* avcodec/wmaprodec: add missing flush call for xma1Paul B Mahol2023-01-27
|
* libavcodec/amfenc: add AV1 encoding supportDmitrii Ovchinnikov2023-01-27
| | | | Tested-by: Jean-Baptiste Kempf <jb@videolan.org>
* amfenc: Update the min version to 1.4.28.0 for AMF SDK.Dmitrii Ovchinnikov2023-01-27
| | | | Tested-by: Jean-Baptiste Kempf <jb@videolan.org>
* avfilter/af_adynamicequalizer: add auto optionPaul B Mahol2023-01-27
|
* avfilter/vf_cropdetect: fix type for old_limitAshyni2023-01-27
|
* avcodec/ffv1: use 64-bit frame counterMarton Balint2023-01-26
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/ratecontrol: drop remnants of libxvid rate controlMarton Balint2023-01-26
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/mpegvideo_enc: remove picture_number parameter from encode functionsMarton Balint2023-01-26
| | | | | | They are unused. Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/rv20enc: use MpegEncContext->picture_number instead of encode ↵Marton Balint2023-01-26
| | | | | | | | function parameter They should be the same and that is what most encode functions use. Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/mpeg4videoenc: use MpegEncContext->picture_number instead of encode ↵Marton Balint2023-01-26
| | | | | | | | function parameter They should be the same and that is what most encode functions use. Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/videotoolbox: don't use av_ prefix for local functionZhao Zhili2023-01-26
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/videotoolbox: fix documents of AVVideotoolboxContextZhao Zhili2023-01-26
| | | | | | | Since those fields will be overridden by videotoolbox_start(), they should never be set by user, it can trigger memory leaks otherwise. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/videotoolbox: deprecate creating AVVideotoolboxContext by userZhao Zhili2023-01-26
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/videotoolbox: prefer hw_frames_ctx/hw_device_ctx over hwaccel_contextZhao Zhili2023-01-26
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/videotoolbox: fix NULL pointer dereferenceZhao Zhili2023-01-26
| | | | | | | | | | | | In the code path of av_videotoolbox_default_init/init2(), avctx->internal->hwaccel_priv_data is NULL and passed to decoder_cb.decompressionOutputRefCon. Then it will be dereferenced inside videotoolbox_decoder_callback(). Delay videotoolbox_star() until ff_videotoolbox_common_init() to fix the bug. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat/teeproto: setup max_packet_sizeZhao Zhili2023-01-26
| | | | | | | | | | | It's the minimum of all child protocols max_packet_size. Can be used like this: ffmpeg -re -i cctv.mp4 -c copy -f mpegts \ -protocol_whitelist 'tee,file,udp' \ 'tee:out.ts|udp://127.0.0.1:6666?pkt_size=1316' Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avutil/hwcontext_mediacodec: fix backward compatibilityZhao Zhili2023-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | AVMediaCodecDeviceContext without surface or native_window is useless, it shouldn't be created at all. Such dummy AVHWDeviceContext is allowed before, and it's used by mpv player. Creating a ANativeWindow automatically breaks such usecases. So disable creating a ANativeWindow by default. It can be enabled via the create_window flag, or by set the AVDictionary of av_hwdevice_ctx_create(). The downside is that ffmpeg -hwaccel mediacodec -i input.mp4 \ -c:a copy -c:v hevc_mediacodec output.mp4 use ByteBuffer mode which isn't as efficient as before. The upside is libavfilter works now, which should be less surprise. To enable create_window on ffmpeg command line, use ffmpeg -hwaccel mediacodec \ -init_hw_device mediacodec=mediacodec,create_window=1 \ -i input.mp4 -c:a copy -c:v hevc_mediacodec output.mp4 Users should know what it is to enable create_window. It should be OK to take sometime to figure out the option. And there are comments inside hwcontext_mediacodec.h to help user figure it out. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat/bonk: remove unused variablePaul B Mahol2023-01-25
|
* avcodec/png: support cICP chunksLeo Izen2023-01-25
| | | | | | | | | | | | | | | | | | | | | This commit adds both decode and encode support for cICP chunks, which allow a PNG image's pixel data to be tagged by any of the enum values in H.273, without an ICC profile. Upon decode, if a cICP chunk is present, the PNG decoder will tag output AVFrames with the resulting enum color, and ignore iCCP, sRGB, gAMA, and cHRM chunks, as per the spec. Upon encode, if the color space is known and specified, and it is not sRGB, the PNG encoder will output a cICP chunk containing the color space. If the color space is sRGB, then it will output an sRGB chunk instead of a cICP chunk. If the color space of the input is not unspecified, it will not output a cICP chunk tagging the PNG as unspecified. In either the sRGB case or the non-SRGB case, gAMA and cHRM are still written as fallbacks provided the info is known. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* avcodec/pngdec: support decoding sRGB chunksLeo Izen2023-01-25
| | | | | | | | | | | | | | | If an sRGB chunk is present in the PNG file, this commit will cause the png decoder to ignore the cHRM and gAMA chunks and tag the resulting AVFrames with BT.709 primaries, and ISO/IEC 61966-2-1 transfer. If these tags are present in the AVFrame, pngenc.c already writes this chunk, so no change was needed on the encode-side. The PNG spec does not define what happens if sRGB and iCCP are present at the same time, it just recommends that this not happen. As of this patch, the decoder will have the ICC profile take precedence, and it will not tag the pixel data as sRGB. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* avcodec/png: use libavutil/csp.h for cHRM chunksLeo Izen2023-01-25
| | | | | | | | | | | | | | | | | | | | | | | | The cHRM chunk is descriptive. That is, it describes the primaries that should be used to interpret the pixel data in the PNG file. This is notably different from Mastering Display Metadata, which describes which subset of the presented gamut is relevant. MDM describes a gamut and says colors outside the gamut are not required to be preserved, but it does not actually describe the gamut that the pixel data from the frame resides in. Thus, to decode a cHRM chunk present in a PNG file to Mastering Display Metadata is incorrect. This commit changes this behavior so the cHRM chunk, if present, is decoded to color metadata. For example, if the cHRM chunk describes BT.709 primaries, the resulting AVFrame will be tagged with AVCOL_PRI_BT709, as a description of its pixel data. To do this, it utilizes libavutil/csp.h, which exposes a funcction av_csp_primaries_id_from_desc, to detect which enum value accurately describes the white point and primaries represented by the cHRM chunk. This commit also changes pngenc.c to utilize the libavuitl/csp.h API, since it previously duplicated code contained in that API. Instead, taking advantage of the API that exists makes more sense. pngenc.c does properly utilize the color tags rather than incorrectly using MDM, so that required no change. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* ffprobe: fix data hash renderingStefano Sabatini2023-01-24
| | | | | | | | Print data hash before side data list, fix wrong nesting level of data hash element. In particular, fix trac issue: http://trac.ffmpeg.org/ticket/7217
* ffprobe: use pkt->dts to compute interval ts when pts is missingStefano Sabatini2023-01-24
| | | | | | | | For some samples the pkt->pts is always missing, use the pkt->dts instead. Fix trac issue: http://trac.ffmpeg.org/ticket/4427
* cbs_av1: Remove constraint on MDCV luminance valuesMark Thompson2023-01-24
| | | | | While desiring min to be less than max feels entirely sensible, unfortunately the standard does not actually have this requirement.
* avfilter/vf_scdet: fix introduced discrepancy with latest changePaul B Mahol2023-01-24
|
* avfilter/vf_cropdetect: add ability to change limit at runtimeAshyni2023-01-24
| | | | | | Fixes: https://trac.ffmpeg.org/ticket/9851 Signed-off-by: Ashyni <jeffrey.c@tuta.io>