opusenc: the encoder might not make use of all the bytes
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Wed, 16 Nov 2011 19:22:44 +0000 (19:22 +0000)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Sat, 19 Nov 2011 15:59:52 +0000 (15:59 +0000)
ext/opus/gstopusenc.c

index f632a72..327c5fa 100644 (file)
@@ -588,7 +588,7 @@ gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buf)
       GST_ERROR_OBJECT (enc, "Encoding failed: %d", outsize);
       ret = GST_FLOW_ERROR;
       goto done;
-    } else if (outsize != bytes_per_packet) {
+    } else if (outsize > bytes_per_packet) {
       GST_WARNING_OBJECT (enc,
           "Encoded size %d is different from %d bytes per packet", outsize,
           bytes_per_packet);
@@ -596,6 +596,8 @@ gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buf)
       goto done;
     }
 
+    GST_BUFFER_SIZE (outbuf) = outsize;
+
     ret =
         gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (enc), outbuf,
         enc->frame_samples);