Browse Source

mov: move stsd finalization to an appropriate place

mov_finalize_stsd_codec() parses stream information from the ALAC extradata,
so run it after the extradata processing is completed in mov_read_stsd().

Fixes playback of 96kHz ALAC streams muxed by qaac or the reference alac encoder.

Adapted from an FFmpeg patch by Hendrik Leppkes <h.leppkes@gmail.com>

Bug-Id: 1072
tags/n4.0
Sean McGovern 7 years ago
parent
commit
defe307fb2
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      libavformat/mov.c

+ 2
- 2
libavformat/mov.c View File

@@ -1857,7 +1857,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
if (pb->eof_reached)
return AVERROR_EOF;

return mov_finalize_stsd_codec(c, pb, st, sc);
return 0;
}

static int mov_read_stsd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
@@ -1913,7 +1913,7 @@ static int mov_read_stsd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
}
memcpy(st->codecpar->extradata, sc->extradata[0], sc->extradata_size[0]);

return 0;
return mov_finalize_stsd_codec(c, pb, st, sc);
fail:
av_freep(&sc->extradata);
av_freep(&sc->extradata_size);


Loading…
Cancel
Save