From bc73610dd09ca81c5d51c4c4d01552033d52dab2 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 7 Apr 2016 12:14:16 +0200 Subject: [PATCH] pinossrc: don't send empty buffers --- pinos/gst/gstpinossrc.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pinos/gst/gstpinossrc.c b/pinos/gst/gstpinossrc.c index 5cd1a37e3..6f7c7ec54 100644 --- a/pinos/gst/gstpinossrc.c +++ b/pinos/gst/gstpinossrc.c @@ -351,7 +351,7 @@ on_new_buffer (GObject *gobject, GstPinosSrc *pinossrc = user_data; PinosBuffer *pbuf; PinosBufferIter it; - GstBuffer *buf; + GstBuffer *buf = NULL; GError *error = NULL; GST_LOG_OBJECT (pinossrc, "got new buffer"); @@ -360,8 +360,6 @@ on_new_buffer (GObject *gobject, return; } - buf = gst_buffer_new (); - pinos_buffer_iter_init (&it, pbuf); while (pinos_buffer_iter_next (&it)) { switch (pinos_buffer_iter_get_type (&it)) { @@ -372,6 +370,9 @@ on_new_buffer (GObject *gobject, if (!pinos_buffer_iter_parse_header (&it, &hdr)) goto parse_failed; + if (buf == NULL) + buf = gst_buffer_new (); + if (GST_CLOCK_TIME_IS_VALID (hdr.pts)) { if (hdr.pts > GST_ELEMENT_CAST (pinossrc)->base_time) GST_BUFFER_PTS (buf) = hdr.pts - GST_ELEMENT_CAST (pinossrc)->base_time; @@ -395,6 +396,9 @@ on_new_buffer (GObject *gobject, if (fd == -1) goto no_fds; + if (buf == NULL) + buf = gst_buffer_new (); + fdmem = gst_fd_allocator_alloc (pinossrc->fd_allocator, fd, data.p.offset + data.p.size, GST_FD_MEMORY_FLAG_NONE); gst_memory_resize (fdmem, data.p.offset, data.p.size); @@ -631,8 +635,6 @@ gst_pinos_src_negotiate (GstBaseSrc * basesrc) g_bytes_unref (possible); } - - /* now fixate */ GST_DEBUG_OBJECT (basesrc, "server fixated caps: %" GST_PTR_FORMAT, caps); if (gst_caps_is_any (caps)) {