}
static void
-gst_rtp_vraw_depay_reset (GstRtpVRawDepay * rtpvrawdepay)
+gst_rtp_vraw_depay_reset (GstRtpVRawDepay * rtpvrawdepay, gboolean full)
{
if (rtpvrawdepay->outbuf) {
gst_video_frame_unmap (&rtpvrawdepay->frame);
rtpvrawdepay->outbuf = NULL;
}
rtpvrawdepay->timestamp = -1;
- if (rtpvrawdepay->pool) {
+
+ if (full && rtpvrawdepay->pool) {
gst_buffer_pool_set_active (rtpvrawdepay->pool, FALSE);
gst_object_unref (rtpvrawdepay->pool);
rtpvrawdepay->pool = NULL;
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_STOP:
- gst_rtp_vraw_depay_reset (rtpvrawdepay);
+ gst_rtp_vraw_depay_reset (rtpvrawdepay, FALSE);
break;
default:
break;
case GST_STATE_CHANGE_NULL_TO_READY:
break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
- gst_rtp_vraw_depay_reset (rtpvrawdepay);
+ gst_rtp_vraw_depay_reset (rtpvrawdepay, TRUE);
break;
default:
break;
switch (transition) {
case GST_STATE_CHANGE_PAUSED_TO_READY:
- gst_rtp_vraw_depay_reset (rtpvrawdepay);
+ gst_rtp_vraw_depay_reset (rtpvrawdepay, TRUE);
break;
case GST_STATE_CHANGE_READY_TO_NULL:
break;