GNOME Bugzilla – Bug 772018
avdec_wmalossless: Add support for 24-bit format
Last modified: 2018-11-03 12:57:51 UTC
The upstream ffmpeg now fully supports 24-bit PCM output for WMA Lossless, not only 16 bit. The problem is that when getting data in this mode, it produces one valid output frame for 3 input frames. I'm attaching a patch that makes it work, but I'm totally unsure if it does the right thing. Here is a test file: http://people.freedesktop.org/~tester/45s-96khz-24bit-51ch-lossless.wma
Created attachment 336306 [details] [review] avcodecmap: Enable 24 bit WMA Lossless decoding This now works with recent ffmpeg.
Created attachment 336307 [details] [review] Drop frame from GstAudioDecoder base class if no data was received
Comment on attachment 336307 [details] [review] Drop frame from GstAudioDecoder base class if no data was received The problem here is that we might also not have data yet because the decoder is queueing up internally. Finishing the frame would then cause timestamp tracking and everything to go out of sync with reality.
@slomo: This is exactly what I was afraid of, I'm not sure if we can differentiate both somehow?
Why is the decoder dropping data if it was not a header and there was no error?
I don't think the decoder is dropping data, I think it needs ~3 input buffers per output buffer. So it may be that the demuxer is not doing it right, or maybe we need a parser for this particular format?
Sounds like some parsing is needed, yes
enabling WMA lossless without the other patch results in bad output.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/28.