Skip to content
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

API to enable slideshow keyframes below a spatial layer #1297

Merged
merged 11 commits into from
Sep 20, 2018

Conversation

lodoyun
Copy link
Contributor

@lodoyun lodoyun commented Sep 18, 2018

Description

This PR updates #1199, adding the possibility to enable SlideShow when below layer 0, effectively replacing Fallback mode if desired.
This is useful, for example, when activating simulcast with Screen sharing. Instead of getting a frozen frame, users with low bandwidth will get an updated image (of the lowest possible quality) every few seconds.

Additionally, this PR updates the API to better reflect this behaviour and cleans up some of the variable names.

[] It needs and includes Unit Tests

Changes in Client or Server public APIs

[] It includes documentation for these changes in /doc.

Copy link
Contributor

@jcague jcague left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I just have some minor questions

ELOG_DEBUG("message: Setting slideshow fallback, below_min_layer %u, spatial_layer %d,"
"next_spatial_layer %d slidehow_fallback_active_: %d",
below_min_layer, spatial_layer_, next_spatial_layer, slideshow_fallback_active_);
"next_spatial_layer %d slidehow_fallback_active_: %d, min_desired_spatial_layer: %d",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't this be called min_requested_spatial like you do above?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, actually I think I want both min_requested_spatial_layer and slideshow_below_spatial_layer_ to debug possible problems

"next_spatial_layer %d slidehow_fallback_active_: %d",
below_min_layer, spatial_layer_, next_spatial_layer, slideshow_fallback_active_);
"next_spatial_layer %d slidehow_fallback_active_: %d, min_desired_spatial_layer: %d",
below_min_layer, spatial_layer_, next_spatial_layer, freeze_fallback_active_, slideshow_below_spatial_layer_);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above should we use min_requested_spatial_layer here?

void QualityManager::enableSlideShowBelowSpatialLayer(int spatial_layer) {
ELOG_DEBUG("message: Will activate slideshow when below spatial layer, spatial_layer: %d", spatial_layer);
slideshow_below_spatial_layer_ = spatial_layer;
freeze_fallback_active_ = false;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there a way to disable this feature afterwards?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed this in the new commit 👍

@lodoyun
Copy link
Contributor Author

lodoyun commented Sep 20, 2018

I've changed the API to enableSlideShowBelowSpatialLayer (bool enabled, int spatialLayer).
You can now disable the functionality with enableSlideShowBelowSpatialLayer (false), the spatialLayer will be ignored in that case.
enableSlideShowBelowSpatialLayer(true) will default to spatial Layer 0.

Copy link
Contributor

@jcague jcague left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

aux_spatial_layer, min_valid_spatial_layer);
}
aux_temporal_layer = 0;
aux_spatial_layer++;
}

if (below_min_layer != slideshow_fallback_active_) {
ELOG_DEBUG("below_min_layer %u, freeze_fallback_active_: %u", below_min_layer, freeze_fallback_active_);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nick: I know we don't follow a strict patter for DEBUG messages, but all the other messages in this class start with message:

@lodoyun lodoyun merged commit 6dd7547 into lynckia:master Sep 20, 2018
@kekkokk
Copy link
Contributor

kekkokk commented Oct 4, 2018

would be very nice to also have an API to force the minimum temporal layer, since, especially on lower spatial layer, since in terms of kbytes the difference is really small.

I think that in the user experience, one may prefer to see a fluid smaller spatial layer instead of one laggy (ex. spatial 1 and temporal 0) but with better resolution.

So the quality manager will switch only on preferred ones

@lodoyun lodoyun deleted the fix/fallbackForScreensharing branch November 22, 2018 11:42
Arri98 pushed a commit to Arri98/licode that referenced this pull request Apr 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants