Commit Graph

110975 Commits

Author SHA1 Message Date
Lynne 4e1f3ab184
hevc_ps: expose pps_extension_present_flag 2023-05-29 00:41:32 +02:00
Lynne d0b02c3aff
hevc_ps: expose vps_id 2023-05-29 00:41:31 +02:00
Lynne 3bc866159c
hevc_ps: expose pps_id 2023-05-29 00:41:31 +02:00
Lynne fc429d785e
hevc_ps: expose SPS and VPS headers 2023-05-29 00:41:31 +02:00
Lynne 20de09a6de
h264_ps: expose scaling_matrix_present_mask
Vulkan requires it.
It technically also requires use_default_scaling_matrix_mask,
but we can just be explicit and give it the matrix we fill in as-non
default.
2023-05-29 00:41:30 +02:00
Lynne d13b1c42f6
h264_ps: expose bit rate and CPB size fields 2023-05-29 00:41:30 +02:00
Lynne de6fce727c
h264_ps: expose max_dec_frame_buffering 2023-05-29 00:41:30 +02:00
Lynne 1f66e3347d
h264_ps: comment pic_order_present better
The official name which CBS uses is bottom_field_pic_order_in_frame_present_flag.
2023-05-29 00:41:29 +02:00
Lynne 6718b37e5d
h264_ps: set pic_scaling_matrix_present_flag 2023-05-29 00:41:29 +02:00
Lynne 02f38af2dd
h264_ps: expose pps_id 2023-05-29 00:41:29 +02:00
Lynne 317fa3bd1d
h2645_vui: expose aspect_ratio_info_present_flag 2023-05-29 00:41:28 +02:00
Lynne dc2694557d
h2645_vui: expose aspect_ratio_idc 2023-05-29 00:41:28 +02:00
Lynne b6a6e2b19d
lavc/decode: allow to allocate hwaccel_priv_data early 2023-05-29 00:41:27 +02:00
Anton Khirnov 8b23644408
lavc/pthread_frame: add support for thread-safe hwaccels 2023-05-29 00:41:27 +02:00
Anton Khirnov 3d2e1aa324
lavc/decode: stop duplicating code from hwaccel_uninit() 2023-05-29 00:41:27 +02:00
Anton Khirnov a4611e3170
lavc/decode: pass AVHWAccel instead of AVCodecHWConfigInternal to hwaccel_init()
The only thing besides the hwaccel that this function uses from
AVCodecHWConfigInternal is the pixel format, which should always match
the hwaccel one.

Will be useful in following commits.
2023-05-29 00:41:25 +02:00
Paul B Mahol 62d4110a64 avfilter/af_silenceremove: add timestamp option 2023-05-28 12:23:14 +02:00
Paul B Mahol b95d123097 avfilter/silenceremove_template: revert wrong change 2023-05-28 12:23:13 +02:00
Paul B Mahol e53260c1f4 avfilter/af_silenceremove: add ptp detector 2023-05-28 12:23:11 +02:00
Anton Khirnov 163e3a299e fftools/sync_queue: make sure non-limiting streams are not used as queue head
A non-limiting stream could mistakenly end up being the queue head,
which would then produce incorrect synchronization, seen e.g. in
fate-matroska-flac-extradata-update for certain number of frame threads
(e.g. 5).

Found-By: James Almer
2023-05-28 10:47:59 +02:00
Anton Khirnov e9a868e9ee fftools/sync_queue: add debug logging 2023-05-28 10:47:59 +02:00
Anton Khirnov 4e96a71626 fftools/ffmpeg_demux: log discontinuity warnings to stream context
Allows simplifying the log message.
2023-05-28 10:47:59 +02:00
Anton Khirnov 6abb4a28ef fftools/ffmpeg: add InputStream.index
This allows to avoid access to the underlying AVStream in many places.
2023-05-28 10:47:59 +02:00
Anton Khirnov cad59cccaf fftools/ffmpeg_dec: move timestamp estimation state to Decoder
It is purely internal to decoding.
2023-05-28 10:47:59 +02:00
Anton Khirnov 5b05e9e32a fftools/ffmpeg_dec: move InputStream.pkt to Decoder
It is purely internal to decoding.
2023-05-28 10:47:59 +02:00
Anton Khirnov dadeb28e25 fftools/ffmpeg_dec: add decoder private data
Move InputStream.decoded_frame to it.

