On Tue Nov 21 22:26:01 2023 +0000, Zebediah Figura wrote:
This is true. Given GStreamer's asynchronous nature this may arguably even be the best solution. We can assume that the GStreamer element is going to be synchronous, which is often the case, but not always... It does make me nervous to return DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE and then have a following call to ProcessOutput() fail, though. But I doubt there's a better alternative.
Yeah, this looks comparable to mpegpsdemux output to me; whatever it gives to the mpegvideoparse element has nothing to do with the frame boundaries. Especially considering all input packets are 13375 bytes - 13375 bytes of losslessly compressed input means variable amount of output.
I could check if the queue is empty and return a flag based on that, but that'd be a chunk of WMA-specific code in shared regions, it would have zero test coverage unless I include that 80MB Wagamama WMV somewhere, and it would solve a problem that affects exactly nothing in practice.
Yeah, the current solution is still the best option I can think of.
(But yes, still not good.)