-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Add full simulcast support to recordings #1127
Add full simulcast support to recordings #1127
Conversation
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.
LGTM! Just a couple of minor comments and a possible problem when closing ExternalOutput
@@ -22,6 +23,9 @@ class AsyncCloser : public Nan::AsyncWorker { | |||
~AsyncCloser() {} | |||
void Execute() { | |||
external_output_->close(); | |||
while (external_output_->isRecording()) { |
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.
isRecording
being false does not imply the ExternalOutput
has finished closing. Consider moving the switch of recording_
to false at the end of syncClose
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.
good catch!
@@ -0,0 +1,39 @@ | |||
/* | |||
* Copyright (c) 2016, Facebook, Inc. |
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.
Correct me if I'm wrong, but didn't you come up with this class? We don't need to put the license here in that case
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.
you got it
@@ -93,7 +109,7 @@ class ExternalOutput : public MediaSink, public RawDataReceiver, public Feedback | |||
// Note: VP8 purportedly has two packetization schemes; per-frame and per-partition. A frame is | |||
// composed of one or more partitions. However, we don't seem to be sent anything but partition 0 | |||
// so the second scheme seems not applicable. Too bad. | |||
vp8SearchState video_search_state_; | |||
// vp8SearchState video_search_state_; |
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.
Consider just removing this. It's a leftover from a previous PR.
Description
It adds a new worker + pipeline to ExternalOutput, so that we can handle simulcast layers and filter them. Now we record the higher available layer, but we might want to create an API in the future to record the lower or any intermediate layers instead.
[] It needs and includes Unit Tests
Changes in Client or Server public APIs
Not needed.
[] It includes documentation for these changes in
/doc
.