[Bug 794794] rtpssrcdemux: add the support of buffer list
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu Mar 29 22:36:32 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=794794
Olivier CrĂȘte <olivier.crete at ocrete.ca> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #370285|none |needs-work
status| |
--- Comment #4 from Olivier CrĂȘte <olivier.crete at ocrete.ca> ---
Review of attachment 370285:
--> (https://bugzilla.gnome.org/review?bug=794794&attachment=370285)
::: gst/rtpmanager/gstrtpssrcdemux.c
@@ +159,3 @@
+ GstPad *src_pad;
+ GstBufferList *buffer_list;
+};
This seems duplicative from the GstRtpSsrcDemuxPad struct, you can just put the
GstBufferList* in there I think.
@@ +181,3 @@
+{
+ GstRtpSsrcBufferList *elem_buf_list;
+ elem_buf_list = g_new0 (GstRtpSsrcBufferList, 1);
Maybe g_slice_new0()
@@ +222,3 @@
+ for (walk = demux->ssrc_buffer_list; walk; walk = g_slist_next (walk)) {
+ GstRtpSsrcBufferList *list = (GstRtpSsrcBufferList *) walk->data;
+ GST_INFO_OBJECT (demux, "SSRC %08x: pushing %u buffers", list->ssrc,
This should be at the LOG level, it's done for every buffer list
@@ +224,3 @@
+ GST_INFO_OBJECT (demux, "SSRC %08x: pushing %u buffers", list->ssrc,
+ gst_buffer_list_length (list->buffer_list));
+ gst_pad_push_list (list->src_pad, list->buffer_list);
You need to aggregate the return values and return that to the caller, use
GstFlowCombiner for that
@@ +756,3 @@
+
+ push_all_buffer_list (demux);
+ return ((ret == TRUE) ? GST_FLOW_OK : GST_FLOW_ERROR);
You need to return the aggregated value.
@@ +767,3 @@
+ demux = GST_RTP_SSRC_DEMUX (parent);
+ ret = gst_rtp_ssrc_demux_handle_buffer (demux, buf, FALSE);
+ return ret;
You can do this in one line
return gst_rtp_ssrc_demux_handle_buffer (GST_RTP_SSRC_DEMUX(parent), buf,
FALSE);
::: gst/rtpmanager/gstrtpssrcdemux.h
@@ +43,3 @@
GRecMutex padlock;
GSList *srcpads;
+ GSList *ssrc_buffer_list;
Don't put this in the struct, you can just pass it in every call somehow.
You could instead put it in the GstRtpSsrcDemuxPad struct or something like
that.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list