On 9/17/19 9:04 AM, Akihiro Sagawa wrote:
On Mon, 16 Sep 2019 19:29:47 -0500, Zebediah Figura wrote:
Signed-off-by: Zebediah Figura z.figura12@gmail.com
As might be implied by this patch, I also have patches to replace the AVI splitter and the MPEG-1 splitter with avidemux and mpegaudioparse, respectively.
This of course means requiring GStreamer to decode all media files. I'm not particularly inclined to see this as a blocking problem, especially since the required plugins are all in the "good" set, which as far as I'm aware has full multiarch handling in all major distributions.
I'm so exciting to hear this idea. This might be outside the scope of your improvements, but what do you think about decoding MPEG-1 video streams? GStreamer's mpegpsdemux and mpegvideoparse are in the "bad" set and have multi-arch issue in Ubuntu 18.04 LTS[1].
Well, that's essentially the problem we have already; this patch doesn't really change anything. But yes, implementing either PS or video parsing would be pretty easy to plug in in this manner.
(Side note: I'm not actually sure whether PS demuxing is still covered under patents. If it is, we don't have much of a choice anyway; we'd have to delegate to some library or another...)
Note also that it's extremely rare for applications to manually create decoders. Bug 9127 [2] has a lot of applications attached to it, but almost all of them use one of the autoplugging APIs (RenderFile(), Connect(), etc.) The only one I found that actually depends on the MPEG-1 stream splitter being able to split program streams is LEGO Drome Racers.
[2] https://bugs.winehq.org/show_bug.cgi?id=9127
Regarding the patch, it's very long. You might want to split into two parts, e.g. i) introducing init_gst member and make gstdecoder_init_gst, ii) move WAVE parser function to winegstreamer and add wave_parser_init_gst.
Yeah, that's probably a good idea.
Akihiro Sagawa