[FFmpeg-devel] [PATCH] avcodec/wmaprodec: skip foreign XMA packets

Joel Linn jl at conductive.de
Wed Sep 1 11:38:29 EEST 2021


On 2021-09-01 08:26, Paul B Mahol wrote:
> On Tue, Aug 31, 2021 at 11:19 PM Joel Linn <jl at conductive.de> wrote:
> 
>> On 2021-08-31 23:13, Paul B Mahol wrote:
>> > On Tue, Aug 31, 2021 at 11:10 PM Joel Linn <jl at conductive.de> wrote:
>> >
>> >> Hello,
>> >>
>> >> On 2021-08-31 22:53, Paul B Mahol wrote:
>> >> > What samples this fixes?
>> >>
>> >> No specific sample, it depends on the way the decoder is invoked.
>> >>
>> >> It fixes using the xma1/2 decoder directly on a memory buffer and not
>> >> wanting to decode all channels in the stream.
>> >> Say the stream has 6 channels and one wants to only decode 2.
>> >> Previously this was not possible due to the skip logic of the channel
>> >> interleaving.
>> >>
>> >> This should also make the decoder more robust because in theory it is
>> >> possible to have an xma stream which has chunks of 2kB junk data
>> >> (packets) which are expected to be skipped due to the skip_packets
>> >> numbers.
>> >> I haven't seen such streams though.
>> >>
>> >
>> > Am I correct you already use XMA parser?
>> 
>> In my case I was working with raw stream buffers, the XMA format 
>> (RIFF)
>> headers are invisible to me.
>> The format is parsed and processed by guest code (inside xenia
>> emulator).
>> ffmpeg replaces a hardware decoder dsp in this case.
>> 
> 
> You should really use XMA parser, it have nothing to do with RIFF.

Sorry misunderstood you.
While xma_parser indeed skips packets correctly, I do not see how that 
affects buffer parsing in `xma_decode_packet`.


I introduced a small bug (variable declaration) in the patch during 
submission cleanup, will need to submit v2.


More information about the ffmpeg-devel mailing list