提交 aedffc0b 编写于 作者: J James Almer

avcodec/mlp_parser: mark sync frames as key frames

Signed-off-by: NJames Almer <jamrial@gmail.com>
上级 29f8d4e9
......@@ -61,6 +61,8 @@ static int mlp_parse(AVCodecParserContext *s,
int ret;
int i, p = 0;
s->key_frame = 0;
*poutbuf_size = 0;
if (buf_size == 0)
return 0;
......@@ -136,6 +138,8 @@ static int mlp_parse(AVCodecParserContext *s,
* access unit header and all the 2- or 4-byte substream headers. */
// Only check when this isn't a sync frame - syncs have a checksum.
s->key_frame = 0;
parity_bits = 0;
for (i = -1; i < mp->num_substreams; i++) {
parity_bits ^= buf[p++];
......@@ -159,6 +163,8 @@ static int mlp_parse(AVCodecParserContext *s,
if (ff_mlp_read_major_sync(avctx, &mh, &gb) < 0)
goto lost_sync;
s->key_frame = 1;
avctx->bits_per_raw_sample = mh.group1_bits;
if (avctx->bits_per_raw_sample > 16)
avctx->sample_fmt = AV_SAMPLE_FMT_S32;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册