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

Side by Side Diff: webrtc/modules/audio_coding/main/test/RTPFile.h

Issue 1481493004: audio_coding: remove "main" directory (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased Created 5 years 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 unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifndef WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_RTPFILE_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_RTPFILE_H_
13
14 #include <stdio.h>
15 #include <queue>
16
17 #include "webrtc/modules/audio_coding/main/include/audio_coding_module.h"
18 #include "webrtc/modules/include/module_common_types.h"
19 #include "webrtc/system_wrappers/include/rw_lock_wrapper.h"
20 #include "webrtc/typedefs.h"
21
22 namespace webrtc {
23
24 class RTPStream {
25 public:
26 virtual ~RTPStream() {
27 }
28
29 virtual void Write(const uint8_t payloadType, const uint32_t timeStamp,
30 const int16_t seqNo, const uint8_t* payloadData,
31 const size_t payloadSize, uint32_t frequency) = 0;
32
33 // Returns the packet's payload size. Zero should be treated as an
34 // end-of-stream (in the case that EndOfFile() is true) or an error.
35 virtual size_t Read(WebRtcRTPHeader* rtpInfo, uint8_t* payloadData,
36 size_t payloadSize, uint32_t* offset) = 0;
37 virtual bool EndOfFile() const = 0;
38
39 protected:
40 void MakeRTPheader(uint8_t* rtpHeader, uint8_t payloadType, int16_t seqNo,
41 uint32_t timeStamp, uint32_t ssrc);
42
43 void ParseRTPHeader(WebRtcRTPHeader* rtpInfo, const uint8_t* rtpHeader);
44 };
45
46 class RTPPacket {
47 public:
48 RTPPacket(uint8_t payloadType, uint32_t timeStamp, int16_t seqNo,
49 const uint8_t* payloadData, size_t payloadSize,
50 uint32_t frequency);
51
52 ~RTPPacket();
53
54 uint8_t payloadType;
55 uint32_t timeStamp;
56 int16_t seqNo;
57 uint8_t* payloadData;
58 size_t payloadSize;
59 uint32_t frequency;
60 };
61
62 class RTPBuffer : public RTPStream {
63 public:
64 RTPBuffer();
65
66 ~RTPBuffer();
67
68 void Write(const uint8_t payloadType,
69 const uint32_t timeStamp,
70 const int16_t seqNo,
71 const uint8_t* payloadData,
72 const size_t payloadSize,
73 uint32_t frequency) override;
74
75 size_t Read(WebRtcRTPHeader* rtpInfo,
76 uint8_t* payloadData,
77 size_t payloadSize,
78 uint32_t* offset) override;
79
80 bool EndOfFile() const override;
81
82 private:
83 RWLockWrapper* _queueRWLock;
84 std::queue<RTPPacket *> _rtpQueue;
85 };
86
87 class RTPFile : public RTPStream {
88 public:
89 ~RTPFile() {
90 }
91
92 RTPFile()
93 : _rtpFile(NULL),
94 _rtpEOF(false) {
95 }
96
97 void Open(const char *outFilename, const char *mode);
98
99 void Close();
100
101 void WriteHeader();
102
103 void ReadHeader();
104
105 void Write(const uint8_t payloadType,
106 const uint32_t timeStamp,
107 const int16_t seqNo,
108 const uint8_t* payloadData,
109 const size_t payloadSize,
110 uint32_t frequency) override;
111
112 size_t Read(WebRtcRTPHeader* rtpInfo,
113 uint8_t* payloadData,
114 size_t payloadSize,
115 uint32_t* offset) override;
116
117 bool EndOfFile() const override { return _rtpEOF; }
118
119 private:
120 FILE* _rtpFile;
121 bool _rtpEOF;
122 };
123
124 } // namespace webrtc
125
126 #endif // WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_RTPFILE_H_
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/main/test/PacketLossTest.cc ('k') | webrtc/modules/audio_coding/main/test/RTPFile.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698