This should fix Ticket6349 Since 383057f8e744efeaaa3648a59bc577b25b055835, framequeue may generate unaligned frame data.
Signed-off-by: Muhammad Faiz <mfc...@gmail.com> --- libavcodec/libmp3lame.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c index 5e26743..cd505bb 100644 --- a/libavcodec/libmp3lame.c +++ b/libavcodec/libmp3lame.c @@ -203,15 +203,20 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, ENCODE_BUFFER(lame_encode_buffer_int, int32_t, frame->data); break; case AV_SAMPLE_FMT_FLTP: - if (frame->linesize[0] < 4 * FFALIGN(frame->nb_samples, 8)) { - av_log(avctx, AV_LOG_ERROR, "inadequate AVFrame plane padding\n"); - return AVERROR(EINVAL); - } for (ch = 0; ch < avctx->channels; ch++) { + if (frame->linesize[0] < 4 * FFALIGN(frame->nb_samples, 8) || 0x1F & (intptr_t)(frame->data[ch])) { + float *src = (float *) frame->data[ch]; + float *dst = s->samples_flt[ch]; + int k; + + for (k = 0; k < frame->nb_samples; k++) + dst[k] = src[k] * 32768.0f; + } else { s->fdsp->vector_fmul_scalar(s->samples_flt[ch], (const float *)frame->data[ch], 32768.0f, FFALIGN(frame->nb_samples, 8)); + } } ENCODE_BUFFER(lame_encode_buffer_float, float, s->samples_flt); break; -- 2.9.3 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel