g_mutex_unlock (self->drain_lock);
g_free (self->codec_data);
self->codec_data_size = 0;
+ if (self->input_state)
+ gst_video_codec_state_unref (self->input_state);
+ self->input_state = NULL;
GST_DEBUG_OBJECT (self, "Stopped decoder");
return TRUE;
}
/* Framerate or something minor changed */
self->input_state_changed = TRUE;
+ if (self->input_state)
+ gst_video_codec_state_unref (self->input_state);
+ self->input_state = gst_video_codec_state_ref (state);
GST_DEBUG_OBJECT (self,
"Already running and caps did not change the format");
return TRUE;
}
}
/* srcpad task is not running at this point */
+ if (self->input_state)
+ gst_video_codec_state_unref (self->input_state);
+ self->input_state = NULL;
g_free (self->codec_data);
self->codec_data = codec_data;
}
self->started = TRUE;
+ self->input_state = gst_video_codec_state_ref (state);
self->input_state_changed = TRUE;
/* Start the srcpad loop again */