Chromium Code Reviews| Index: webrtc/modules/audio_coding/neteq/red_payload_splitter.h |
| diff --git a/webrtc/modules/audio_coding/neteq/payload_splitter.h b/webrtc/modules/audio_coding/neteq/red_payload_splitter.h |
| similarity index 56% |
| rename from webrtc/modules/audio_coding/neteq/payload_splitter.h |
| rename to webrtc/modules/audio_coding/neteq/red_payload_splitter.h |
| index a3e1b1d91c76bd047995407d0f8d80932941e4a4..deb86eb166d7f2c48e0757640a8f4bf5f30313c8 100644 |
| --- a/webrtc/modules/audio_coding/neteq/payload_splitter.h |
| +++ b/webrtc/modules/audio_coding/neteq/red_payload_splitter.h |
| @@ -8,8 +8,8 @@ |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| -#ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_PAYLOAD_SPLITTER_H_ |
| -#define WEBRTC_MODULES_AUDIO_CODING_NETEQ_PAYLOAD_SPLITTER_H_ |
| +#ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_RED_PAYLOAD_SPLITTER_H_ |
| +#define WEBRTC_MODULES_AUDIO_CODING_NETEQ_RED_PAYLOAD_SPLITTER_H_ |
| #include "webrtc/base/constructormagic.h" |
| #include "webrtc/modules/audio_coding/neteq/packet.h" |
| @@ -19,24 +19,14 @@ namespace webrtc { |
| // Forward declarations. |
| class DecoderDatabase; |
| -// This class handles splitting of payloads into smaller parts. |
| - |
| -// For RED and FEC the splitting is done internally. Other codecs' packets are |
| -// split by calling AudioDecoder::SplitPacket. |
| -class PayloadSplitter { |
| +// This class handles splitting of RED payloads into smaller parts. |
| +// Codec-specific packet splitting can be performed by |
| +// AudioDecoder::ParsePayload. |
| +class RedPayloadSplitter { |
|
kwiberg-webrtc
2016/09/20 14:56:23
Could you split this class into an interface and a
ossu
2016/09/20 15:45:21
I think this goes outside the remit of this CL, IM
kwiberg-webrtc
2016/09/20 16:19:15
Fair enough. (This is a pervasive problem in NetEq
ossu
2016/09/21 10:23:13
After a quick check, I'm not convinced that Mock(R
|
| public: |
| - enum SplitterReturnCodes { |
| - kOK = 0, |
| - kNoSplit = 1, |
| - kFrameSplitError = -2, |
| - kUnknownPayloadType = -3, |
| - kRedLengthMismatch = -4, |
| - kFecSplitError = -5, |
| - }; |
| - |
| - PayloadSplitter() {} |
| + RedPayloadSplitter() {} |
| - virtual ~PayloadSplitter() {} |
| + virtual ~RedPayloadSplitter() {} |
| // Splits each packet in |packet_list| into its separate RED payloads. Each |
| // RED payload is packetized into a Packet. The original elements in |
| @@ -44,23 +34,18 @@ class PayloadSplitter { |
| // Note that all packets in |packet_list| must be RED payloads, i.e., have |
| // RED headers according to RFC 2198 at the very beginning of the payload. |
| // Returns kOK or an error. |
| - virtual int SplitRed(PacketList* packet_list); |
| - |
| - // Iterates through |packet_list| and, duplicate each audio payload that has |
| - // FEC as new packet for redundant decoding. The decoder database is needed to |
| - // get information about which payload type each packet contains. |
| - virtual int SplitFec(PacketList* packet_list, |
| - DecoderDatabase* decoder_database); |
| + virtual bool SplitRed(PacketList* packet_list); |
| // Checks all packets in |packet_list|. Packets that are DTMF events or |
| // comfort noise payloads are kept. Except that, only one single payload type |
| - // is accepted. Any packet with another payload type is discarded. |
| + // is accepted. Any packet with another payload type is discarded. Returns |
| + // the number of discarded packets. |
| virtual int CheckRedPayloads(PacketList* packet_list, |
| const DecoderDatabase& decoder_database); |
| private: |
| - RTC_DISALLOW_COPY_AND_ASSIGN(PayloadSplitter); |
| + RTC_DISALLOW_COPY_AND_ASSIGN(RedPayloadSplitter); |
| }; |
| } // namespace webrtc |
| -#endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_PAYLOAD_SPLITTER_H_ |
| +#endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_RED_PAYLOAD_SPLITTER_H_ |