Create the codec context from the demuxer, so that it can fill context data for the decoder and recorder.
There was a packet sink trait, implemented by components able to receive AVPackets, but each packet source had to manually send packets to sinks. In order to mutualise sink management, add a packet source trait.