mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-15 23:01:21 +01:00

I need to replace the audio part of PayloadUnion with SdpAudioFormat, but that's a non-trivially-deletable class and those just don't work well in unions, especially unions that don't have a discriminator that says which member is currently active. This CL converts the union to a class, adds a discriminator, and provides accessor functions. CL #2 in the series will change all outsiders to use the accessors instead of the public member variables directly, and CL #3 will remove the public member variables. (It needs to be done in separate steps like this because PayloadUnion is unfortunately part of the API, and just changing it all in one go would break users.) BUG=webrtc:8159 Change-Id: I38c44bbb21a2d38600cff59bf37d8d47dfdbce21 Reviewed-on: https://webrtc-review.googlesource.com/4340 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20025}
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#include "modules/rtp_rtcp/source/rtp_receiver_strategy.h"
|
|
|
|
#include <stdlib.h>
|
|
|
|
namespace webrtc {
|
|
|
|
RTPReceiverStrategy::RTPReceiverStrategy(RtpData* data_callback)
|
|
: data_callback_(data_callback) {}
|
|
|
|
void RTPReceiverStrategy::GetLastMediaSpecificPayload(
|
|
PayloadUnion* payload) const {
|
|
rtc::CritScope cs(&crit_sect_);
|
|
if (last_payload_) {
|
|
*payload = *last_payload_;
|
|
}
|
|
}
|
|
|
|
void RTPReceiverStrategy::SetLastMediaSpecificPayload(
|
|
const PayloadUnion& payload) {
|
|
rtc::CritScope cs(&crit_sect_);
|
|
last_payload_.emplace(payload);
|
|
}
|
|
|
|
void RTPReceiverStrategy::CheckPayloadChanged(int8_t payload_type,
|
|
PayloadUnion* specific_payload,
|
|
bool* should_discard_changes) {
|
|
// Default: Keep changes.
|
|
*should_discard_changes = false;
|
|
}
|
|
|
|
int RTPReceiverStrategy::Energy(uint8_t array_of_energy[kRtpCsrcSize]) const {
|
|
return -1;
|
|
}
|
|
|
|
} // namespace webrtc
|