-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Force key frame on PLI #338
Conversation
456950d
to
668f0fb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
API design looks nice to me. Left some minor comments.
97035d2
to
e2b71a1
Compare
Stil waiting for pion/webrtc#1812 to be merged for being able to make this PR ready to merge. Do you have any insigh on what I can do to make it happen ? |
9de29da
to
b1f7693
Compare
.idea/misc.xml
Outdated
@@ -0,0 +1,6 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@EmrysMyrddin Remove this file please
662d1ac
to
0b71f7c
Compare
7ad4cfc
to
f687012
Compare
Also make the ReadCloser an Controllable allows to uncouple the controller implementation from the encoder. This is not needed for the 2 codec controller already implemented (openh264 and vpx) but is more future proof in case it required for other codecs.
f687012
to
fcefdd4
Compare
Description
This is a first POC around handling PLI for codecs on which we have control over key frame generation.
I have added the idea of an
EncoderController
instead of addingForceKeyFrame
andSetBitRate
directly on theReadCloser
interface.This allows more flexibility on encoder implementation. The main benefit is that you can optionally implement bit rate and key frame control. In our case, only 2 codecs have this implementations.
Using interfaces for each controls allows to check if an encoder have this controls and enable features only on compatible encoders.
The next step probably to add handling of bit rate negotiation packets, but this PR is already pretty long so I don't want to put too much stuff in it for now.
Reference issue
This PR needs some modification in the
pion/webrtc
package for being able to read RTCP feedbacks. Here is the related PR that needs to be merged before this one: pion/webrtc#1812