OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 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 #ifndef MEDIA_MP2T_TS_PACKET_H_ | |
6 #define MEDIA_MP2T_TS_PACKET_H_ | |
7 | |
8 #include "base/basictypes.h" | |
9 | |
10 namespace media { | |
11 | |
12 class BitReader; | |
13 | |
14 namespace mp2t { | |
15 | |
16 class TsPacket { | |
17 public: | |
18 static const int kPacketSize = 188; | |
19 | |
20 // Return the number of bytes to discard | |
21 // to be synchronized on a TS syncword. | |
22 static int Sync(const uint8* buf, int size); | |
23 | |
24 // Parse a TS packet. | |
25 // Return a TsPacket only when parsing was successful. | |
26 // Return NULL otherwise. | |
27 static TsPacket* Parse(const uint8* buf, int size); | |
28 | |
29 ~TsPacket(); | |
30 | |
31 // TS header accessors. | |
32 bool payload_unit_start_indicator() const { | |
33 return payload_unit_start_indicator_; | |
34 } | |
35 int pid() const { | |
acolwell GONE FROM CHROMIUM
2013/09/18 01:46:05
nit: use one line for this and any of the ones bel
damienv1
2013/09/18 21:40:17
Done.
| |
36 return pid_; | |
37 } | |
38 int continuity_counter() const { | |
39 return continuity_counter_; | |
40 } | |
41 bool discontinuity_indicator() const { | |
42 return discontinuity_indicator_; | |
43 } | |
44 bool random_access_indicator() const { | |
45 return random_access_indicator_; | |
46 } | |
47 | |
48 // Return the offset and the size of the payload. | |
49 const uint8* payload() const { return payload_; } | |
50 int payload_size() const { return payload_size_; } | |
51 | |
52 private: | |
53 TsPacket(); | |
54 | |
55 // Parse an Mpeg2 TS header. | |
56 // The buffer size should be at least |kPacketSize| | |
57 bool ParseHeader(const uint8* buf); | |
58 bool ParseAdaptationField(BitReader* bit_reader, | |
59 int adaptation_field_length); | |
60 | |
61 // Size of the payload. | |
62 const uint8* payload_; | |
63 int payload_size_; | |
64 | |
65 // TS header. | |
66 bool payload_unit_start_indicator_; | |
67 int pid_; | |
68 int continuity_counter_; | |
69 | |
70 // Params from the adaptation field. | |
71 bool discontinuity_indicator_; | |
72 bool random_access_indicator_; | |
73 | |
74 DISALLOW_COPY_AND_ASSIGN(TsPacket); | |
75 }; | |
76 | |
77 } // namespace mp2t | |
78 } // namespace media | |
79 | |
80 #endif | |
81 | |
OLD | NEW |