d3d12: Video encode temporal layers
Adds d3d12 gallium driver video encode support for:
- Writing temporal scalability headers when requested by frontend in
pipe_h264_enc_picture_desc.raw_headers
- SEI headers (
H264_SEI_SCALABILITY_INFO
) - Slice prefix headers (
NAL_TYPE_PREFIX
) - Fix in H264 SPS for
gaps_in_frame_num_value_allowed_flag
when temporal layers are enabled
- SEI headers (
- Fix in
d3d12_video_encoder_references_manager_h264
to useframe_num
from slice header - Plumb
temporal_id
from the frontends into D3D12 pic params and DPB entries. Note that some frontends like VA don't currently pass the DPB temporal_id hint, but adding the full plumbing into pipe for the future MFT frontend that will pass this info. - Reports support for multiple layers in
PIPE_VIDEO_CAP_MAX_TEMPORAL_LAYERS
cc @jenatali