23 #include <vdpau/vdpau.h>
57 VdpPictureInfoAV1 *
info = &pic_ctx->
info.av1;
103 info->disable_frame_end_update_cdf =
frame_header->disable_frame_end_update_cdf;
107 info->coded_lossless =
s->cur_frame.coded_lossless;
126 s->cur_frame.skip_mode_frame_idx[0] : 0;
128 s->cur_frame.skip_mode_frame_idx[1] : 0;
145 info->segmentation_temporal_update =
frame_header->segmentation_temporal_update;
155 info->loop_filter_mode_deltas[0] =
frame_header->loop_filter_mode_deltas[0];
156 info->loop_filter_mode_deltas[1] =
frame_header->loop_filter_mode_deltas[1];
170 info->temporal_layer_id =
s->cur_frame.temporal_id;
171 info->spatial_layer_id =
s->cur_frame.spatial_id;
210 info->segmentation_feature_mask[
i] = 0;
226 info->primary_ref_frame = -1;
229 info->primary_ref_frame =
info->ref_frame_map[pri_ref_idx];
235 AVFrame *ref_frame =
s->ref[ref_idx].f;
237 info->ref_frame[
i].index =
info->ref_frame_map[ref_idx];
244 for (j = 0; j < 6; ++j) {
251 for (
i = 0;
i < 14; ++
i) {
255 for (
i = 0;
i < 10; ++
i) {
261 for (
i = 0;
i < 24; ++
i) {
264 for (
i = 0;
i < 25; ++
i) {
281 VdpPictureInfoAV1 *
info = &pic_ctx->
info.av1;
285 int bitstream_len = 0;
289 if (nb_slices ==
s->tg_end -
s->tg_start + 1) {
290 for (
int i = 0;
i < nb_slices; ++
i) {
291 info->tile_info[
i*2 ] =
s->tile_group_info[
i].tile_offset;
292 info->tile_info[
i*2 + 1] =
info->tile_info[
i*2] +
s->tile_group_info[
i].tile_size;
303 bitstream_len += buffers->bitstream_bytes;
307 for (uint32_t tile_num =
s->tg_start; tile_num <= s->tg_end; ++tile_num) {
308 info->tile_info[tile_num*2 ] = bitstream_len +
s->tile_group_info[tile_num].tile_offset;
309 info->tile_info[tile_num*2 + 1] =
info->tile_info[tile_num*2] +
s->tile_group_info[tile_num].tile_size;
341 profile = VDP_DECODER_PROFILE_AV1_MAIN;
344 profile = VDP_DECODER_PROFILE_AV1_HIGH;
347 profile = VDP_DECODER_PROFILE_AV1_PROFESSIONAL;