| Index: webrtc/modules/video_coding/generic_encoder.cc
|
| diff --git a/webrtc/modules/video_coding/generic_encoder.cc b/webrtc/modules/video_coding/generic_encoder.cc
|
| index 78eeef288a2e7046c00adc934d438769ab9177a3..a134b774f01ef6cd745cadcc4ee569b280462819 100644
|
| --- a/webrtc/modules/video_coding/generic_encoder.cc
|
| +++ b/webrtc/modules/video_coding/generic_encoder.cc
|
| @@ -13,6 +13,7 @@
|
| #include <vector>
|
|
|
| #include "webrtc/api/video/i420_buffer.h"
|
| +#include "webrtc/modules/pacing/alr_detector.h"
|
| #include "webrtc/modules/video_coding/encoded_frame.h"
|
| #include "webrtc/modules/video_coding/media_optimization.h"
|
| #include "webrtc/rtc_base/checks.h"
|
| @@ -20,6 +21,7 @@
|
| #include "webrtc/rtc_base/optional.h"
|
| #include "webrtc/rtc_base/timeutils.h"
|
| #include "webrtc/rtc_base/trace_event.h"
|
| +#include "webrtc/system_wrappers/include/field_trial.h"
|
|
|
| namespace webrtc {
|
|
|
| @@ -294,6 +296,24 @@ EncodedImageCallback::Result VCMEncodedFrameCallback::OnEncodedImage(
|
| encoded_image.SetEncodeTime(*encode_start_ms, rtc::TimeMillis());
|
| }
|
|
|
| + // Piggyback ALR experiment group id and simulcast id into the content type.
|
| + uint8_t experiment_id = 0;
|
| + rtc::Optional<AlrDetector::AlrExperimentSettings> experiment_settings =
|
| + AlrDetector::ParseAlrSettingsFromFieldTrial();
|
| + if (experiment_settings) {
|
| + // 0 would mean no experiment, therefore adding 1. It will be subtracted at
|
| + // the receive side before reporting fake field trial.
|
| + experiment_id = experiment_settings->group_id + 1;
|
| + }
|
| +
|
| + // TODO(ilnik): This will force content type extension to be present even
|
| + // for realtime video. At the expense of miniscule overhead we will get
|
| + // sliced receive statistics.
|
| + encoded_image.content_type_.SetExperimentId(experiment_id);
|
| + // We number simulcast streams from 1 on the network.
|
| + encoded_image.content_type_.SetSimulcastId(
|
| + static_cast<uint8_t>(simulcast_svc_idx + 1));
|
| +
|
| Result result = post_encode_callback_->OnEncodedImage(
|
| encoded_image, codec_specific, fragmentation_header);
|
| if (result.error != Result::OK)
|
|
|