Shaka Packager SDK
ts_section_pmt.h
1 // Copyright 2014 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 PACKAGER_MEDIA_FORMATS_MP2T_TS_SECTION_PMT_H_
6 #define PACKAGER_MEDIA_FORMATS_MP2T_TS_SECTION_PMT_H_
7 
8 #include <functional>
9 #include <string>
10 
11 #include <packager/macros/classes.h>
12 #include <packager/media/formats/mp2t/ts_audio_type.h>
13 #include <packager/media/formats/mp2t/ts_section_psi.h>
14 #include <packager/media/formats/mp2t/ts_stream_type.h>
15 
16 namespace shaka {
17 namespace media {
18 namespace mp2t {
19 
20 class TsSectionPmt : public TsSectionPsi {
21  public:
22  // RegisterPesCb::Run(int pes_pid, int stream_type, uint32_t max_bitrate,
23  // const string& lang, TsAudioType audio_type, uint8_t* descriptor,
24  // size_t desriptor_size);
25  // Stream type is defined in
26  // "Table 2-34 – Stream type assignments" in H.222
27  // Audio type is defined in
28  // "Table 2-60 - Audio type values" in H.222
29  typedef std::function<void(int,
30  TsStreamType,
31  uint32_t,
32  const std::string&,
33  TsAudioType,
34  const uint8_t*,
35  size_t)>
36  RegisterPesCb;
37 
38  explicit TsSectionPmt(const RegisterPesCb& register_pes_cb);
39  ~TsSectionPmt() override;
40 
41  // Mpeg2TsPsiParser implementation.
42  bool ParsePsiSection(BitReader* bit_reader) override;
43  void ResetPsiSection() override;
44 
45  private:
46  RegisterPesCb register_pes_cb_;
47 
48  DISALLOW_COPY_AND_ASSIGN(TsSectionPmt);
49 };
50 
51 } // namespace mp2t
52 } // namespace media
53 } // namespace shaka
54 
55 #endif
A class to read bit streams.
Definition: bit_reader.h:20
All the methods that are virtual are virtual for mocking.
Definition: crypto_flags.cc:66