The Windows operating system, in its three or so decades of existence, has introduced at least four different APIs dedicated to multimedia encoding or decoding. Wine, as a Free Software replacement of Windows, implements most of those APIs using GStreamer as a backend.
In this presentation I intend to talk about our experiences working with GStreamer as a backend, and its advantages and disadvantages that we have found with it.
I also intend to talk about some larger unsolved problems we have that are specific to the challenge of implementing another API using GStreamer. These include:
supporting zero-copy into application-provided buffers,
matching application expectations of synchronous decoding,
consistently retrieving stream metadata, especially optional stream metadata.
In the talk I intend to propose some potential solutions to these problems, but more generally to raise them as questions for the GStreamer development community to think about.
[As as side note, I've proposed this as a 45-minute talk, because I anticipate it can easily run that long. However, if there is not time for a 45-minute talk, I would be happy to give a talk in a shorter time slot, condensing the presentation if necessary.]
|I am a Wine developer employed by CodeWeavers. I have worked on many areas of Wine, including prominently its multimedia support, and I maintain much of the multimedia code in Wine, including the GStreamer backend translation code.