}
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;
goto next;
}
- /* calculate the maximim amount of bytes we can use per line */
+ /* calculate the maximum amount of bytes we can use per line */
if (offs + ((length / pgroup) * xinc) > width) {
plen = ((width - offs) * pgroup) / xinc;
GST_WARNING_OBJECT (depayload, "clipping length %d, offset %d, plen %d",
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;