diff options
author | He Junyan <junyan.he@intel.com> | 2020-08-27 21:39:35 +0800 |
---|---|---|
committer | He Junyan <junyan.he@intel.com> | 2020-12-14 18:43:52 +0800 |
commit | 46c1f3875a6e998b3d85ab4f938fd846e616252a (patch) | |
tree | abb72e3dbed015d98983a4a084bf0903b6b71453 /gst-libs/gst/vaapi/gstvaapidecoder_objects.c | |
parent | a16849b4ed03557b2f03cc1458cd297ef6aeda71 (diff) | |
download | gstreamer-vaapi-46c1f3875a6e998b3d85ab4f938fd846e616252a.tar.gz |
libs: codecobject: Add number of elements when create codec object.
One slice data may need several slice parameter buffers at one time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
Diffstat (limited to 'gst-libs/gst/vaapi/gstvaapidecoder_objects.c')
-rw-r--r-- | gst-libs/gst/vaapi/gstvaapidecoder_objects.c | 20 |
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); +} |