Browse Source

oggparseskeleton: Fix fisbone header parsing

start_granule should be applied to the stream referenced in the fisbone packet, not to the
Skeleton stream.
This was broken in d1f05dd183 and produced bogus warnings about
multiple fisbone in the same stream on files with more than one stream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.0
James Almer Michael Niedermayer 12 years ago
parent
commit
3960992f0a
1 changed files with 6 additions and 1 deletions
  1. +6
    -1
      libavformat/oggparseskeleton.c

+ 6
- 1
libavformat/oggparseskeleton.c View File

@@ -74,12 +74,17 @@ static int skeleton_header(AVFormatContext *s, int idx)

target_idx = ogg_find_stream(ogg, AV_RL32(buf+12));
start_granule = AV_RL64(buf+36);
if (target_idx < 0) {
av_log(s, AV_LOG_WARNING, "Serial number in fisbone doesn't match any stream\n");
return 1;
}
os = ogg->streams + target_idx;
if (os->start_granule != OGG_NOGRANULE_VALUE) {
avpriv_report_missing_feature(s,
"Multiple fisbone for the same stream");
return 1;
}
if (target_idx >= 0 && start_granule != OGG_NOGRANULE_VALUE) {
if (start_granule != OGG_NOGRANULE_VALUE) {
os->start_granule = start_granule;
}
}


Loading…
Cancel
Save