mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-16 20:07:04 +00:00
avcodec/mlp_parser: mark sync frames as key frames
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
29f8d4e947
commit
aedffc0b22
@ -61,6 +61,8 @@ static int mlp_parse(AVCodecParserContext *s,
|
|||||||
int ret;
|
int ret;
|
||||||
int i, p = 0;
|
int i, p = 0;
|
||||||
|
|
||||||
|
s->key_frame = 0;
|
||||||
|
|
||||||
*poutbuf_size = 0;
|
*poutbuf_size = 0;
|
||||||
if (buf_size == 0)
|
if (buf_size == 0)
|
||||||
return 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. */
|
* 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.
|
// Only check when this isn't a sync frame - syncs have a checksum.
|
||||||
|
|
||||||
|
s->key_frame = 0;
|
||||||
|
|
||||||
parity_bits = 0;
|
parity_bits = 0;
|
||||||
for (i = -1; i < mp->num_substreams; i++) {
|
for (i = -1; i < mp->num_substreams; i++) {
|
||||||
parity_bits ^= buf[p++];
|
parity_bits ^= buf[p++];
|
||||||
@ -159,6 +163,8 @@ static int mlp_parse(AVCodecParserContext *s,
|
|||||||
if (ff_mlp_read_major_sync(avctx, &mh, &gb) < 0)
|
if (ff_mlp_read_major_sync(avctx, &mh, &gb) < 0)
|
||||||
goto lost_sync;
|
goto lost_sync;
|
||||||
|
|
||||||
|
s->key_frame = 1;
|
||||||
|
|
||||||
avctx->bits_per_raw_sample = mh.group1_bits;
|
avctx->bits_per_raw_sample = mh.group1_bits;
|
||||||
if (avctx->bits_per_raw_sample > 16)
|
if (avctx->bits_per_raw_sample > 16)
|
||||||
avctx->sample_fmt = AV_SAMPLE_FMT_S32;
|
avctx->sample_fmt = AV_SAMPLE_FMT_S32;
|
||||||
|
Loading…
Reference in New Issue
Block a user