ffmpeg | branch: master | Zane van Iperen <z...@zanevaniperen.com> | Fri Sep 25 
22:25:42 2020 +1000| [3ffb15a105f88544b6b93bb32c9ac9f62b90f456] | committer: 
Zane van Iperen

avformat/argo_brp: allow v1.1 ASF streams to have a non-22050 sample rate in 
certain circumstances

It seems that in files where the BASF block isn't first, v1.1 ASF streams are
allowed to be non-22050. Either this format is really inconsistent, or
FX Fighter and Croc just ignored the sample rate field, requiring the v1.1
restriction in the first place.

This bumps the version to 1.2 in these streams so they're not "corrected".

Found in Alien Odyssey games files in:
./GRAPHICS/COMMBUNK/{{COMADD1,COMM2_{1,2,3E},COMM3_{2,3,4,5,6}},FADE{1,2}}.BRP

Signed-off-by: Zane van Iperen <z...@zanevaniperen.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3ffb15a105f88544b6b93bb32c9ac9f62b90f456
---

 libavformat/argo_brp.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c
index 4041183011..af64a0d6dc 100644
--- a/libavformat/argo_brp.c
+++ b/libavformat/argo_brp.c
@@ -323,6 +323,20 @@ static int argo_brp_read_header(AVFormatContext *s)
 
         ff_argo_asf_parse_chunk_header(&brp->basf.ckhdr, buf);
 
+        /*
+         * Special Case Hack. It seems that in files where the BASF block 
isn't first,
+         * v1.1 streams are allowed to be non-22050...
+         * Bump the version to 1.2 so ff_argo_asf_fill_stream() doesn't 
"correct" it.
+         *
+         * Found in Alien Odyssey games files in:
+         * 
./GRAPHICS/COMMBUNK/{{COMADD1,COMM2_{1,2,3E},COMM3_{2,3,4,5,6}},FADE{1,2}}.BRP
+         *
+         * Either this format really inconsistent, or FX Fighter and Croc just 
ignored the
+         * sample rate field...
+         */
+        if (i != 0 && hdr->extradata.basf.version_major == 1 && 
hdr->extradata.basf.version_minor == 1)
+            hdr->extradata.basf.version_minor = 2;
+
         if ((ret = ff_argo_asf_fill_stream(s, st, &hdr->extradata.basf, 
&brp->basf.ckhdr)) < 0)
             return ret;
 

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to