In audio ChannelSend move task queue as last class member
To mitigate race between ~ChannelSend and task created in ProcessAndEncodeAudio. as described in the comment next to the task queue member. Bug: b/228933184 Change-Id: Ia0efd050c76a4539dc2525ef8efc065fab96861c Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258983 Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36553}
This commit is contained in:
parent
8f9b44ba38
commit
8a1a0af36f
@ -237,15 +237,15 @@ class ChannelSend : public ChannelSendInterface,
|
|||||||
rtc::scoped_refptr<ChannelSendFrameTransformerDelegate>
|
rtc::scoped_refptr<ChannelSendFrameTransformerDelegate>
|
||||||
frame_transformer_delegate_ RTC_GUARDED_BY(encoder_queue_);
|
frame_transformer_delegate_ RTC_GUARDED_BY(encoder_queue_);
|
||||||
|
|
||||||
// Defined last to ensure that there are no running tasks when the other
|
|
||||||
// members are destroyed.
|
|
||||||
rtc::TaskQueue encoder_queue_;
|
|
||||||
|
|
||||||
const bool fixing_timestamp_stall_;
|
const bool fixing_timestamp_stall_;
|
||||||
|
|
||||||
mutable Mutex rtcp_counter_mutex_;
|
mutable Mutex rtcp_counter_mutex_;
|
||||||
RtcpPacketTypeCounter rtcp_packet_type_counter_
|
RtcpPacketTypeCounter rtcp_packet_type_counter_
|
||||||
RTC_GUARDED_BY(rtcp_counter_mutex_);
|
RTC_GUARDED_BY(rtcp_counter_mutex_);
|
||||||
|
|
||||||
|
// Defined last to ensure that there are no running tasks when the other
|
||||||
|
// members are destroyed.
|
||||||
|
rtc::TaskQueue encoder_queue_;
|
||||||
};
|
};
|
||||||
|
|
||||||
const int kTelephoneEventAttenuationdB = 10;
|
const int kTelephoneEventAttenuationdB = 10;
|
||||||
@ -474,11 +474,11 @@ ChannelSend::ChannelSend(
|
|||||||
new RateLimiter(clock, kMaxRetransmissionWindowMs)),
|
new RateLimiter(clock, kMaxRetransmissionWindowMs)),
|
||||||
frame_encryptor_(frame_encryptor),
|
frame_encryptor_(frame_encryptor),
|
||||||
crypto_options_(crypto_options),
|
crypto_options_(crypto_options),
|
||||||
|
fixing_timestamp_stall_(
|
||||||
|
field_trials.IsDisabled("WebRTC-Audio-FixTimestampStall")),
|
||||||
encoder_queue_(task_queue_factory->CreateTaskQueue(
|
encoder_queue_(task_queue_factory->CreateTaskQueue(
|
||||||
"AudioEncoder",
|
"AudioEncoder",
|
||||||
TaskQueueFactory::Priority::NORMAL)),
|
TaskQueueFactory::Priority::NORMAL)) {
|
||||||
fixing_timestamp_stall_(
|
|
||||||
field_trials.IsDisabled("WebRTC-Audio-FixTimestampStall")) {
|
|
||||||
audio_coding_.reset(AudioCodingModule::Create(AudioCodingModule::Config()));
|
audio_coding_.reset(AudioCodingModule::Create(AudioCodingModule::Config()));
|
||||||
|
|
||||||
RtpRtcpInterface::Configuration configuration;
|
RtpRtcpInterface::Configuration configuration;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user