summaryrefslogtreecommitdiff
path: root/gst-libs/gst/vaapi/gstvaapidecoder_objects.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/vaapi/gstvaapidecoder_objects.c')
-rw-r--r--gst-libs/gst/vaapi/gstvaapidecoder_objects.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_objects.c b/gst-libs/gst/vaapi/gstvaapidecoder_objects.c
index 48e9ead9..8139e140 100644
--- a/gst-libs/gst/vaapi/gstvaapidecoder_objects.c
+++ b/gst-libs/gst/vaapi/gstvaapidecoder_objects.c
@@ -457,9 +457,10 @@ gst_vaapi_slice_create (GstVaapiSlice * slice,
if (!success)
return FALSE;
- success = vaapi_create_buffer (GET_VA_DISPLAY (slice), GET_VA_CONTEXT (slice),
- VASliceParameterBufferType, args->param_size, args->param,
- &slice->param_id, &slice->param);
+ g_assert (args->param_num >= 1);
+ success = vaapi_create_n_elements_buffer (GET_VA_DISPLAY (slice),
+ GET_VA_CONTEXT (slice), VASliceParameterBufferType, args->param_size,
+ args->param, &slice->param_id, &slice->param, args->param_num);
if (!success)
return FALSE;
@@ -480,3 +481,16 @@ gst_vaapi_slice_new (GstVaapiDecoder * decoder,
GST_VAAPI_CODEC_BASE (decoder), param, param_size, data, data_size, 0);
return GST_VAAPI_SLICE_CAST (object);
}
+
+GstVaapiSlice *
+gst_vaapi_slice_new_n_params (GstVaapiDecoder * decoder,
+ gconstpointer param, guint param_size, guint param_num, const guchar * data,
+ guint data_size)
+{
+ GstVaapiCodecObject *object;
+
+ object = gst_vaapi_codec_object_new_with_param_num (&GstVaapiSliceClass,
+ GST_VAAPI_CODEC_BASE (decoder), param, param_size, param_num, data,
+ data_size, 0);
+ return GST_VAAPI_SLICE_CAST (object);
+}