guint chroma_format_idc;
GstVideoFormat out_format;
gboolean interlaced;
+ gint max_dpb_size;
/* Array of DXVA_Slice_H264_Short */
GArray *slice_list;
GST_ELEMENT_CLASS (parent_class)->set_context (element, context);
}
+/* Clear all codec specific (e.g., SPS) data */
+static void
+gst_d3d11_h264_dec_reset (GstD3D11H264Dec * self)
+{
+ self->width = 0;
+ self->height = 0;
+ self->coded_width = 0;
+ self->coded_height = 0;
+ self->bitdepth = 0;
+ self->chroma_format_idc = 0;
+ self->out_format = GST_VIDEO_FORMAT_UNKNOWN;
+ self->interlaced = FALSE;
+ self->max_dpb_size = 0;
+}
+
static gboolean
gst_d3d11_h264_dec_open (GstVideoDecoder * decoder)
{
return FALSE;
}
+ gst_d3d11_h264_dec_reset (self);
+
return TRUE;
}
modified = TRUE;
}
+ if (self->max_dpb_size < max_dpb_size) {
+ GST_INFO_OBJECT (self, "Requires larger DPB size (%d -> %d)",
+ self->max_dpb_size, max_dpb_size);
+ self->max_dpb_size = max_dpb_size;
+ modified = TRUE;
+ }
+
if (modified || !self->d3d11_decoder->opened) {
GstVideoInfo info;