summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-04-25 17:16:04 +0300
committerSebastian Dröge <sebastian@centricular.com>2016-04-26 09:44:05 +0300
commit78e8358f7ecd1bd50992dc89efc72a91dcb1876f (patch)
tree899aef43ba746fa4a5fe950ec69475b97ed70d4f
parentc54b4cd27be9b5a037b9a3c1a906a45fc80a4ffc (diff)
downloadgstreamer-plugins-base-78e8358f7ecd1bd50992dc89efc72a91dcb1876f.tar.gz
smartencoder: Only accept TIME segments for real
... and don't try to push pending data without ever having received a SEGMENT event before EOS https://bugzilla.gnome.org/show_bug.cgi?id=765541
-rw-r--r--gst/encoding/gstsmartencoder.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gst/encoding/gstsmartencoder.c b/gst/encoding/gstsmartencoder.c
index 5c46da87c..69ab7d69b 100644
--- a/gst/encoding/gstsmartencoder.c
+++ b/gst/encoding/gstsmartencoder.c
@@ -358,9 +358,12 @@ smart_encoder_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
GST_DEBUG_OBJECT (smart_encoder, "segment: %" GST_SEGMENT_FORMAT,
smart_encoder->segment);
- if (smart_encoder->segment->format != GST_FORMAT_TIME)
+ if (smart_encoder->segment->format != GST_FORMAT_TIME) {
GST_ERROR
("smart_encoder can not handle streams not specified in GST_FORMAT_TIME");
+ gst_event_unref (event);
+ return FALSE;
+ }
/* And keep a copy for further usage */
if (smart_encoder->newsegment)
@@ -370,7 +373,8 @@ smart_encoder_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
break;
case GST_EVENT_EOS:
GST_DEBUG ("Eos, flushing remaining data");
- gst_smart_encoder_push_pending_gop (smart_encoder);
+ if (smart_encoder->segment->format == GST_FORMAT_TIME)
+ gst_smart_encoder_push_pending_gop (smart_encoder);
break;
default:
break;