Simplify passing video coded factories in media engine
We soon want to be able to pass in a new type of video codec factories,
see issue 7925 for more information. We currently plumb these video
codec factories in a clumsy way from the media engine to the video
engine, which will require us to update a lot of places when we add
new video codec factory types. This CL cleans up the way we pass in
video codec factories to make it easier to add the new factory types.
In particular, this CL:
* Updates WebRtcVideoEngine to take the video codec factories as
arguments in ctor instead of in SetExternalVideoCodec functions.
* Remove the Init() function from the vidoe engines - this function is
* Update CompositeMediaEngine to take generic variadic arguments, so we
can send different arguments for different engines, without having to
update this class.
* Simplify ownership of video codec factories in WebRtcVideoEngine.
WebRtcVideoEngine outlives WebRtcVideoChannel,
WebRtcVideoSendStream and WebRtcVideoReceiveStream, so it can
keep ownership without having to share ownership with these classes.
9 files changed