Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / media / cast / transport / rtp_sender / rtp_packetizer / test / rtp_header_parser.h
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Utility parser for rtp packetizer unittests
6 #ifndef MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_PACKETIZER_TEST_RTP_HEADER_PARSER_H_
7 #define MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_PACKETIZER_TEST_RTP_HEADER_PARSER_H_
8
9 #include "base/basictypes.h"
10 #include "media/cast/transport/cast_transport_defines.h"
11
12 namespace media {
13 namespace cast {
14 namespace transport {
15
16 // TODO(miu): Kill this and use RtpCastHeader instead.
17 struct RtpCastTestHeader {
18   RtpCastTestHeader();
19   ~RtpCastTestHeader();
20   // Cast specific.
21   bool is_key_frame;
22   uint32 frame_id;
23   uint16 packet_id;
24   uint16 max_packet_id;
25   bool is_reference;  // Set to true if the previous frame is not available,
26                       // and the reference frame id  is available.
27   uint32 reference_frame_id;
28
29   // Rtp Generic.
30   bool marker;
31   uint16 sequence_number;
32   uint32 rtp_timestamp;
33   uint32 ssrc;
34   int payload_type;
35   uint8 num_csrcs;
36   uint8 audio_num_energy;
37   int header_length;
38 };
39
40 // TODO(miu): Kill this and use RtpParser instead.
41 class RtpHeaderParser {
42  public:
43   RtpHeaderParser(const uint8* rtpData, size_t rtpDataLength);
44   ~RtpHeaderParser();
45
46   bool Parse(RtpCastTestHeader* parsed_packet) const;
47
48  private:
49   bool ParseCommon(RtpCastTestHeader* parsed_packet) const;
50   bool ParseCast(RtpCastTestHeader* parsed_packet) const;
51   const uint8* const rtp_data_begin_;
52   size_t length_;
53
54   mutable transport::FrameIdWrapHelper frame_id_wrap_helper_;
55   mutable transport::FrameIdWrapHelper reference_frame_id_wrap_helper_;
56
57   DISALLOW_COPY_AND_ASSIGN(RtpHeaderParser);
58 };
59
60 }  // namespace transport
61 }  // namespace cast
62 }  // namespace media
63
64 #endif  // MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_PACKETIZER_TEST_RTP_HEADER_PARSER_H_