1
mirror of https://git.videolan.org/git/ffmpeg.git synced 2024-09-04 23:38:20 +02:00

avcodec/mlpdec: update matrix encoding only if it changed

This commit is contained in:
Paul B Mahol 2021-09-04 15:04:27 +02:00
parent d2cf2cb0bd
commit 114634a51a

View File

@ -73,6 +73,7 @@ typedef struct SubStream {
uint64_t mask;
/// The matrix encoding mode for this substream
enum AVMatrixEncoding matrix_encoding;
enum AVMatrixEncoding prev_matrix_encoding;
/// Channel coding parameters for channels in the substream
ChannelParams channel_params[MAX_CHANNELS];
@ -1123,8 +1124,12 @@ static int output_data(MLPDecodeContext *m, unsigned int substr,
is32);
/* Update matrix encoding side data */
if ((ret = ff_side_data_update_matrix_encoding(frame, s->matrix_encoding)) < 0)
return ret;
if (s->matrix_encoding != s->prev_matrix_encoding) {
if ((ret = ff_side_data_update_matrix_encoding(frame, s->matrix_encoding)) < 0)
return ret;
s->prev_matrix_encoding = s->matrix_encoding;
}
*got_frame_ptr = 1;
@ -1353,6 +1358,7 @@ static void mlp_decode_flush(AVCodecContext *avctx)
SubStream *s = &m->substream[substr];
s->lossless_check_data = 0xffffffff;
s->prev_matrix_encoding = 0;
}
}