mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00

This is not used and adds a lot of maintenance overhead to the code since it requires that the transport feedback adapter communicates directly with audio send stream. This also means that the packet loss tracker used as input for this can be removed and a lot of wiring up code overall. Bug: webrtc:9883 Change-Id: I25689fb622ed89cbb378c27212a159485f5f53be Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156502 Commit-Queue: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Minyue Li <minyue@webrtc.org> Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29667}
79 lines
2.6 KiB
C++
79 lines
2.6 KiB
C++
/*
|
|
* Copyright (c) 2014 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.
|
|
*/
|
|
|
|
#ifndef MODULES_AUDIO_CODING_CODECS_RED_AUDIO_ENCODER_COPY_RED_H_
|
|
#define MODULES_AUDIO_CODING_CODECS_RED_AUDIO_ENCODER_COPY_RED_H_
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include <memory>
|
|
|
|
#include "absl/types/optional.h"
|
|
#include "api/array_view.h"
|
|
#include "api/audio_codecs/audio_encoder.h"
|
|
#include "rtc_base/buffer.h"
|
|
#include "rtc_base/constructor_magic.h"
|
|
|
|
namespace webrtc {
|
|
|
|
// This class implements redundant audio coding. The class object will have an
|
|
// underlying AudioEncoder object that performs the actual encodings. The
|
|
// current class will gather the two latest encodings from the underlying codec
|
|
// into one packet.
|
|
class AudioEncoderCopyRed final : public AudioEncoder {
|
|
public:
|
|
struct Config {
|
|
Config();
|
|
Config(Config&&);
|
|
~Config();
|
|
int payload_type;
|
|
std::unique_ptr<AudioEncoder> speech_encoder;
|
|
};
|
|
|
|
explicit AudioEncoderCopyRed(Config&& config);
|
|
|
|
~AudioEncoderCopyRed() override;
|
|
|
|
int SampleRateHz() const override;
|
|
size_t NumChannels() const override;
|
|
int RtpTimestampRateHz() const override;
|
|
size_t Num10MsFramesInNextPacket() const override;
|
|
size_t Max10MsFramesInAPacket() const override;
|
|
int GetTargetBitrate() const override;
|
|
void Reset() override;
|
|
bool SetFec(bool enable) override;
|
|
bool SetDtx(bool enable) override;
|
|
bool SetApplication(Application application) override;
|
|
void SetMaxPlaybackRate(int frequency_hz) override;
|
|
rtc::ArrayView<std::unique_ptr<AudioEncoder>> ReclaimContainedEncoders()
|
|
override;
|
|
void OnReceivedUplinkPacketLossFraction(
|
|
float uplink_packet_loss_fraction) override;
|
|
void OnReceivedUplinkBandwidth(
|
|
int target_audio_bitrate_bps,
|
|
absl::optional<int64_t> bwe_period_ms) override;
|
|
|
|
protected:
|
|
EncodedInfo EncodeImpl(uint32_t rtp_timestamp,
|
|
rtc::ArrayView<const int16_t> audio,
|
|
rtc::Buffer* encoded) override;
|
|
|
|
private:
|
|
std::unique_ptr<AudioEncoder> speech_encoder_;
|
|
int red_payload_type_;
|
|
rtc::Buffer secondary_encoded_;
|
|
EncodedInfoLeaf secondary_info_;
|
|
RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderCopyRed);
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // MODULES_AUDIO_CODING_CODECS_RED_AUDIO_ENCODER_COPY_RED_H_
|