Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(601)

Unified Diff: webrtc/modules/audio_coding/neteq/red_payload_splitter.h

Issue 2342443005: Moved Opus-specific payload splitting into AudioDecoderOpus. (Closed)
Patch Set: Some small fixes. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 {
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_

Powered by Google App Engine
This is Rietveld 408576698