Home | History | Annotate | Download | only in mp2t
      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 #ifndef MEDIA_MP2T_TS_SECTION_H_
      6 #define MEDIA_MP2T_TS_SECTION_H_
      7 
      8 namespace media {
      9 namespace mp2t {
     10 
     11 class TsSection {
     12  public:
     13   // From ISO/IEC 13818-1 or ITU H.222 spec: Table 2-3 - PID table.
     14   enum SpecialPid {
     15     kPidPat = 0x0,
     16     kPidCat = 0x1,
     17     kPidTsdt = 0x2,
     18     kPidNullPacket = 0x1fff,
     19     kPidMax = 0x1fff,
     20   };
     21 
     22   virtual ~TsSection() {}
     23 
     24   // Parse the data bytes of the TS packet.
     25   // Return true if parsing is successful.
     26   virtual bool Parse(bool payload_unit_start_indicator,
     27                      const uint8* buf, int size) = 0;
     28 
     29   // Process bytes that have not been processed yet (pending buffers in the
     30   // pipe). Flush might thus results in frame emission, as an example.
     31   virtual void Flush() = 0;
     32 
     33   // Reset the state of the parser to its initial state.
     34   virtual void Reset() = 0;
     35 };
     36 
     37 }  // namespace mp2t
     38 }  // namespace media
     39 
     40 #endif
     41