Commit 0524e6f8 authored by Nicolas Dufresne's avatar Nicolas Dufresne

rtph265depay: Drain on EOS event

parent 65b01d5f
......@@ -109,6 +109,12 @@ static gboolean gst_rtp_h265_depay_setcaps (GstRTPBaseDepayload * filter,
GstCaps * caps);
static gboolean gst_rtp_h265_depay_handle_event (GstRTPBaseDepayload * depay,
GstEvent * event);
static GstBuffer *gst_rtp_h265_complete_au (GstRtpH265Depay * rtph265depay,
GstClockTime * out_timestamp, gboolean * out_keyframe);
static void gst_rtp_h265_depay_push (GstRtpH265Depay * rtph265depay,
GstBuffer * outbuf, gboolean keyframe, GstClockTime timestamp,
gboolean marker);
static void
gst_rtp_h265_depay_class_init (GstRtpH265DepayClass * klass)
......@@ -181,6 +187,21 @@ gst_rtp_h265_depay_reset (GstRtpH265Depay * rtph265depay, gboolean hard)
}
}
static void
gst_rtp_h265_depay_drain (GstRtpH265Depay * rtph265depay)
{
GstClockTime timestamp;
gboolean keyframe;
GstBuffer *outbuf;
if (!rtph265depay->picture_start)
return;
outbuf = gst_rtp_h265_complete_au (rtph265depay, &timestamp, &keyframe);
if (outbuf)
gst_rtp_h265_depay_push (rtph265depay, outbuf, keyframe, timestamp, FALSE);
}
static void
gst_rtp_h265_depay_finalize (GObject * object)
{
......@@ -1573,6 +1594,9 @@ gst_rtp_h265_depay_handle_event (GstRTPBaseDepayload * depay, GstEvent * event)
case GST_EVENT_FLUSH_STOP:
gst_rtp_h265_depay_reset (rtph265depay, FALSE);
break;
case GST_EVENT_EOS:
gst_rtp_h265_depay_drain (rtph265depay);
break;
default:
break;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment