From 63f9f02c627a2bf40051222e0238deda912e68de Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Mon, 8 Feb 2021 14:16:22 +0900 Subject: [PATCH] [v4l2videodecoder] Post message for number of buffers - Tizen media player framework refers it for buffer management. [Version] 1.16.2-19 [Issue Type] Update Change-Id: I5ff40fa7f5fccb3bee8742b4349bd32672ad0c80 Signed-off-by: Jeongmo Yang --- packaging/gst-plugins-good.spec | 2 +- sys/v4l2/gstv4l2videodec.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packaging/gst-plugins-good.spec b/packaging/gst-plugins-good.spec index 3ecb1b6..cc505f5 100644 --- a/packaging/gst-plugins-good.spec +++ b/packaging/gst-plugins-good.spec @@ -3,7 +3,7 @@ Name: gst-plugins-good Version: 1.16.2 -Release: 18 +Release: 19 License: LGPL-2.1+ Summary: GStreamer Streaming-Media Framework Plug-Ins Url: http://gstreamer.freedesktop.org/ diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c index b43a6c9..f1c32e8 100644 --- a/sys/v4l2/gstv4l2videodec.c +++ b/sys/v4l2/gstv4l2videodec.c @@ -612,6 +612,8 @@ gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder, #ifdef TIZEN_FEATURE_TBM_SUPPORT_FOR_V4L2_DECODER GstStructure *structure = NULL; const gchar *caps_format = NULL; + GstMessage *msg = NULL; + GstV4l2BufferPool *capture_pool = NULL; #endif /* TIZEN_FEATURE_TBM_SUPPORT_FOR_V4L2_DECODER */ GST_DEBUG_OBJECT (self, "Handling frame %d", frame->system_frame_number); @@ -751,6 +753,18 @@ gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder, if (!gst_buffer_pool_set_active (GST_BUFFER_POOL (self->v4l2capture->pool), TRUE)) goto activate_failed; +#ifdef TIZEN_FEATURE_TBM_SUPPORT_FOR_V4L2_DECODER + capture_pool = GST_V4L2_BUFFER_POOL (self->v4l2capture->pool); + + msg = gst_message_new_element (GST_OBJECT_CAST (decoder), + gst_structure_new ("prepare-decode-buffers", + "num_buffers", G_TYPE_INT, capture_pool->num_allocated, + "extra_num_buffers", G_TYPE_INT, capture_pool->num_allocated - 2, NULL)); + + gst_element_post_message (GST_ELEMENT_CAST (decoder), msg); + + GST_WARNING_OBJECT (self, "output buffer[%d]", capture_pool->num_allocated); +#endif /* TIZEN_FEATURE_TBM_SUPPORT_FOR_V4L2_DECODER */ } task_state = gst_pad_get_task_state (GST_VIDEO_DECODER_SRC_PAD (self)); -- 2.7.4