1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Commit Graph

105988 Commits

Author SHA1 Message Date
Paul B Mahol
837c55da3d avfilter/vf_zscale: fix several issues in previous commit 2022-03-03 17:35:48 +01:00
Victoria Zhislina
d0aefc3706 avfilter/vf_zscale: add slice threading support
By ffmpeg threading support implementation via frame slicing and doing
zimg_filter_graph_build that used to take 30-60% of each frame processig
only if necessary (some parameters changed)
the performance increase vs original version
in video downscale and color conversion  >4x is seen
on 64 cores Intel Xeon, 3x on i7-6700K (4 cores with HT)

Signed-off-by: Victoria Zhislina <Victoria.Zhislina@intel.com>
2022-03-03 17:35:48 +01:00
Paul B Mahol
d607af50fd avfilter/vf_geq: add float formats support 2022-03-03 17:35:48 +01:00
Paul B Mahol
352a01c3ef avfilter/avf_abitscope: add support for more input formats 2022-03-03 17:35:48 +01:00
Paul B Mahol
de0bb77563 avfilter/avf_abitscope: refactor code & add trace mode 2022-03-03 17:35:48 +01:00
Gyan Doshi
72684d2c2d doc/filters: correct default value of lut filters 2022-03-03 16:48:33 +05:30
Paul B Mahol
dae95b3ffd avfilter/vf_maskedmerge: fix rounding when masking 2022-03-03 09:57:53 +01:00
Paul B Mahol
59520f068d avfilter/vf_colorchannelmixer: add float formats support 2022-03-03 09:57:53 +01:00
Paul B Mahol
835446a8e1 avfilter/vf_colorchannelmixer: refactor / add template 2022-03-03 09:57:53 +01:00
Andreas Rheinhardt
6559858de9 fftools/ffmpeg: Don't presume frame_queue to have been allocated
Fixes segfaults upon allocation failure.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-03-03 03:48:04 +01:00
Andreas Rheinhardt
88b02e5829 fftools/ffmpeg_opt: Simplify adding complex filtergraph
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-03-03 03:48:04 +01:00
Andreas Rheinhardt
09e532c575 fftools/ffmpeg_opt: Simplify adding new input/output streams
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-03-03 03:48:04 +01:00
Stephen Hutchinson
e81242bb13 avformat/avisynth: fix fallbacks for four frameprops
If _FieldBased, _Matrix, _ColorRange, or _ChromaLocation haven't
been set, that absence would be interpreted as 0, leading to those
being set to case 0 instead of default. There is no case 0 for
_Primaries and _Transfer, so those were correctly falling back
to the default case.

Signed-off-by: Stephen Hutchinson <qyot27@gmail.com>
2022-03-02 17:45:40 -05:00
Michael Niedermayer
4419433d77 avformat/mov: Disallow empty sidx
It appears this is not allowed "Each Segment Index box documents how a (sub)segment is divided into one or more subsegments
(which may themselves be further subdivided using Segment Index boxes)."
Fixes: Null pointer dereference
Fixes: Ticket9517

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-03-02 17:51:35 +01:00
Nicolas George
add3571a59 lavfi/af_aformat: remove support for comma-separated lists
It has been deprecated for nine years.
2022-03-02 17:21:04 +01:00
Gyan Doshi
4b72bca6ca avfilter/drawtext: change reload value to an interval
Allows user to specify a frame interval at which textfile is reloaded.
2022-03-02 12:56:58 +05:30
Lu Wang
72604b10f4 avcodec: [loongarch] Optimize Hevc_mc_uni/w with LSX.
ffmpeg -i 5_h265_1080p_60fps_3Mbps.mkv -f rawvideo -y /dev/null -an
before: 182fps
after : 191fps

