Message ID | 20170818174516.3928-1-bananaman255@gmail.com |
---|---|
State | Accepted |
Commit | e7053f3316f53fc31d25384e3b6c89c96f8a5b20 |
Headers | show |
On Fri, Aug 18, 2017 at 07:45:16PM +0200, bananaman255@gmail.com wrote: > From: bnnm <bananaman255@gmail.com> > > KB2 'i' found in Life is Strange (Xbox 360), rest verified against binkconv.exe > > Signed-off-by: bnnm <bananaman255@gmail.com> > --- > libavformat/bink.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) will apply thanks [...]
On Sun, Aug 20, 2017 at 01:51:07AM +0200, Michael Niedermayer wrote: > On Fri, Aug 18, 2017 at 07:45:16PM +0200, bananaman255@gmail.com wrote: > > From: bnnm <bananaman255@gmail.com> > > > > KB2 'i' found in Life is Strange (Xbox 360), rest verified against binkconv.exe > > > > Signed-off-by: bnnm <bananaman255@gmail.com> > > --- > > libavformat/bink.c | 17 +++++++++++++---- > > 1 file changed, 13 insertions(+), 4 deletions(-) > > will apply before pushing, just to confirm "bnnm" is the intended Author ? (it cannot be changed later) [...]
Yes, it's my github handle, thanks. 2017-08-20 3:00 GMT+02:00 Michael Niedermayer <michael@niedermayer.cc>: > On Sun, Aug 20, 2017 at 01:51:07AM +0200, Michael Niedermayer wrote: > > On Fri, Aug 18, 2017 at 07:45:16PM +0200, bananaman255@gmail.com wrote: > > > From: bnnm <bananaman255@gmail.com> > > > > > > KB2 'i' found in Life is Strange (Xbox 360), rest verified against > binkconv.exe > > > > > > Signed-off-by: bnnm <bananaman255@gmail.com> > > > --- > > > libavformat/bink.c | 17 +++++++++++++---- > > > 1 file changed, 13 insertions(+), 4 deletions(-) > > > > will apply > > before pushing, just to confirm > > "bnnm" is the intended Author ? (it cannot be changed later) > > [...] > > > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > No human being will ever know the Truth, for even if they happen to say it > by chance, they would not even known they had done so. -- Xenophanes >
diff --git a/libavformat/bink.c b/libavformat/bink.c index 20dba677db..8a05082fcd 100644 --- a/libavformat/bink.c +++ b/libavformat/bink.c @@ -65,10 +65,12 @@ static int probe(AVProbeData *p) int smush = AV_RN32(p->buf) == AV_RN32("SMUS"); do { - if (((b[0] == 'B' && b[1] == 'I' && b[2] == 'K' && - (b[3] == 'b' || b[3] == 'f' || b[3] == 'g' || b[3] == 'h' || b[3] == 'i')) || + if (((b[0] == 'B' && b[1] == 'I' && b[2] == 'K' && /* Bink 1 */ + (b[3] == 'b' || b[3] == 'f' || b[3] == 'g' || b[3] == 'h' || b[3] == 'i' || + b[3] == 'k')) || (b[0] == 'K' && b[1] == 'B' && b[2] == '2' && /* Bink 2 */ - (b[3] == 'a' || b[3] == 'd' || b[3] == 'f' || b[3] == 'g'))) && + (b[3] == 'a' || b[3] == 'd' || b[3] == 'f' || b[3] == 'g' || b[3] == 'h' || + b[3] == 'i' || b[3] == 'j' || b[3] == 'k'))) && AV_RL32(b+8) > 0 && // num_frames AV_RL32(b+20) > 0 && AV_RL32(b+20) <= BINK_MAX_WIDTH && AV_RL32(b+24) > 0 && AV_RL32(b+24) <= BINK_MAX_HEIGHT && @@ -159,7 +161,14 @@ static int read_header(AVFormatContext *s) } if (bink->num_audio_tracks) { - avio_skip(pb, 4 * bink->num_audio_tracks); + uint32_t signature = (vst->codecpar->codec_tag & 0xFFFFFF); + uint8_t revision = ((vst->codecpar->codec_tag >> 24) % 0xFF); + + if ((signature == AV_RL32("BIK") && (revision == 0x6b)) || /* k */ + (signature == AV_RL32("KB2") && (revision == 0x69 || revision == 0x6a || revision == 0x6b))) /* i,j,k */ + avio_skip(pb, 4); /* unknown new field */ + + avio_skip(pb, 4 * bink->num_audio_tracks); /* max decoded size */ for (i = 0; i < bink->num_audio_tracks; i++) { ast = avformat_new_stream(s, NULL);