diff --git a/sys/va/gstvadecoder.c b/sys/va/gstvadecoder.c index 93fcb33889..a755038441 100644 --- a/sys/va/gstvadecoder.c +++ b/sys/va/gstvadecoder.c @@ -527,9 +527,9 @@ gst_va_decoder_add_param_buffer (GstVaDecoder * self, GstVaDecodePicture * pic, } gboolean -gst_va_decoder_add_slice_buffer (GstVaDecoder * self, GstVaDecodePicture * pic, - gpointer params_data, gsize params_size, gpointer slice_data, - gsize slice_size) +gst_va_decoder_add_slice_buffer_with_n_params (GstVaDecoder * self, + GstVaDecodePicture * pic, gpointer params_data, gsize params_size, + guint params_num, gpointer slice_data, gsize slice_size) { VABufferID params_buffer, slice_buffer; VADisplay dpy; @@ -543,7 +543,7 @@ gst_va_decoder_add_slice_buffer (GstVaDecoder * self, GstVaDecodePicture * pic, dpy = gst_va_display_get_va_dpy (self->display); gst_va_display_lock (self->display); status = vaCreateBuffer (dpy, self->context, VASliceParameterBufferType, - params_size, 1, params_data, ¶ms_buffer); + params_size, params_num, params_data, ¶ms_buffer); gst_va_display_unlock (self->display); if (status != VA_STATUS_SUCCESS) { GST_ERROR_OBJECT (self, "vaCreateBuffer: %s", vaErrorStr (status)); @@ -565,6 +565,15 @@ gst_va_decoder_add_slice_buffer (GstVaDecoder * self, GstVaDecodePicture * pic, return TRUE; } +gboolean +gst_va_decoder_add_slice_buffer (GstVaDecoder * self, GstVaDecodePicture * pic, + gpointer params_data, gsize params_size, gpointer slice_data, + gsize slice_size) +{ + return gst_va_decoder_add_slice_buffer_with_n_params (self, pic, params_data, + params_size, 1, slice_data, slice_size); +} + gboolean gst_va_decoder_decode (GstVaDecoder * self, GstVaDecodePicture * pic) { diff --git a/sys/va/gstvadecoder.h b/sys/va/gstvadecoder.h index d44771ca07..1c683546f1 100644 --- a/sys/va/gstvadecoder.h +++ b/sys/va/gstvadecoder.h @@ -65,6 +65,14 @@ gboolean gst_va_decoder_add_slice_buffer (GstVaDecoder * self, gsize params_size, gpointer slice_data, gsize slice_size); +gboolean gst_va_decoder_add_slice_buffer_with_n_params + (GstVaDecoder * self, + GstVaDecodePicture * pic, + gpointer params_data, + gsize params_size, + guint params_num, + gpointer slice_data, + gsize slice_size); gboolean gst_va_decoder_decode (GstVaDecoder * self, GstVaDecodePicture * pic);