From 3b0c220868929c8170d881a1237367a016341448 Mon Sep 17 00:00:00 2001
From: Ilkka Ollakka <ileoo@videolan.org>
Date: Sun, 5 May 2013 15:30:55 +0300
Subject: [PATCH] avcodec: check if we need to padd last frame

Should Fix #8539
---
 modules/codec/avcodec/encoder.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index 57d4ef496d68..c814307bcc7a 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -1148,6 +1148,15 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
             p_aout_buf->i_buffer     -= leftover;
             p_aout_buf->i_pts         = date_Get( &p_sys->buffer_date );
         }
+        if(unlikely( ( (leftover + buffer_delay) < p_sys->i_buffer_out ) &&
+                     !(p_sys->p_codec->capabilities & CODEC_CAP_SMALL_LAST_FRAME ))
+          )
+        {
+            msg_Dbg( p_enc, "No small last frame support, padding");
+            size_t padding_size = p_sys->i_buffer_out - (leftover+buffer_delay);
+            memset( p_sys->p_buffer + (leftover+buffer_delay), 0, padding_size );
+            buffer_delay += padding_size;
+        }
         if( avcodec_fill_audio_frame( p_sys->frame, p_enc->fmt_in.audio.i_channels,
                 p_sys->p_context->sample_fmt, p_sys->p_buffer,
                 leftover + buffer_delay,
-- 
GitLab