summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2010-12-20 18:49:49 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2010-12-20 18:50:25 +0100
commit6a5e6eac55aab4a71265e09f1af59b959055cf36 (patch)
tree256e29417e770a5c3b890cd14a2cc49796875c0c
parent2b142bb279a08d4ad8c9559860edc9b8ed86ad78 (diff)
mpapay: flush last packets on EOS
-rw-r--r--gst/rtp/gstrtpmpapay.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c
index 23efb670f..88d71bce8 100644
--- a/gst/rtp/gstrtpmpapay.c
+++ b/gst/rtp/gstrtpmpapay.c
@@ -56,6 +56,7 @@ static GstStateChangeReturn gst_rtp_mpa_pay_change_state (GstElement * element,
static gboolean gst_rtp_mpa_pay_setcaps (GstBaseRTPPayload * payload,
GstCaps * caps);
static gboolean gst_rtp_mpa_pay_handle_event (GstPad * pad, GstEvent * event);
+static GstFlowReturn gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay);
static GstFlowReturn gst_rtp_mpa_pay_handle_buffer (GstBaseRTPPayload * payload,
GstBuffer * buffer);
@@ -144,6 +145,10 @@ gst_rtp_mpa_pay_handle_event (GstPad * pad, GstEvent * event)
rtpmpapay = GST_RTP_MPA_PAY (gst_pad_get_parent (pad));
switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_EOS:
+ /* make sure we push the last packets in the adapter on EOS */
+ gst_rtp_mpa_pay_flush (rtpmpapay);
+ break;
case GST_EVENT_FLUSH_STOP:
gst_rtp_mpa_pay_reset (rtpmpapay);
break;