Signed-off-by: Hao Chen <chenhao@loongson.cn>
Reviewed-by: 殷时友 <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-03-01 23:53:40 +01:00
Hao Chen
a70a5b7c62 avcodec: [loongarch] Optimize Hevc_mc_bi with LSX.
ffmpeg -i 5_h265_1080p_60fps_3Mbps.mkv -f rawvideo -y /dev/null -an
before: 124fps
after : 182fps

Signed-off-by: Hao Chen <chenhao@loongson.cn>
Reviewed-by: 殷时友 <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-03-01 23:53:40 +01:00
Lu Wang
b6ceeee16b avcodec: [loongarch] Optimize Hevc_idct/lpf with LSX.
ffmpeg -i 5_h265_1080p_60fps_3Mbps.mkv -f rawvideo -y /dev/null -an
before:  110fps
after : 124fps

Signed-off-by: Hao Chen <chenhao@loongson.cn>
Reviewed-by: 殷时友 <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-03-01 23:53:40 +01:00
Lu Wang
20194d573d avcodec: [loongarch] Optimize Hevcdsp with LSX.
ffmpeg -i 5_h265_1080p_60fps_3Mbps.mkv -f rawvideo -y /dev/null -an
before:  94fps
after : 110fps

Signed-off-by: Hao Chen <chenhao@loongson.cn>
Reviewed-by: 殷时友 <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-03-01 23:53:40 +01:00
Hao Chen
5b812acdea avutil: [loongarch] Update loongson_intrinsics.h to v1.1.0
The loongson_intrinsics.h file is updated from v1.0.3 version
to v1.1.0. Some spelling mistakes are fixed and new functions are added.

