Decoding is predominantly a matter of turning a multimedia stream in any format into a set of formats that can be rendered. The application never has a reason to care about the source format (and therefore in practice rarely does), and usually doesn't have a reason to care about the destination format either (it just needs to be something that can be fed to GL/X11/D3D/GDI or Pulse/ALSA/mmdevapi). Autoplugging makes sense, since there's generally only one (best) element that can be used to decode.
Maybe, but that's only the theory, and in practice some applications don't follow this and either make assumptions, or control things manually.
Wait, what, why? I know there was discussion about fixing non-determinism by manually reimplementing decodebin, but why does that need to affect the frontends at all? Why can't we just do it inside of the existing parser?
The main reason is that I think wg_parser is complicated, hard to debug, and any change risky and difficult to review.
I would like to have a synchronous demuxer component used in media_source only for now, and that works in push mode only.
This will also allow it to be merged step by step more easily, and with less risk of breaking the other wg_parser clients.