videoencoder: Stop storing if we received EOS

This was never reset when going from PAUSED->READY and resulted
in encoders being not reusable after EOS. They just rejected any
buffer because they received EOS in their previous life.

The flag wasn't used anywhere except for rejecting buffers after
EOS, and this is now handled by GstPad directly.
This commit is contained in:
Sebastian Dröge 2014-10-04 23:09:19 +03:00
parent b7ab2f0b08
commit 7b428a8bcb

View file

@ -137,7 +137,6 @@ struct _GstVideoEncoderPrivate
/* FIXME : (and introduce a context ?) */
gboolean drained;
gboolean at_eos;
gint64 min_latency;
gint64 max_latency;
@ -453,7 +452,6 @@ gst_video_encoder_init (GstVideoEncoder * encoder, GstVideoEncoderClass * klass)
g_rec_mutex_init (&encoder->stream_lock);
priv->at_eos = FALSE;
priv->headers = NULL;
priv->new_headers = FALSE;
@ -990,7 +988,6 @@ gst_video_encoder_sink_event_default (GstVideoEncoder * encoder,
GstFlowReturn flow_ret;
GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
encoder->priv->at_eos = TRUE;
if (encoder_class->finish) {
flow_ret = encoder_class->finish (encoder);
@ -1033,8 +1030,6 @@ gst_video_encoder_sink_event_default (GstVideoEncoder * encoder,
break;
}
encoder->priv->at_eos = FALSE;
encoder->input_segment = segment;
ret = TRUE;
GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
@ -1365,11 +1360,6 @@ gst_video_encoder_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
gst_buffer_get_size (buf), GST_TIME_ARGS (pts),
GST_TIME_ARGS (GST_BUFFER_DTS (buf)), GST_TIME_ARGS (duration));
if (priv->at_eos) {
ret = GST_FLOW_EOS;
goto done;
}
start = pts;
if (GST_CLOCK_TIME_IS_VALID (duration))
stop = start + duration;