You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In C++ we currently have a parent abstract Consumer class and then SimpleConsumer, SimulcastConsumer, SvcConsumer and PipeConsumer that inherit from Consumer.
Those classes are intended to handle different producing scenarios and associated codecs.
For example a video transmission could use VP8 in single stream mode so it would use SingleConsumer.
Or with N streams in simulcast mode so it would use SimulcastConsumer.
Problems
Those classes do not represent real scenarios.
For example, a producer may perfectly use VP8 with a single stream (so this is not simulcast) and temporal layers. We currently manage it in SimulcastConsumer since it's the one ready for VP8 codec, but this is SVC.
Have a single Consumer class ready to deal with all use cases and all supported codecs.
This would also help in the future when we implement the ability to switch from a producer to another in the same consumer.
We should also reconsider those producer.type and consumer.type ("single", "simulcast", "svc" and "pipe") since they don't make any sense. However this would introduce breaking changes. Let's see how to do it.
Details
Consumerclass and thenSimpleConsumer,SimulcastConsumer,SvcConsumerandPipeConsumerthat inherit fromConsumer.SingleConsumer.SimulcastConsumer.Problems
SimulcastConsumersince it's the one ready for VP8 codec, but this is SVC.Proposal
Consumerclass ready to deal with all use cases and all supported codecs.producer.typeandconsumer.type("single", "simulcast", "svc" and "pipe") since they don't make any sense. However this would introduce breaking changes. Let's see how to do it.