From: Víctor Manuel Jáquez Leal Date: Mon, 16 Nov 2020 15:29:04 +0000 (+0100) Subject: va: h264dec: implement gst_va_h264_dec_new_field_picture() X-Git-Tag: 1.19.3~507^2~1054 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eadda27ddec85ff6212a97bb6184c8e649b44fb4;p=platform%2Fupstream%2Fgstreamer.git va: h264dec: implement gst_va_h264_dec_new_field_picture() Part-of: --- diff --git a/sys/va/gstvah264dec.c b/sys/va/gstvah264dec.c index 9468452..929b48f 100644 --- a/sys/va/gstvah264dec.c +++ b/sys/va/gstvah264dec.c @@ -499,6 +499,27 @@ error: } } +static gboolean +gst_va_h264_dec_new_field_picture (GstH264Decoder * decoder, + const GstH264Picture * first_field, GstH264Picture * second_field) +{ + GstVaDecodePicture *first_pic, *second_pic; + GstVaH264Dec *self = GST_VA_H264_DEC (decoder); + + first_pic = gst_h264_picture_get_user_data ((GstH264Picture *) first_field); + if (!first_pic) + return FALSE; + + second_pic = gst_va_decode_picture_new (first_pic->gstbuffer); + gst_h264_picture_set_user_data (second_field, second_pic, + (GDestroyNotify) gst_va_decode_picture_free); + + GST_LOG_OBJECT (self, "New va decode picture %p - %#x", second_pic, + gst_va_decode_picture_get_surface (second_pic)); + + return TRUE; +} + static inline guint _get_num_views (const GstH264SPS * sps) { @@ -844,6 +865,8 @@ gst_va_h264_dec_class_init (gpointer g_class, gpointer class_data) GST_DEBUG_FUNCPTR (gst_va_h264_dec_start_picture); h264decoder_class->end_picture = GST_DEBUG_FUNCPTR (gst_va_h264_dec_end_picture); + h264decoder_class->new_field_picture = + GST_DEBUG_FUNCPTR (gst_va_h264_dec_new_field_picture); g_free (long_name); g_free (cdata->description);