[FFmpeg-devel] [PATCH] avformat/electronicarts: support ADPCM PSX

Paul B Mahol onemda at gmail.com
Thu Oct 22 09:23:50 CEST 2015


Dana 22. 10. 2015. 06:30 osoba "Peter Ross" <pross at xvid.org> napisala je:
>
> On Wed, Oct 21, 2015 at 11:14:02PM +0200, Paul B Mahol wrote:
> > Signed-off-by: Paul B Mahol <onemda at gmail.com>
> > ---
> >  libavformat/electronicarts.c | 19 +++++++++++++++----
> >  1 file changed, 15 insertions(+), 4 deletions(-)
> >
> > diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
> > index c0b6d6e..12eec80 100644
> > --- a/libavformat/electronicarts.c
> > +++ b/libavformat/electronicarts.c
> > @@ -86,6 +86,8 @@ typedef struct EaDemuxContext {
> >      int sample_rate;
> >      int num_channels;
> >      int num_samples;
> > +
> > +    int platform;
> >  } EaDemuxContext;
>
> all looks okay
> tested with psx samples
>
> > @@ -653,7 +664,7 @@ static int ea_read_packet(AVFormatContext *s,
AVPacket *pkt)
> >          case SEND_TAG:
> >          case SEEN_TAG:
> >              while (!avio_feof(pb)) {
> > -                if (avio_rl32(pb)) {
> > +                if (avio_rl32(pb) == SCHl_TAG) {
> >                      avio_skip(pb, -4);
> >                      break;
> >                  }
>
> seems unrelated to demuxing files containing ADPCM PSX audio?

The adpcm psx one contain some junk bytes causing premature eof, so I wil
also check for other tags. Thanks.

>
> also note, this case block is triggered by several different versions of
elecontric arts files
> 'end audio stream tags' (SEAD, 1SNx, SCxLl). but when with this hunk
applied, the loop only ends early
> if 'SCHl_TAG' is reached.
>
> -- Peter
> (A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list