Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/doc
AgeCommit message (Collapse)Author
2022-09-13doc: reference the RISC-V specificationRémi Denis-Courmont
2022-09-09libavcodec/qsvenc: Add low_delay_brc reset support to qsvencWenbin Chen
Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-09-09libavcodec/qsvenc: Add max/min qp reset support in qsvencWenbin Chen
Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-09-09libavcodec/qsvenc: Add intra refresh reset support to qsvencWenbin Chen
Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-09-09libavcodec/qsvenc: Add "slice" intra refresh type to qsvencWenbin Chen
Add "slice" intra refresh type to h264_qsv and hevc_qsv. This type means horizontal refresh by slices without overlapping. Also update the doc. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-09-09libavcodec/qsvenc: Add gop_size reset support to qsvencWenbin Chen
Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-09-09libavcodec/qsvenc: Add max_frame_size reset support to qsvWenbin Chen
Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-09-07lavc/qsvenc: use VBR if maxrate is not specified on WindowsHaihao Xiang
Currently AVBR is disabled and VBR is the default method if maxrate is not specified on Linux, but AVBR is the default one if maxrate is not specified on Windows. In order to make user experience better accross Linux and Windows, use VBR by default on Windows if maxrate is not specified. User need to set both avbr_accuracy and avbr_convergence to non-zero explicitly and not to specify maxrate if AVBR is expected. In addition, AVBR works for H264 and HEVC only in the SDK. $ ffmpeg.exe -v verbose -f lavfi -i yuvtestsrc -vf "format=nv12" -c:v vp9_qsv -f null -
2022-09-05fftools/ffprobe: Report initial and trailing paddingAndreas Rheinhardt
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-09-04lavu/pixfmt: Add P012, Y212, XV30, and XV36 formatsPhilip Langdale
These are the formats we want/need to use when dealing with the Intel VAAPI decoder for 12bit 4:2:0, 12bit 4:2:2, 10bit 4:4:4 and 12bit 4:4:4 respectively. As with the already supported Y210 and YUVX (XVUY) formats, they are based on formats Microsoft picked as their preferred 4:2:2 and 4:4:4 video formats, and Intel ran with it. P12 and Y212 are simply an extension of 10 bit formats to say 12 bits will be used, with 4 unused bits instead of 6. XV30, and XV36, as exotic as they sound, are variants of Y410 and Y412 where the alpha channel is left formally undefined. We prefer these over the alpha versions because the hardware cannot actually do anything with the alpha channel and respecting it is just overhead. Y412/XV46 is a normal looking packed 4 channel format where each channel is 16bits wide but only the 12msb are used (like P012). Y410/XV30 packs three 10bit channels in 32bits with 2bits of alpha, like A/X2RGB10 style formats. This annoying layout forced me to define the BE version as a bitstream format. It seems like our pixdesc infrastructure can handle the LE version being byte-defined, but not when it's reversed. If there's a better way to handle this, please let me know. Our existing X2 formats all have the 2 bits at the MSB end, but this format places them at the LSB end and that seems to be the root of the problem.
2022-09-03avutil/file: Properly deprecate av_tempfile()Andreas Rheinhardt
It has been deprecated in b4f59beeb4c2171879d0d7607a4a7d6165f07791, but the attribute_deprecated was not set and there was no entry in APIchanges. This commit adds these and schedules it for removal. Given that the reason behind the deprecation is exactly the same as in av_fopen_utf8(), reuse its FF_API_AV_FOPEN_UTF8. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-09-03avfilter: add bilateral_cuda filterMohamed Khaled Mohamed
GSoC 2022 Signed-off-by: Mohamed Khaled <mohamed.elbassiony00@eng-st.cu.edu.eg> Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2022-09-03avfilter: add 3D scope multimedia filterPaul B Mahol
2022-08-28doc/git-howto.texi: Document commit signingMichael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-08-26lavu/pixfmt: Introduce VUYX formatPhilip Langdale
This is the alphaless version of VUYA that I introduced recently. After further discussion and noting that the Intel vaapi driver explicitly lists XYUV as a support format for encoding and decoding 8bit 444 content, we decided to switch our usage and avoid the overhead of having a declared alpha channel around. Note that I am not removing VUYA, as this turned out to have another use, which was to replace the need for v408enc/dec when dealing with the format. The vaapi switching will happen in the next change
2022-08-23qsvenc_{hevc,h264}: add scenario optionHaihao Xiang
User may get better experience after providing corresponding senario hint to encoder for the encoding session. See [1] for scenario support in the SDK [1]https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#scenarioinfo
2022-08-23libavcodec/qsvenc: Add adaptive_i/b to hevc_qsvWenbin Chen
Add adaptive_i/b feature to hevc_qsv. Adaptive_i allows changing of frame type from P and B to I. Adaptive_b allows changing of frame type frome B to P. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2022-08-22lavf: deprecate av_stream_get_end_pts()Anton Khirnov
According to its documentation it returns "pts of the last muxed packet + its duration", but the value it actually returns right now is (possibly guessed) dts after muxer-internal bitstream filtering (if any). This function was added for ffmpeg.c, but it is not used there anymore. Since the value it returns is ill-defined and so inappropriate for any serious use, deprecate it.
2022-08-20APIchanges: fix library version in the latest entryJames Almer
Also add commit hash and date while at it. Signed-off-by: James Almer <jamrial@gmail.com>
2022-08-20The vuya pixel format was recently added, so this lavc workaround is no longerJames Almer
needed. Signed-off-by: James Almer <jamrial@gmail.com>
2022-08-18doc: fix binary values of SI prefixesChema Gonzalez
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-08-16doc/APIchanges: add missing rgbaf16 pixfmt entryTimo Rothenpieler
2022-08-12lavu/hwcontext_qsv: add loader field to AVQSVDeviceContextHaihao Xiang
In oneVPL, a valid mfxLoader handle is needed when creating mfx session for decoding, encoding and processing[1], so add loader field to AVQSVDeviceContext. User should fill this field before calling av_hwdevice_ctx_init() if using oneVPL This is in preparation for oneVPL support [1]https://spec.oneapi.io/versions/latest/elements/oneVPL/source/programming_guide/VPL_prg_session.html#onevpl-dispatcher
2022-08-09doc/filters: clarify behaviour of weights in amixGyan Doshi
2022-08-09lavfi/overlay_vaapi: set defalut alpha value as 1.0Fei Wang
The present default value of 0 will render the overlay video invisible. A default of 1.0 is consistent with most common use cases. Signed-off-by: Fei Wang <fei.w.wang@intel.com> Reviewed-by: Philip Langdale <philipl@overt.org> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2022-08-09doc/filters: correct description of overlay_vaapiFei Wang
Signed-off-by: Fei Wang <fei.w.wang@intel.com> Reviewed-by: Philip Langdale <philipl@overt.org> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2022-08-09doc/filters: add examples for amix to subsectionGyan Doshi
2022-08-08doc/ffmpeg: update -map documentationAnton Khirnov
Make it match reality (current text was not updated for stream specifiers), extend and clarify the text.
2022-08-08fftools/ffmpeg: deprecate specifying a sync stream with -mapAnton Khirnov
It has not had any effect whatsoever for over 10 years.
2022-08-07avcodec: WBMP (Wireless Application Protocol Bitmap) image formatPeter Ross
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: Peter Ross <pross@xvid.org>
2022-08-06avfilter/vsrc_ddagrab: make output format user configurableTimo Rothenpieler
2022-08-04lavu/pixfmt: Add packed 4:4:4 formatPhilip Langdale
The "AYUV" format is defined by Microsoft as their preferred format for 4:4:4 content, and so it is the format used by Intel VAAPI and QSV. As Microsoft like to define their byte ordering in little-endian fashion, the memory order is reversed, and so our pix_fmt, which follows memory order, has a reversed name (VUYA).
2022-08-02lavc: add API for exporting reconstructed frames from encodersAnton Khirnov
2022-08-02lavu/frame: allow calling av_frame_make_writable() on non-refcounted framesAnton Khirnov
This is an easy way to make a refcounted frame from a non-refcounted one.
2022-07-30lavfi/cropdetect: Add new mode to detect crop-area based on motion vectors ↵Thilo Borgmann
and edges This filter allows crop detection even if the video is embedded in non-black areas.
2022-07-30avcodec: add API for automatic handling of icc profilesNiklas Haas
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>
2022-07-28fftools/ffmpeg: deprecate the -map_channel optionAnton Khirnov
It is now entirely redundant with audio filters, and is in fact implemented by setting up a 'pan' filter instance.
2022-07-28fftools/ffmpeg: deprecate -psnrAnton Khirnov
It is entirely redundant with -flags +psnr.
2022-07-23fftools/ffmpeg: move each muxer to a separate threadAnton Khirnov
2022-07-23fftools/ffmpeg: rework -shortest implementationAnton Khirnov
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.
2022-07-20libavcodec/qsvenc: Use parameter from AVCodecContext to reset qsv codecWenbin Chen
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>
2022-07-19ffprobe: print AVFrame.durationAnton Khirnov
2022-07-19lavfi: use AVFrame.duration instead of AVFrame.pkt_durationAnton Khirnov
2022-07-19lavu/frame: add a duration field to AVFrameAnton Khirnov
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.
2022-07-18avfilter: add vsrc_ddagrabTimo Rothenpieler
2022-07-16avcodec: add Radiance HDR image format supportPaul B Mahol
2022-07-14ffmpeg: add option -isyncGyan Doshi
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.
2022-07-13doc/APIchanges: Add 5.1 branch cutpointMichael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-07-13doc/APIchanges: Fill in missing thingsMichael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-07-13doc/APIchanges: Extend hash which has become ambiguousMichael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>