webrtc/test/rtp_file_reader.h
Henrik Lundin 438e870e15 Update kMaxPacketBufferSize to support 50ms @ 48kHz in RtpFileReader
Increased kMaxPacketBufferSize from 3500 to 5100 bytes to accommodate
50 ms packets at 48 kHz sample rate (4800 bytes for PCM16) plus the
original 300 bytes of overhead.

Bug: none
Change-Id: Ic89f5bf3883b10c7c97c4584bbc452e0b2b90ee8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/457621
Auto-Submit: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#47183}
2026-03-17 09:08:20 -07:00

53 lines
1.7 KiB
C++

/*
* Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef TEST_RTP_FILE_READER_H_
#define TEST_RTP_FILE_READER_H_
#include <cstddef>
#include <cstdint>
#include <set>
#include "absl/strings/string_view.h"
namespace webrtc {
namespace test {
struct RtpPacket {
// Accommodate for 50 ms packets of 48 kHz PCM16 samples (4800 bytes) plus
// some overhead.
static const size_t kMaxPacketBufferSize = 5100;
uint8_t data[kMaxPacketBufferSize];
size_t length;
// The length the packet had on wire. Will be different from `length` when
// reading a header-only RTP dump.
size_t original_length;
uint32_t time_ms;
};
class RtpFileReader {
public:
enum FileFormat { kPcap, kRtpDump, kLengthPacketInterleaved };
virtual ~RtpFileReader() {}
static RtpFileReader* Create(FileFormat format,
const uint8_t* data,
size_t size,
const std::set<uint32_t>& ssrc_filter);
static RtpFileReader* Create(FileFormat format, absl::string_view filename);
static RtpFileReader* Create(FileFormat format,
absl::string_view filename,
const std::set<uint32_t>& ssrc_filter);
virtual bool NextPacket(RtpPacket* packet) = 0;
};
} // namespace test
} // namespace webrtc
#endif // TEST_RTP_FILE_READER_H_