Analogous to what has been previously done for all the other major
components.
2023-05-28 10:47:59 +02:00
Anton Khirnov 335688a3d3 fftools/ffmpeg_demux: skip unused/attachment streams in final stats
No useful information can be printed for them.
2023-05-28 10:47:59 +02:00
Anton Khirnov d43ae45de0 fftools/ffmpeg_demux: initialize nb_streams_warn
Fixes spurious new-stream warnings for unused streams after
9429624a76
2023-05-28 10:47:59 +02:00
Anton Khirnov 6ee57fd2b6 fftools/ffmpeg_demux: only print demuxing stats if demuxing actually started
If the transcoding process never got to reading any packets from this
input then printing stats is just pointless noise.
2023-05-28 10:47:59 +02:00
Anton Khirnov d9bcbf9200 fftools/ffmpeg: drop outdated comments 2023-05-28 10:47:59 +02:00
Anton Khirnov ec75b79fe1 fftools/ffmpeg: fail earlier on text/bitmap subtitles mismatch
Checking whether the user requested an unsupported conversion between
text and bitmap subtitles can be done immediately when creating the
output stream.
2023-05-28 10:47:59 +02:00
Anton Khirnov 2b3905254e fftools/ffmpeg_enc: use AVFrame.hw_frames_ctx for encoder hw setup
It should be the same as the one that can be extracted from the filter
and does not require access to outside data.
2023-05-28 10:47:59 +02:00
Anton Khirnov f15b206286 fftools/ffmpeg_hw: move hw_device_setup_for_encode() to ffmpeg_enc
This function is entangled with encoder setup, so it is more encoding
code rather than ffmpeg_hw code. This will allow making more encoder
state private in the future.
2023-05-28 10:47:59 +02:00
Anton Khirnov 760a9bd306 fftools/ffmpeg_hw: move hw_device_setup_for_decode() to ffmpeg_dec
This function is entangled with decoder setup, so it is more decoding
code rather than ffmpeg_hw code. This will allow making more decoder
state private in the future.
2023-05-28 10:47:59 +02:00
Paul B Mahol e8e4863325 avfilter/af_silenceremove: fix the any/all confusion and change default
'any' stop mode is now correctly implemented for end trimming and is of limited usage.
Extend examples and other documentation of this filter.
2023-05-27 16:04:00 +02:00
Paul B Mahol 8d662adcc9 avfilter/af_silenceremove: speed-up filtering once start-trim is over
No point to call filter_start on samples that will pass them unchanged
once initial trimming stopped.
2023-05-27 11:18:02 +02:00
Paul B Mahol 965f99f904 avfilter/af_silenceremove: add timeline support 2023-05-27 11:18:00 +02:00
Paul B Mahol 7927a96e2b avfilter/af_silenceremove: add commands support 2023-05-27 11:17:58 +02:00
James Almer e86e2d5921 fftools/ffmpeg_dec: abort if avcodec_send_packet() returns EAGAIN
As the comment in the code mentions, EAGAIN is not an expected value here
because we call avcodec_receive_frame() until all frames have been returned.
avcodec_send_packet() returning EAGAIN means a packet is still buffered, which
hints that the underlying decoder is buggy and not fetching packets as it
should.

An example of this behavior was in the libdav1d wrapper before f209614290,
where feeding it split frames (or individual OBUs) would result in the CLI
eventually printing the confusing "Error submitting packet to decoder: Resource
temporarily unavailable" error message, and just keep going until EOF without
returning new frames.

Signed-off-by: James Almer <jamrial@gmail.com>
2023-05-26 19:47:54 -03:00
Paul B Mahol 5a13b133f8 avfilter/af_silenceremove: add median silence detector 2023-05-27 00:34:37 +02:00
Paul B Mahol 68d0b881de avfilter/silenceremove_template: fix peak detector
The implementation was not working correctly.
2023-05-27 00:34:35 +02:00
Paul B Mahol 29710dd7f2 avfilter/af_silenceremove: speed-up start-only trimming once trim is over 2023-05-26 10:13:37 +02:00
Paul B Mahol f59d9514da avfilter/silenceremove_template: skip silence start detection after start-only trimming is over 2023-05-26 10:13:37 +02:00
Paul B Mahol 2b5166addf avfilter/af_silenceremove: add real peak detector
Rename old peak detector to more correct name one.
2023-05-26 10:13:37 +02:00
Paul B Mahol 3235de4883 avfilter/af_silenceremove: switch to activate
Do full rewrite, new code is much faster for typical filter usages.
Also previous code was hard to follow and basically very-hard to maintain.
2023-05-26 10:13:37 +02:00
yuanhecai 82278e8749
avutil/la: Add function performance testing
This patch supports the use of the "checkasm --bench" testing feature
on loongarch platform.

Change-Id: I42790388d057c9ade0dfa38a19d9c1fd44ca0bc3
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-05-25 21:05:21 +02:00
Jin Bo cb4ae8baee
swscale/la: Add following builtin optimized functions
yuv420_rgb24_lsx
yuv420_bgr24_lsx
yuv420_rgba32_lsx
yuv420_argb32_lsx
yuv420_bgra32_lsx
yuv420_abgr32_lsx
./configure --disable-lasx
ffmpeg -i ~/media/1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo
-pix_fmt rgb24 -y /dev/null -an
before: 184fps
after:  207fps

Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-05-25 21:05:15 +02:00
Lu Wang 4501b1dfd7
swscale/la: Optimize the functions of the swscale series with lsx.
./configure --disable-lasx
ffmpeg -i ~/media/1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -s 640x480
-pix_fmt bgra -y /dev/null -an
before: 91fps
after:  160fps

Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-05-25 21:05:08 +02:00
yuanhecai f6077cc666
avcodec/la: Add LSX optimization for h264 qpel.
./configure --disable-lasx
ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -y /dev/null -an
before: 214fps
after:  274fps

Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-05-25 21:05:01 +02:00
Lu Wang 8815a7719e
avcodec/la: Add LSX optimization for h264 chroma and intrapred.
./configure --disable-lasx
ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -y /dev/null -an
before: 199fps
after:  214fps

Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-05-25 21:04:56 +02:00