Lines 36-41
typedef struct DTSContext {
Link Here
|
36 |
uint8_t buf[BUFFER_SIZE]; |
36 |
uint8_t buf[BUFFER_SIZE]; |
37 |
uint8_t *bufptr; |
37 |
uint8_t *bufptr; |
38 |
uint8_t *bufpos; |
38 |
uint8_t *bufpos; |
|
|
39 |
int flags; |
40 |
int sample_rate; |
41 |
int bit_rate; |
39 |
} DTSContext; |
42 |
} DTSContext; |
40 |
|
43 |
|
41 |
static inline int16_t |
44 |
static inline int16_t |
Lines 173-182
dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
Link Here
|
173 |
uint8_t *start = buff; |
176 |
uint8_t *start = buff; |
174 |
uint8_t *end = buff + buff_size; |
177 |
uint8_t *end = buff + buff_size; |
175 |
int16_t *out_samples = data; |
178 |
int16_t *out_samples = data; |
176 |
int sample_rate; |
|
|
177 |
int frame_length; |
179 |
int frame_length; |
178 |
int flags; |
180 |
int flags; |
179 |
int bit_rate; |
|
|
180 |
int len; |
181 |
int len; |
181 |
level_t level; |
182 |
level_t level; |
182 |
sample_t bias; |
183 |
sample_t bias; |
Lines 201-208
dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
Link Here
|
201 |
if(s->bufpos != s->buf + HEADER_SIZE) |
202 |
if(s->bufpos != s->buf + HEADER_SIZE) |
202 |
break; |
203 |
break; |
203 |
|
204 |
|
204 |
length = dts_syncinfo(s->state, s->buf, &flags, &sample_rate, |
205 |
length = dts_syncinfo(s->state, s->buf, &s->flags, &s->sample_rate, |
205 |
&bit_rate, &frame_length); |
206 |
&s->bit_rate, &frame_length); |
206 |
if(!length) { |
207 |
if(!length) { |
207 |
av_log(NULL, AV_LOG_INFO, "skip\n"); |
208 |
av_log(NULL, AV_LOG_INFO, "skip\n"); |
208 |
for(s->bufptr = s->buf; s->bufptr < s->buf + HEADER_SIZE - 1; s->bufptr++) |
209 |
for(s->bufptr = s->buf; s->bufptr < s->buf + HEADER_SIZE - 1; s->bufptr++) |
Lines 215-229
dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
Link Here
|
215 |
level = CONVERT_LEVEL; |
216 |
level = CONVERT_LEVEL; |
216 |
bias = CONVERT_BIAS; |
217 |
bias = CONVERT_BIAS; |
217 |
|
218 |
|
218 |
flags |= DTS_ADJUST_LEVEL; |
219 |
flags = s->flags | DTS_ADJUST_LEVEL; |
219 |
if(dts_frame(s->state, s->buf, &flags, &level, bias)) { |
220 |
if(dts_frame(s->state, s->buf, &flags, &level, bias)) { |
220 |
av_log(avctx, AV_LOG_ERROR, "dts_frame() failed\n"); |
221 |
av_log(avctx, AV_LOG_ERROR, "dts_frame() failed\n"); |
221 |
goto end; |
222 |
goto end; |
222 |
} |
223 |
} |
223 |
|
224 |
|
224 |
avctx->sample_rate = sample_rate; |
225 |
avctx->sample_rate = s->sample_rate; |
225 |
avctx->channels = channels_multi(flags); |
226 |
avctx->channels = channels_multi(flags); |
226 |
avctx->bit_rate = bit_rate; |
227 |
avctx->bit_rate = s->bit_rate; |
227 |
|
228 |
|
228 |
nblocks = dts_blocks_num(s->state); |
229 |
nblocks = dts_blocks_num(s->state); |
229 |
|
230 |
|
230 |
- |
|
|