summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2014-04-30 15:30:45 +0100
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2014-06-06 12:29:54 +0100
commit17e2e9acd9b9be3cc3637a60507892ca4a97bd0a (patch)
tree4dbd673dde42452095d1b17f7bd6676ba9793cdf
parent406d5ba04afd4d512c36065f670b0315f621027f (diff)
downloadgst-libav-17e2e9acd9b9be3cc3637a60507892ca4a97bd0a.tar.gz
avaudenc: avoid using wrong number of samples
If audio_in is NULL, we'll send a NULL frame to libav, to flush the codec. In that case, we won't know how many samples the codec will have used, so we use -1 (for don't know) when letting the base class know about the buffer. Coverity 1195177
-rw-r--r--ext/libav/gstavaudenc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/libav/gstavaudenc.c b/ext/libav/gstavaudenc.c
index fcb176d..a9aa88a 100644
--- a/ext/libav/gstavaudenc.c
+++ b/ext/libav/gstavaudenc.c
@@ -553,7 +553,7 @@ gst_ffmpegaudenc_encode_audio (GstFFMpegAudEnc * ffmpegaudenc,
pkt, gst_ffmpegaudenc_free_avpacket);
codec = ffmpegaudenc->context->codec;
- if ((codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)) {
+ if ((codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE) || !audio_in) {
ret = gst_audio_encoder_finish_frame (enc, outbuf, -1);
} else {
ret = gst_audio_encoder_finish_frame (enc, outbuf, frame.nb_samples);