summaryrefslogtreecommitdiff
path: root/doc
Commit message (Collapse)AuthorAge
* lavc: add API for exporting reconstructed frames from encodersAnton Khirnov2022-08-02
|
* lavu/frame: allow calling av_frame_make_writable() on non-refcounted framesAnton Khirnov2022-08-02
| | | | | This is an easy way to make a refcounted frame from a non-refcounted one.
* lavfi/cropdetect: Add new mode to detect crop-area based on motion vectors ↵Thilo Borgmann2022-07-30
| | | | | | and edges This filter allows crop detection even if the video is embedded in non-black areas.
* avcodec: add API for automatic handling of icc profilesNiklas Haas2022-07-30
| | | | | | | | | | | | | | | This functionally already exists, but as pointed out in #9672 and #9673, requiring users to manually include filters is clumsy, error-prone and hard to use together with tools like ffplay. To streamline ICC profile support, add a new AVCodecContext flag to globally enable reading and writing ICC profiles, automatically, for all appropriate media types. Note that this commit only includes the new API. The implementation is split off to separate commits for readability. Signed-off-by: Niklas Haas <git@haasn.dev>
* fftools/ffmpeg: deprecate the -map_channel optionAnton Khirnov2022-07-28
| | | | | It is now entirely redundant with audio filters, and is in fact implemented by setting up a 'pan' filter instance.
* fftools/ffmpeg: deprecate -psnrAnton Khirnov2022-07-28
| | | | It is entirely redundant with -flags +psnr.
* fftools/ffmpeg: move each muxer to a separate threadAnton Khirnov2022-07-23
|
* fftools/ffmpeg: rework -shortest implementationAnton Khirnov2022-07-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The -shortest option (which finishes the output file at the time the shortest stream ends) is currently implemented by faking the -t option when an output stream ends. This approach is fragile, since it depends on the frames/packets being processed in a specific order. E.g. there are currently some situations in which the output file length will depend unpredictably on unrelated factors like encoder delay. More importantly, the present work aiming at splitting various ffmpeg components into different threads will make this approach completely unworkable, since the frames/packets will arrive in effectively random order. This commit introduces a "sync queue", which is essentially a collection of FIFOs, one per stream. Frames/packets are submitted to these FIFOs and are then released for further processing (encoding or muxing) when it is ensured that the frame in question will not cause its stream to get ahead of the other streams (the logic is similar to libavformat's interleaving queue). These sync queues are then used for encoding and/or muxing when the -shortest option is specified. A new option – -shortest_buf_duration – controls the maximum number of queued packets, to avoid runaway memory usage. This commit changes the results of the following tests: - copy-shortest[12]: the last audio frame is now gone. This is correct, since it actually outlasts the last video frame. - shortest-sub: the video packets following the last subtitle packet are now gone. This is also correct.
* libavcodec/qsvenc: Use parameter from AVCodecContext to reset qsv codecWenbin Chen2022-07-20
| | | | | | | | | | | | | | | Using parameter from AVCodecContext to reset qsv codec is more suitable for MFXVideoENCODE_Reset()'s usage. Per-frame metadata is more suitable for the usage of mfxEncodeCtrl being passed to MFXVideoENCODE_EncodeFrameAsync(). Now change it to use the value from AVCodecContext. Because q->param is passed to both "in" and "out" parameters when call MFXVideoENCODE_Query(), the value in q->param may be changed. New variables are added to store old configuration, so that we can detect real parameter change. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* ffprobe: print AVFrame.durationAnton Khirnov2022-07-19
|
* lavfi: use AVFrame.duration instead of AVFrame.pkt_durationAnton Khirnov2022-07-19
|
* lavu/frame: add a duration field to AVFrameAnton Khirnov2022-07-19
| | | | | | | | | The only duration field currently present in AVFrame is pkt_duration, which is semantically restricted to those frames that are output by decoders. Add a new field that stores the frame's duration without regard for how that frame was produced. Deprecate pkt_duration.
* avfilter: add vsrc_ddagrabTimo Rothenpieler2022-07-18
|
* avcodec: add Radiance HDR image format supportPaul B Mahol2022-07-16
|
* ffmpeg: add option -isyncGyan Doshi2022-07-14
| | | | | | | | | | | | This is a per-file input option that adjusts an input's timestamps with reference to another input, so that emitted packet timestamps account for the difference between the start times of the two inputs. Typical use case is to sync two or more live inputs such as from capture devices. Both the target and reference input source timestamps should be based on the same clock source. If either input lacks starting timestamps, then no sync adjustment is made.
* doc/APIchanges: Add 5.1 branch cutpointMichael Niedermayer2022-07-13
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* doc/APIchanges: Fill in missing thingsMichael Niedermayer2022-07-12
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* doc/APIchanges: Extend hash which has become ambiguousMichael Niedermayer2022-07-12
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter: add chromakey_cuda filterMohamed Khaled Mohamed2022-07-10
| | | | | | | | | | | | GSoC'22 libavfilter/vf_chromakey_cuda.cu:the CUDA kernel for the filter libavfilter/vf_chromakey_cuda.c: the C side that calls the kernel and gets user input libavfilter/allfilters.c: added the filter to it libavfilter/Makefile: added the filter to it cuda/cuda_runtime.h: added two math CUDA functions that are used in the filter Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avfilter/vf_xfade: add two more transitionsPaul B Mahol2022-07-09
|
* avfilter: add remap opencl filterPaul B Mahol2022-07-07
|
* avfilter/xstack: Add support for fixed size gridVignesh Venkatasubramanian2022-07-04
| | | | | | | | | | | | Add a short hand parameter for making a fixed size grid. The existing xstack layout parameter syntax gets tedious if all one wants is a matrix like grid of the input streams. Add a grid option to the xstack filter that simplifies this use case by simply specifying the number of rows and columns instead of specific x/y co-ordinate for each stream. Also updating the filter documentation to explain the new option. Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
* doc/ffmpeg: correct description of -shortestGyan Doshi2022-07-04
| | | | | | -shortest stops 'recording' when the shortest output stream ends. The native or even seek-adjusted duration of the source input stream isn't considered.
* avcodec: add PHM decoder and encoderPaul B Mahol2022-07-03
|
* avformat/hls: add #EXT-X-START tag support by prefer_x_start optLi Kai2022-06-29
| | | | | Reviewed-by: Steven Liu <liuqi05@kuaishou.com> Signed-off-by: Li Kai <wolfleekay@gmail.com>
* avformat/hlsenc: Use HLS version 2 if rounded durations are enabledLucy2022-06-29
| | | | | | | | | | | | | | | | | This allows for wider compatibility with older devices, such as those running iOS 3. The only difference between HLS version 2 and version 3 is that version 3 supports non-integer EXTINF values, and as such, we can default to version 2 if we're using whole-integer EXTINFs anyways, when `-hls_flags round_durations` is set. As this code seems to otherwise consistently use the lowest compatible version, this seems to fit in properly with existing behavior. Testing confirms with that this patch, HLS output can work all the way back to iOS 3. Reviewed-by: Steven Liu <liuqi05@kuaishou.com> Signed-off-by: Lucy <lucy@absolucy.moe>
* libavcodec/qsvenc: Enable fixed QP configure in qsv CQP runtimeYue Heng2022-06-27
| | | | | | | | | | Enable dynamic QP configuration in runtime on qsv encoder. Through AVFrame->metadata, we can set key "qsv_config_qp" to change QP configuration when we encode video in CQP mode. Signed-off-by: Yue Heng <yue.heng@intel.com> Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avfilter/vf_estdif: tweak ecost optionPaul B Mahol2022-06-21
|
* doc/decoders: add docs for v210 decoderMarton Balint2022-06-20
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avdevice/pulse_audio_dec: deprecate frame_size optionMarton Balint2022-06-16
| | | | | | It does not do anything. Frame sizes can be controlled by using fragment_size. Signed-off-by: Marton Balint <cus@passwd.hu>
* avdevice/pulse_audio_dec: reduce default fragment sizeMarton Balint2022-06-16
| | | | | | | | | | | | | Reduces default fragment size from the pulse audio default of 2 sec to 50 ms. This also has an effect on the size of the returned frames, which will be around 50 ms as well, making timestamps more accurate. This should fix the regression in ticket #9776. Pulseaudio timestamps for monitor sources are still pretty inaccurate for me, but I don't see how else should we query latencies from the library. Signed-off-by: Marton Balint <cus@passwd.hu>
* doc: describe QOI image formatPeter Ross2022-06-16
|
* avfilter: add virtualbass filterPaul B Mahol2022-06-16
|
* doc/APIchanges: add missing marker for release 5.0Gyan Doshi2022-06-16
|
* doc/APIchanges: add missing uuid and csp entriesZane van Iperen2022-06-13
| | | | | Signed-off-by: Zane van Iperen <zane@zanevaniperen.com> Signed-off-by: James Almer <jamrial@gmail.com>
* ffprobe: add -o optionStefano Sabatini2022-06-13
| | | | | | | | | | This enables printing to a resource specified with -o OUTPUT. In case the output is not specified, prints to stdout as usual. Address issue: http://trac.ffmpeg.org/ticket/8024 Signed-off-by: Marton Balint <cus@passwd.hu>
* lavf/avio: add avio_vprintf()Stefano Sabatini2022-06-13
| | | | | | | This new function makes it possible to use avio_printf() functionality from a function taking a variable list of arguments. Signed-off-by: Marton Balint <cus@passwd.hu>
* doc/ffmpeg: fix typo in VCD creation exampleMarton Balint2022-06-12
| | | | | | Fixes ticket #9753. Signed-off-by: Marton Balint <cus@passwd.hu>
* ffmpeg: add option fps_modeGyan Doshi2022-06-11
| | | | | | | fps_mode sets video sync per output stream. Overrides vsync for matching streams. vsync is deprecated.
* avformat/librist: allow setting fifo size and fail on overflowGijs Peskens2022-06-09
| | | | | | | | | | Introduce fifo_size and overrun_nonfatal params to configure fifo buffer behavior. Use newly introduced RIST_DATA_FLAGS_OVERFLOW flag to check for overrun and error out in that case. Signed-off-by: Marton Balint <cus@passwd.hu>
* libavcodec/qsvenc: Add min/max QP control options for I/P/B frameYue Heng2022-06-06
| | | | | | | | | To do more accurate QP control, add min/max QP control on I/P/B frame separately to qsv encoder. qmax and qmin still work but newly-added options have higher priority. Signed-off-by: Yue Heng <yue.heng@intel.com> Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
* doc/vaapi_encode: add documentations for max_frame_sizeLinjie Fu2022-06-06
| | | | | | | Add docs for max_frame_size option. Signed-off-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* avfilter: add tiltshelf audio filterPaul B Mahol2022-05-29
|
* doc/protocols: add details and reformat IPFS sectionGyan Doshi2022-05-26
|
* doc/protocols: sort IPFS section alphabeticallyGyan Doshi2022-05-26
|
* avfilter: Add blockdetect filterThilo Borgmann2022-05-24
|
* libavutil: Deprecate av_fopen_utf8, provide an avpriv versionMartin Storsjö2022-05-23
| | | | | | | | | | | | | | | | | | | | | | Since every DLL can use an individual CRT on Windows, having an exported function that opens a FILE* won't work if that FILE* is going to be used from a different DLL (or from user application code). Internally within the libraries, the issue can be worked around by duplicating the function in all libraries (this already happened implicitly because the function resided in file_open.c) and renaming the function to ff_fopen_utf8 (so that it doesn't end up exported from the DLLs) and duplicating it in all libraries that use it. This makes the avpriv_fopen_utf8 / ff_fopen_utf8 function work in the exact same way as the existing avpriv_open / ff_open, with the same setup as introduced in e743e7ae6ee7e535c4394bec6fe6650d2b0dbf65. That mechanism doesn't work for external users, thus deprecate the existing function. Signed-off-by: Martin Storsjö <martin@martin.st>
* doc/muxers: note write_btrt option for MOV/MP4Gyan Doshi2022-05-16
|
* avfilter/af_afir: add support for double sample formatPaul B Mahol2022-05-15
|
* avfilter/af_acrossover: add precision optionPaul B Mahol2022-05-14
|