#pragma pack(pop)
-/* reference list 8 + 4 margin */
-#define NUM_OUTPUT_VIEW 12
-
/* *INDENT-OFF* */
typedef struct _GstD3D11AV1DecInner
{
if (!gst_d3d11_decoder_configure (inner->d3d11_decoder,
decoder->input_state, &info, (gint) inner->max_width,
- (gint) inner->max_height, NUM_OUTPUT_VIEW)) {
+ (gint) inner->max_height, max_dpb_size)) {
GST_ERROR_OBJECT (self, "Failed to create decoder");
return GST_FLOW_NOT_NEGOTIATED;
}
return FALSE;
}
+ /* Additional 4 frames to help zero-copying */
+ dpb_size += 4;
+
decoder->input_state = gst_video_codec_state_ref (input_state);
decoder->info = decoder->output_info = *info;
decoder->coded_width = coded_width;
inner->max_dpb_size = max_dpb_size;
if (!gst_d3d11_decoder_configure (inner->d3d11_decoder,
decoder->input_state, &info,
- inner->coded_width, inner->coded_height,
- /* Additional 4 views margin for zero-copy rendering */
- max_dpb_size + 4)) {
+ inner->coded_width, inner->coded_height, max_dpb_size)) {
GST_ERROR_OBJECT (self, "Failed to create decoder");
return GST_FLOW_NOT_NEGOTIATED;
}
if (!gst_d3d11_decoder_configure (inner->d3d11_decoder,
decoder->input_state, &info,
- inner->coded_width, inner->coded_height,
- /* Additional 4 views margin for zero-copy rendering */
- max_dpb_size + 4)) {
+ inner->coded_width, inner->coded_height, max_dpb_size)) {
GST_ERROR_OBJECT (self, "Failed to create decoder");
return GST_FLOW_NOT_NEGOTIATED;
}
GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_mpeg2_dec_debug);
#define GST_CAT_DEFAULT gst_d3d11_mpeg2_dec_debug
-/* reference list 2 + 4 margin */
-#define NUM_OUTPUT_VIEW 6
-
/* *INDENT-OFF* */
typedef struct _GstD3D11Mpeg2DecInner
{
if (!gst_d3d11_decoder_configure (inner->d3d11_decoder,
decoder->input_state, &info,
- inner->width, inner->height, NUM_OUTPUT_VIEW)) {
+ inner->width, inner->height, max_dpb_size)) {
GST_ERROR_OBJECT (self, "Failed to create decoder");
return GST_FLOW_NOT_NEGOTIATED;
}
GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_vp8_dec_debug);
#define GST_CAT_DEFAULT gst_d3d11_vp8_dec_debug
-/* reference list 4 + 4 margin */
-#define NUM_OUTPUT_VIEW 8
-
/* *INDENT-OFF* */
typedef struct _GstD3D11Vp8DecInner
{
if (!gst_d3d11_decoder_configure (inner->d3d11_decoder,
decoder->input_state, &info, inner->width, inner->height,
- NUM_OUTPUT_VIEW)) {
+ max_dpb_size)) {
GST_ERROR_OBJECT (self, "Failed to create decoder");
return GST_FLOW_NOT_NEGOTIATED;
}
GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_vp9_dec_debug);
#define GST_CAT_DEFAULT gst_d3d11_vp9_dec_debug
-/* reference list 8 + 4 margin */
-#define NUM_OUTPUT_VIEW 12
-
/* *INDENT-OFF* */
typedef struct _GstD3D11Vp9DecInner
{
if (!gst_d3d11_decoder_configure (inner->d3d11_decoder,
decoder->input_state, &info, (gint) frame_hdr->width,
- (gint) frame_hdr->height, NUM_OUTPUT_VIEW)) {
+ (gint) frame_hdr->height, max_dpb_size)) {
GST_ERROR_OBJECT (self, "Failed to create decoder");
return GST_FLOW_NOT_NEGOTIATED;
}