From c5e9df4b517f3706821a78bb727590ac64d5a09b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 25 May 2013 16:08:06 +0200 Subject: [PATCH] videoencoder: Don't require an output state to be set before allocating output buffers --- gst-libs/gst/video/gstvideoencoder.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c index 6f92493b91..dff8b19b56 100644 --- a/gst-libs/gst/video/gstvideoencoder.c +++ b/gst-libs/gst/video/gstvideoencoder.c @@ -1600,14 +1600,14 @@ gst_video_encoder_allocate_output_buffer (GstVideoEncoder * encoder, gsize size) { GstBuffer *buffer; - g_return_val_if_fail (encoder->priv->output_state, NULL); g_return_val_if_fail (size > 0, NULL); GST_DEBUG ("alloc src buffer"); GST_VIDEO_ENCODER_STREAM_LOCK (encoder); if (G_UNLIKELY (encoder->priv->output_state_changed - || gst_pad_check_reconfigure (encoder->srcpad))) { + || (encoder->priv->output_state + && gst_pad_check_reconfigure (encoder->srcpad)))) { if (!gst_video_encoder_negotiate (encoder)) { GST_DEBUG_OBJECT (encoder, "Failed to negotiate, fallback allocation"); goto fallback; @@ -1654,11 +1654,11 @@ gst_video_encoder_allocate_output_frame (GstVideoEncoder * encoder, GstVideoCodecFrame * frame, gsize size) { g_return_val_if_fail (frame->output_buffer == NULL, GST_FLOW_ERROR); - g_return_val_if_fail (encoder->priv->output_state, GST_FLOW_NOT_NEGOTIATED); GST_VIDEO_ENCODER_STREAM_LOCK (encoder); if (G_UNLIKELY (encoder->priv->output_state_changed - || gst_pad_check_reconfigure (encoder->srcpad))) + || (encoder->priv->output_state + && gst_pad_check_reconfigure (encoder->srcpad)))) gst_video_encoder_negotiate (encoder); GST_LOG_OBJECT (encoder, "alloc buffer size %" G_GSIZE_FORMAT, size);