diff options
Diffstat (limited to 'libavformat/asfdec_f.c')
-rw-r--r-- | libavformat/asfdec_f.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c index 6dbd2b9..807df4e 100644 --- a/libavformat/asfdec_f.c +++ b/libavformat/asfdec_f.c @@ -779,6 +779,7 @@ static int asf_read_header(AVFormatContext *s) for (;;) { uint64_t gpos = avio_tell(pb); + int ret = 0; ff_get_guid(pb, &g); gsize = avio_rl64(pb); print_guid(&g); @@ -795,13 +796,9 @@ static int asf_read_header(AVFormatContext *s) if (gsize < 24) return AVERROR_INVALIDDATA; if (!ff_guidcmp(&g, &ff_asf_file_header)) { - int ret = asf_read_file_properties(s, gsize); - if (ret < 0) - return ret; + ret = asf_read_file_properties(s, gsize); } else if (!ff_guidcmp(&g, &ff_asf_stream_header)) { - int ret = asf_read_stream_properties(s, gsize); - if (ret < 0) - return ret; + ret = asf_read_stream_properties(s, gsize); } else if (!ff_guidcmp(&g, &ff_asf_comment_header)) { asf_read_content_desc(s, gsize); } else if (!ff_guidcmp(&g, &ff_asf_language_guid)) { @@ -830,7 +827,6 @@ static int asf_read_header(AVFormatContext *s) if (!s->keylen) { if (!ff_guidcmp(&g, &ff_asf_content_encryption)) { unsigned int len; - int ret; AVPacket pkt; av_log(s, AV_LOG_WARNING, "DRM protected stream detected, decoding will likely fail!\n"); @@ -856,6 +852,9 @@ static int asf_read_header(AVFormatContext *s) } } } + if (ret < 0) + return ret; + if (avio_tell(pb) != gpos + gsize) av_log(s, AV_LOG_DEBUG, "gpos mismatch our pos=%"PRIu64", end=%"PRId64"\n", |