Shaka Packager SDK
Loading...
Searching...
No Matches
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
16namespace shaka {
17namespace media {
18namespace mp2t {
19
20class 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.