Lynne
571756bf2f
hwcontext_vulkan: use VK_EXT_physical_device_drm to derive DRM to Vulkan
...
Finally, a way to directly identify a Vulkan device from a DRM device!
2023-05-29 00:41:40 +02:00
Lynne
e11fd1abdb
hwcontext_vulkan: do not require libdrm to map VAAPI devices
...
VAAPI is sadly on the way of becoming multiplaform.
2023-05-29 00:41:39 +02:00
Lynne
f50bc930a4
hwcontext_vulkan: add support for descriptor buffers
2023-05-29 00:41:39 +02:00
Lynne
c5702abf71
hwcontext_vulkan: report nonCoherentAtomSize
2023-05-29 00:41:39 +02:00
Lynne
b0af92572f
hwcontext_vulkan: fix minor type issue in VulkanQueueCtx.buf_deps_alloc_size
2023-05-29 00:41:38 +02:00
Lynne
211c910aca
hwcontext_vulkan: rename and expand vk_pixfmt_map to append VK_NULL_FORMAT
2023-05-29 00:41:38 +02:00
Lynne
e0f2d2e702
hwcontext_vulkan: remove contiguous memory path/mode
...
The hack was added to enable exporting of vulkan images to DRM.
On Intel hardware, specifically for DRM images, all planes must be
allocated next to each other, due to hardware limitation, so the hack
used a single large allocation and suballocated all planes from it.
By natively supporting multiplane images, the driver is what decides
the layout, so exporting just works.
It's a hack because it conflicted heavily with image allocation, and
with the whole ecosystem in general, before multiplane images were
supported, which just made it redundant.
This is also the commit which broke the hwcontext hardest and prompted
the entire rewrite in the first place.
2023-05-29 00:41:37 +02:00
Lynne
46a77c6496
hwcontext_vulkan: support threadsafe queue and frame operations
2023-05-29 00:41:37 +02:00
Lynne
2a1fd2814f
hwcontext_vulkan: use portability subset if available
2023-05-29 00:41:37 +02:00
Lynne
74b202b839
hwcontext_vulkan: enable VK_KHR_synchronization2 if supported
2023-05-29 00:41:36 +02:00
Lynne
fddfb0ebf8
hwcontext_vulkan: enable support for YCbCr samplers
2023-05-29 00:41:36 +02:00
Lynne
59707cc485
hwcontext_vulkan: initialize and require instance version 1.3
...
This just bumps the required loader library version (libvulkan).
All device-related features, such as video decoding, atomics, etc.
are still optional and the code deals with their loss on a local level
(e.g. the decoder or filter checks for the features it needs, not
the hwcontext).
Bumping the required version essentially packs all maintenance
extensions which correct the spec rather than requiring to enable
them individually.
2023-05-29 00:41:36 +02:00
Lynne
934525eae0
lsws: add in/out support for the new 12-bit 2-plane 422 and 444 pixfmts
2023-05-29 00:41:35 +02:00
Lynne
0bda3340a3
lavu: add 12-bit 2-plane 422 and 444 pixel formats
2023-05-29 00:41:35 +02:00
Lynne
21719c29a2
hevc_ps: expose sps_extension_present_flag
2023-05-29 00:41:35 +02:00
Lynne
8b2d46ee3d
hevc_ps: expose conformance_window_flag
2023-05-29 00:41:34 +02:00
Lynne
cc5fab5c48
hevc_ps: expose sublayer_ordering_info_flag
2023-05-29 00:41:34 +02:00
Lynne
32fcb17e42
hevc_ps: expose vui_present flag
2023-05-29 00:41:33 +02:00
Lynne
f58db8e534
hevc_ps: expose rps fields
2023-05-29 00:41:33 +02:00
Lynne
abdd87d44e
hevc_ps: expose log2_diff_max_min_transform_block_size
2023-05-29 00:41:33 +02:00
Lynne
6eaca2abd8
hevcdec: expose bits_used_for_short_term_rps
2023-05-29 00:41:32 +02:00
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