 Chromium Code Reviews
 Chromium Code Reviews Issue 2266403005:
  Make neteq_rtpplay parse RTP header extensions  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@neteq-fake-decode-cng
    
  
    Issue 2266403005:
  Make neteq_rtpplay parse RTP header extensions  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@neteq-fake-decode-cng| Index: webrtc/modules/audio_coding/neteq/tools/neteq_rtpplay.cc | 
| diff --git a/webrtc/modules/audio_coding/neteq/tools/neteq_rtpplay.cc b/webrtc/modules/audio_coding/neteq/tools/neteq_rtpplay.cc | 
| index 9e3119b246826988c8d578757e43029c5d252a70..ff4b68bfb5ca4d0cb49207e039ef75395e434bbe 100644 | 
| --- a/webrtc/modules/audio_coding/neteq/tools/neteq_rtpplay.cc | 
| +++ b/webrtc/modules/audio_coding/neteq/tools/neteq_rtpplay.cc | 
| @@ -74,6 +74,13 @@ bool ValidateSsrcValue(const char* flagname, const std::string& str) { | 
| return ParseSsrc(str, &dummy_ssrc); | 
| } | 
| +static bool ValidateExtensionId(const char* flagname, int32_t value) { | 
| + if (value > 0 && value <= 255) // Value is ok. | 
| + return true; | 
| + printf("Invalid value for --%s: %d\n", flagname, static_cast<int>(value)); | 
| 
ivoc
2016/08/24 15:06:07
The style guide says we should prefer cout over pr
 
hlundin-webrtc
2016/08/24 15:26:46
I'd rather keep the printf for consistency with th
 | 
| + return false; | 
| +} | 
| + | 
| // Define command line flags. | 
| DEFINE_int32(pcmu, 0, "RTP payload type for PCM-u"); | 
| const bool pcmu_dummy = | 
| @@ -136,6 +143,12 @@ DEFINE_string(ssrc, | 
| "starting with 0x)"); | 
| const bool hex_ssrc_dummy = | 
| google::RegisterFlagValidator(&FLAGS_ssrc, &ValidateSsrcValue); | 
| +DEFINE_int32(audio_level, 1, "Extension ID for audio level (RFC 6464)"); | 
| +const bool audio_level_dummy = | 
| + google::RegisterFlagValidator(&FLAGS_audio_level, &ValidateExtensionId); | 
| +DEFINE_int32(abs_send_time, 3, "Extension ID for absolute sender time"); | 
| +const bool abs_send_time_dummy = | 
| + google::RegisterFlagValidator(&FLAGS_abs_send_time, &ValidateExtensionId); | 
| // Maps a codec type to a printable name string. | 
| std::string CodecName(NetEqDecoder codec) { | 
| @@ -297,13 +310,18 @@ int RunTest(int argc, char* argv[]) { | 
| return 0; | 
| } | 
| + // Gather RTP header extensions in a map. | 
| + NetEqPacketSourceInput::RtpHeaderExtensionMap rtp_ext_map = { | 
| + {FLAGS_audio_level, kRtpExtensionAudioLevel}, | 
| + {FLAGS_abs_send_time, kRtpExtensionAbsoluteSendTime}}; | 
| + | 
| const std::string input_file_name = argv[1]; | 
| std::unique_ptr<NetEqInput> input; | 
| if (RtpFileSource::ValidRtpDump(input_file_name) || | 
| RtpFileSource::ValidPcap(input_file_name)) { | 
| - input.reset(new NetEqRtpDumpInput(input_file_name)); | 
| + input.reset(new NetEqRtpDumpInput(input_file_name, rtp_ext_map)); | 
| } else { | 
| - input.reset(new NetEqEventLogInput(input_file_name)); | 
| + input.reset(new NetEqEventLogInput(input_file_name, rtp_ext_map)); | 
| } | 
| std::cout << "Input file: " << input_file_name << std::endl; |