Commit 3960992f authored by James Almer's avatar James Almer Committed by Michael Niedermayer

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 d1f05dd1 and produced bogus warnings about
multiple fisbone in the same stream on files with more than one stream.
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 2aa2b4ac
...@@ -74,12 +74,17 @@ static int skeleton_header(AVFormatContext *s, int idx) ...@@ -74,12 +74,17 @@ static int skeleton_header(AVFormatContext *s, int idx)
target_idx = ogg_find_stream(ogg, AV_RL32(buf+12)); target_idx = ogg_find_stream(ogg, AV_RL32(buf+12));
start_granule = AV_RL64(buf+36); 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) { if (os->start_granule != OGG_NOGRANULE_VALUE) {
avpriv_report_missing_feature(s, avpriv_report_missing_feature(s,
"Multiple fisbone for the same stream"); "Multiple fisbone for the same stream");
return 1; return 1;
} }
if (target_idx >= 0 && start_granule != OGG_NOGRANULE_VALUE) { if (start_granule != OGG_NOGRANULE_VALUE) {
os->start_granule = start_granule; os->start_granule = start_granule;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment