@@ -, +, @@ --- libavcodec/dtsdec.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) --- a/libavcodec/dtsdec.c +++ a/libavcodec/dtsdec.c @@ -36,6 +36,7 @@ typedef struct DTSContext { uint8_t buf[BUFFER_SIZE]; uint8_t *bufptr; uint8_t *bufpos; + int flags; } DTSContext; static inline int16_t @@ -201,7 +202,7 @@ dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size, if(s->bufpos != s->buf + HEADER_SIZE) break; - length = dts_syncinfo(s->state, s->buf, &flags, &sample_rate, + length = dts_syncinfo(s->state, s->buf, &s->flags, &sample_rate, &bit_rate, &frame_length); if(!length) { av_log(NULL, AV_LOG_INFO, "skip\n"); @@ -215,7 +216,7 @@ dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size, level = CONVERT_LEVEL; bias = CONVERT_BIAS; - flags |= DTS_ADJUST_LEVEL; + flags = s->flags | DTS_ADJUST_LEVEL; if(dts_frame(s->state, s->buf, &flags, &level, bias)) { av_log(avctx, AV_LOG_ERROR, "dts_frame() failed\n"); goto end; --