blob: ba52f94e578f364d95f26ffcbec52bb84b5bd22a [file] [log] [blame]
kjellander@webrtc.org35a17562011-10-06 06:44:54 +00001/*
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 */
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +000010
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#include "test/testsupport/packet_reader.h"
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000012
pbos@webrtc.org12dc1a32013-08-05 16:22:53 +000013#include <assert.h>
14#include <stdio.h>
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +000015#include <algorithm>
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000016
17namespace webrtc {
18namespace test {
19
20PacketReader::PacketReader()
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +000021 : initialized_(false) {}
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000022
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +000023PacketReader::~PacketReader() {}
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000024
pbos@webrtc.orga5f17872013-04-09 11:10:21 +000025void PacketReader::InitializeReading(uint8_t* data,
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +000026 size_t data_length_in_bytes,
27 size_t packet_size_in_bytes) {
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000028 assert(data);
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000029 assert(packet_size_in_bytes > 0);
30 data_ = data;
31 data_length_ = data_length_in_bytes;
32 packet_size_ = packet_size_in_bytes;
33 currentIndex_ = 0;
34 initialized_ = true;
35}
36
pbos@webrtc.orga5f17872013-04-09 11:10:21 +000037int PacketReader::NextPacket(uint8_t** packet_pointer) {
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000038 if (!initialized_) {
39 fprintf(stderr, "Attempting to use uninitialized PacketReader!\n");
40 return -1;
41 }
42 *packet_pointer = data_ + currentIndex_;
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +000043 size_t old_index = currentIndex_;
44 currentIndex_ = std::min(currentIndex_ + packet_size_, data_length_);
45 return static_cast<int>(currentIndex_ - old_index);
kjellander@webrtc.org35a17562011-10-06 06:44:54 +000046}
47
48} // namespace test
49} // namespace webrtc