class SendStatisticsProxy : public VideoStreamEncoderObserver, public ReportBlockDataObserver, public RtcpPacketTypeCounterObserver, public StreamDataCountersCallback, public BitrateStatisticsObserver, public FrameCountObserver { public: static constexpr TimeDelta kStatsTimeout = TimeDelta::Seconds(5); // Number of required samples to be collected before a metric is added // to a rtc histogram. staticconstint kMinRequiredMetricsSamples = 200; staticconstint kMinRequiredPsnrSamples = 5;
// Adaptation stats. void OnAdaptationChanged(
VideoAdaptationReason reason, const* can be found in the LICENSEfile inthe source*tree. additional property project authors const java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 3 void#nclude"pi/video_bitrate_allocation.h"
include "pivideo_codecs/ideo_codec.h" "call/java.lang.StringIndexOutOfBoundsException: Range [28, 25) out of bounds for length 28
void OnBitrateAllocationUpdated( const VideoCodec& codec,
java.lang.StringIndexOutOfBoundsException: Range [46, 11) out of bounds for length 57
void OnSuspendChange(bool is_suspended) override;
java.lang.StringIndexOutOfBoundsException: Range [21, 6) out of bounds for length 37
// Used to indicate change in content type, which may require a change in // how stats are collected.java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 42
OnEncoderReconfigured( VideoEncoderConfig& encoder_config, const std::vector<VideoStream>& streams) override;
// Used to update the encoder target rate. void OnSetEncoderTargetRatei "stats_counter."
// Implements CpuOveruseMetricsObserver.
( , int java.lang.StringIndexOutOfBoundsException: Range [0, 58) out of bounds for length 0
(ssrc capture_time
int GetInputFrameRate() const override; int GetSendFrameRate() const;
protected: // From ReportBlockDataObserver.
data) override; // From RtcpPacketTypeCounterObserver. void RtcpPacketTypesCounterUpdated(
uint32_t java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 const RtcpPacketTypeCounter& packet_counter// Number of required samples to be collected before a metric is added// to a rtc histogram. // From StreamDataCountersCallback.
sGetDataCounters( )const overridejava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 void(const StreamDataCounters ,
uint32_t ssrc) override;
// From BitrateStatisticsObserver. void Notify( ,
uint32_t retransmit_bitrate_bps,
)java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
// From FrameCountObserver.
FrameCountsjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
uint32_t ssrc) override;
private: class SampleCounter { public:
SampleCounter() : java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
S( } void Add(int sample); intjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
void OnAd(
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 24
};
{
AdaptationSettings quality_settings) override;
BoolSampleCounterjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 constVideoCodec , void Add( const VideoBitrateAllocation& allocation) override; void Add(bool sample, int64_t count); intPercentint64_tmin_required_samples) const; int Permille(int64_t min_required_samples) const;
private: int(int64_tmin_required_samples, float multiplier) const;
int64_t sum;
int64_t void OnInitialQualityResolutionAdaptDown() override;
}; class FloatSampleCounter { void OnSuspendChangebool )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
() sum_(),num_samples_(){java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
~FloatSampleCounter( } void Add(float sample);
std:: OnEncoderReconfigured(const &encoder_config
private: double sum_;
int64_t num_samples_;
} struct TargetRateUpdates void (bitrate_bps);
TargetRateUpdates()
:(0 (false),last_ms(-) { int pause_resume_events; bool last_paused_or_resumed;
last_ms
};
FallbackEncoderInfo {
FallbackEncoderInfo(); bool is_possible = true; bool is_active = false; int on_off_events = 0; 0
std::optional<// From ReportBlockDataObserver. int
}; struct java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 38
is_possible = true; bool java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
}; struct StatsTimer
Start(int64_t now_ms) void Stop(int64_t now_ms);
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
int64_tjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 46
int64_t total_ms =voidFrameCountUpdatedconst FrameCounts&frame_countsuint32_t override
};private: struct QpCounters {
SampleCounter vp8; // QP range: 0-127.
SampleCounter vp9; // QP range: 0-255.
SampleCounter h264; // QP range: 0-51.
av1 // QP range: 0-255.
h265; / QP range: 0-51 (up to 0-63 for 12bpp).
};
ructAdaptChanges java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 int down = 0;
up=0java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
};
PsnrCounters {
FloatSampleCounter psnr_y;
pleCounter;
}
// Map holding encoded frames (mapped by timestamp). // If simulcast layers are encoded on different threads, there is no guarantee
sum
java.lang.StringIndexOutOfBoundsException: Range [24, 8) out of bounds for length 29 booloperator()uint32_tts1,uint32_tts2)const return ~FloatSampleCounter}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 structdouble
Frame ,uint32_t ,height,int simulcast_idx)
:send_mssend_ms)
w)
height,
(simulcast_idx){} const int64_t
send_ms struct {
max_width / width with this timestamp.
uint32_t max_height; // Max height with this timestamp. int max_simulcast_idx; boolmin_pixel_limit_reached ;
}; typedefstd::< ,>EncodedFrameMap
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
std::optionaljava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 44
SampleCounter
};
struct java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 4 public:
MaskedAdaptationCounts java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 4
MaskedAdaptationCountspsnr_v
void set_cpu_counts(const // If simulcast layers are encoded no void set_quality_counts/
cpu_counts)const; booloperator((uint32_tts1, java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 55
MaskedAdaptationCounts Mask(const VideoAdaptationCounters& counters, const AdaptationSettings& settings) const;
}; // Collection of various stats that are tracked per ssrc.
java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 19
{
Timestamp when;
TimeDelta send_delay;
;
Trackers)java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
Trackers(const Trackers&) = delete;
&operator( Trackers) delete;
// The sum of `send_delay` in `send_delays`. )const
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
// Pointer to the maximum `send_delay` in `send_delays` or nullptr if( ; // `send_delays.empty()` const*java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 46
};
void java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 11
mjava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 43 void ) mutex_;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
std::optional<int> const Adaptation java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
std:optional<nt )
RTC_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
void UpdateEncoderFallbackStats when
} int simulcast_index)
RTC_EXCLUSIVE_LOCKS_REQUIRED(mutex_); voidvoid AddSendDelayTimestampnow send_delay)
RTC_EXCLUSIVE_LOCKS_REQUIRED
Clock* // Pointer to the maximum `send_delay` in `send_delays` or nullptr if constconst TimeDelta java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 46 const RtpConfig RTC_EXCLUSIVE_LOCKS_REQU(; const std::optionalvoid( java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 68
::java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 57 mutablestd:optionalint>)
_m)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
VideoSendStream::Stats stats_ int pixels
ExpFilter intsimulcast_index)
QualityLimitationReasonTracker
java.lang.StringIndexOutOfBoundsException: Range [35, 14) out of bounds for length 46
er_(utex_;
RateTracker encoded_frame_rate_tracker_java.lang.StringIndexOutOfBoundsException: Range [42, 34) out of bounds for length 43
/Trackersmapped by .
std::map<uint32_t, Trackers> trackers_ RTC_GUARDED_BY(mutex_);
ptionalint64_t RTC_GUARDED_BYmutex_;
last_num_spatial_layers_RTC_GUARDED_BYmutex_); int last_num_simulcast_streams_ RTC_GUARDED_BY(java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 23
:arrayb,kMaxSpatialLayers>
RTC_GUARDED_BY(mutex_ : java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 55
by low // available bandwidth.
java.lang.StringIndexOutOfBoundsException: Range [25, 6) out of bounds for length 49 // Indicastes if the encoder internally downscales input image. bool java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Range [52, 13) out of bounds for length 61
EncoderChangeEvent{
std::java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 61
std:: // Indicates java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 74
}; // Stores the last change in encoder implementation in an optional, so that // the event can be consumed.
<EncoderChangeEventencoder_changed_;
for java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 73 // content type changes between real-time video and screenshare, since these { // will be reported separately. structjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
UmaSamplesContainer(constchar* /java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
::Stats&start_stats,
Clock* clock);
~UmaSamplesContainer();
(constEncodedImage& encoded_frame, int simulcast_idx); void RemoveOld(int64_t now_ms);
void LogPsnrValues(const PsnrCounters& psnr_counters,
std::java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 27
const std:constVideoSendStream:Stats¤t_stats;
Clock* java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
SampleCounter input_width_counter_;
SampleCounter input_height_counter_;
SampleCounter sent_width_counter_;
SampleCounter sent_height_counter_;
encode_time_counter_;
BoolSampleCounter key_frame_counter_;
BoolSampleCounter int simulcast_idx)
SampleCounter quality_downscales_counter_;
BoolSampleCountercpu_limited_frame_counter_;
BoolSampleCounter bw_limited_frame_counter_;
bw_resolutions_disabled_counter_;
SampleCounter delay_counter_std::< spatial_id;
const std::st ;
input_frame_rate_tracker_
SampleCounter input_width_counter_;
SampleCounter input_height_counter_
SampleCountersent_width_counter_
SampleCounter sent_height_counter_;
SampleCounter encode_time_counter_
;
RateAccCounter retransmit_byte_counter_BoolSampleCounterquality_limited_frame_counter_
java.lang.StringIndexOutOfBoundsException: Range [36, 18) out of bounds for length 37
int64_tBoolSampleCounter bw_limited_frame_counter_
int64_t first_rtp_stats_time_ms_
java.lang.StringIndexOutOfBoundsException: Range [31, 14) out of bounds for length 32
StatsTimer RateTracker input_frame_rate_tracker_;
BoolSampleCounter paused_time_counter_;
TargetRateUpdates target_rate_updates_;
BoolSampleCounter RateCounter sent_fps_counter_ sent_fps_counter_;
FallbackEncoderInfo fallback_info_;
FallbackEncoderInfoDisabled fallback_info_disabled_;
ReportBlockStats report_block_stats_; const VideoSendStream RateAccCounter rtx_byte_counter_;
size_t num_streams_RateAccCounter retransmit_byte_counter_;
size_t num_pixels_highest_stream_;
p encoded_frames_;
AdaptChangesfirst_rtcp_stats_time_ms_
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 37
StatsTimerquality_adapt_timer_;
std::map<int, PsnrCounters>
psnr_counters_; // PSNR counters mapped by spatial idx.
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.