1 /*
2  *  Copyright (c) 2011 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 #include <stdio.h>
12 
13 #include <memory>
14 
15 #include "rtc_base/checks.h"
16 #include "test/rtp_file_reader.h"
17 #include "test/rtp_file_writer.h"
18 
19 using webrtc::test::RtpFileReader;
20 using webrtc::test::RtpFileWriter;
21 
main(int argc,char * argv[])22 int main(int argc, char* argv[]) {
23   if (argc < 3) {
24     printf("Concatenates multiple rtpdump files into one.\n");
25     printf("Usage: rtpcat in1.rtp int2.rtp [...] out.rtp\n");
26     exit(1);
27   }
28 
29   std::unique_ptr<RtpFileWriter> output(
30       RtpFileWriter::Create(RtpFileWriter::kRtpDump, argv[argc - 1]));
31   RTC_CHECK(output.get() != NULL) << "Cannot open output file.";
32   printf("Output RTP file: %s\n", argv[argc - 1]);
33 
34   for (int i = 1; i < argc - 1; i++) {
35     std::unique_ptr<RtpFileReader> input(
36         RtpFileReader::Create(RtpFileReader::kRtpDump, argv[i]));
37     RTC_CHECK(input.get() != NULL) << "Cannot open input file " << argv[i];
38     printf("Input RTP file: %s\n", argv[i]);
39 
40     webrtc::test::RtpPacket packet;
41     while (input->NextPacket(&packet))
42       RTC_CHECK(output->WritePacket(&packet));
43   }
44   return 0;
45 }
46