Signed-off-by: Hao Chen <chenhao@loongson.cn>
Reviewed-by: 殷时友 <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-03-01 23:53:40 +01:00
James Almer
a1fff6566b doc/bitstream_filters: add missing entry for the time_base setts option
Signed-off-by: James Almer <jamrial@gmail.com>
2022-03-01 18:24:03 -03:00
Paul B Mahol
84f5583078 avfilter/vf_unsharp: add support for alpha formats 2022-03-01 12:36:35 +01:00
Paul B Mahol
e1974622e1 avfilter/vf_v360: improve rounding in xyz_to_dfisheye() 2022-03-01 10:16:08 +01:00
Paul B Mahol
5ffad29d62 avfilter/vf_chromanr: fix rounding of final output 2022-03-01 09:47:41 +01:00
Limin Wang
316e0ff752 fftool/ffprobe: support for CUVA HDR Vivid metadata
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2022-03-01 09:08:43 +08:00
Limin Wang
d344169419 avfilter: support for CUVA HDR Vivid metadata
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2022-03-01 09:08:43 +08:00
Limin Wang
5cd3c83a86 avcodec: support for CUVA HDR Vivid metadata
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2022-03-01 09:08:43 +08:00
Limin Wang
188faab2bb avutil: support for CUVA Vivid HDR metadata
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2022-03-01 09:08:43 +08:00
Paul B Mahol
178d8036dc avfilter/af_dynaudnorm: reduce number of lines by using for (int ... 2022-02-28 22:00:02 +01:00
Paul B Mahol
aa6b9066b9 avfilter/af_dynaudnorm: use fmin/fmax for doubles 2022-02-28 22:00:02 +01:00
Paul B Mahol
456d48c752 avfilter/af_dynaudnorm: add support for overlapping frames 2022-02-28 22:00:02 +01:00
Paul B Mahol
9a86e5338c avfilter/af_dynaudnorm: do not leak frame on error 2022-02-28 22:00:02 +01:00
James Almer
4e33bae9f9 avcodec/setts_bsf: add an option to set output time base
And a relevant constant to use it in expressions.

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 17:41:08 -03:00
James Almer
9c8a06a7d6 avcodec/setts_bsf: stop repeatedly setting values that don't change between packets
Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 12:48:14 -03:00
James Almer
129f5ed87e doc/bitstream_filters: add missing entry for the duration setts option
Forgotten in 825fb5f1cb.

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 12:37:11 -03:00
James Almer
825fb5f1cb avcodec/setts_bsf: add constants to modify packet duration
Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 12:15:45 -03:00
James Almer
9ed3139a76 avcodec/setts_bsf: add NEXT_PTS/DTS expression constants
They correspond to the relevant fields from the packet that follows the
one where the expressions are being applied.

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 12:13:22 -03:00
James Almer
d75e7a9a83 ffmpeg: ensure a keyframe was not seen before skipping packets
A keyframe could be buffered in the bsf and not be output until more packets
had been fed to it.

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 12:11:24 -03:00
James Almer
afe485ee6b ffmpeg: flush delayed frames in codec copy scenarios
Bitstream filters inserted between the input and output were never drained,
resulting in packets being lost if the bsf had any buffered.

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 12:10:51 -03:00
James Almer
4f21a9ae6b tools/target_bsf_fuzzer: simplify the loop feeding packets to the filter
And use a single AVPacket for the entire process.
This more closely follows the suggested API usage in the doxy.

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 12:06:55 -03:00
James Almer
7a4840a8ca avformat/av1: reduce the scope of some variables
Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 09:12:51 -03:00
James Almer
76e10325fc avformat/av1: support av1C extradata in ff_av1_parse_seq_header()
Fixes dash manifest creation for av1 streams with av1C formatted extradata.

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 09:08:27 -03:00
James Almer
b6c7f82db7 avformat: always compile isom_tags
It's needed for avformat_get_mov_video_tags() and avformat_get_mov_audio_tags(),
both public symbols defined in avformat.h

Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-28 09:08:19 -03:00
Tong Wu
a0a2ccd55d qsvenc: avoid dereferencing the null pointer
The variable AVFrame *frame could be a null pointer, now add a null
pointer check to avoid dereferencing the null pointer.

Signed-off-by: Tong Wu <tong1.wu@intel.com>
2022-02-28 12:41:40 +08:00
Tong Wu
d05ca3d779 qsv: add return value check for MFXQueryIMPL
add a return value check for function MFXQueryIMPL to handle the error
message.

Signed-off-by: Tong Wu <tong1.wu@intel.com>
2022-02-28 12:41:27 +08:00
Wenbin Chen
342d4fb056 libavcodec/qsvenc: add mbbrc to hevc_qsv
Add mbbrc to hevc_qsv
For detailed description, please see "mbbrc" part in:
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2

Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-02-28 12:40:02 +08:00
Wenbin Chen
4869ccb3f3 libavcodec/qsvenc: add more ChromaFormat support to mjpeg_qsv
ChromaForamt for mjpeg-qsv is always set to yuv420, and this will be
wrong when encode other pixel format (for example yuyv422). ChromaFormat
is changed to be adaptive to pix_fmt.

Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
2022-02-28 12:39:52 +08:00
Wenbin Chen
d165ce22a4 libavcodec/vaapi_encode: Add async_depth to vaapi_encoder to increase performance
Fix: #7706. After commit 5fdcf85bbf, vaapi encoder's performance
decrease. The reason is that vaRenderPicture() and vaSyncBuffer() are
called at the same time (vaRenderPicture() always followed by a
vaSyncBuffer()). Now I changed them to be called in a asynchronous way,
which will make better use of hardware.
Async_depth is added to increase encoder's performance. The frames that
are sent to hardware are stored in a fifo. Encoder will sync output
after async fifo is full.

Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2022-02-28 12:37:02 +08:00
Wenbin Chen
e0ff869930 libavcodec/vaapi_encode: Add new API adaption to vaapi_encode
Add vaSyncBuffer to VAAPI encoder. Old version API vaSyncSurface wait
surface to complete. When surface is used for multiple operation, it
waits all operations to finish. vaSyncBuffer only wait one channel to
finish.

Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2022-02-28 12:37:02 +08:00