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 MEDIA_FORMATS_MP2T_TS_SECTION_PAT_H_
6#define MEDIA_FORMATS_MP2T_TS_SECTION_PAT_H_
7
8#include "base/callback.h"
9#include "base/compiler_specific.h"
10#include "media/formats/mp2t/ts_section_psi.h"
11
12namespace media {
13namespace mp2t {
14
15class TsSectionPat : public TsSectionPsi {
16 public:
17  // RegisterPmtCb::Run(int program_number, int pmt_pid);
18  typedef base::Callback<void(int, int)> RegisterPmtCb;
19
20  explicit TsSectionPat(const RegisterPmtCb& register_pmt_cb);
21  virtual ~TsSectionPat();
22
23  // TsSectionPsi implementation.
24  virtual bool ParsePsiSection(BitReader* bit_reader) OVERRIDE;
25  virtual void ResetPsiSection() OVERRIDE;
26
27 private:
28  RegisterPmtCb register_pmt_cb_;
29
30  // Parameters from the PAT.
31  int version_number_;
32
33  DISALLOW_COPY_AND_ASSIGN(TsSectionPat);
34};
35
36}  // namespace mp2t
37}  // namespace media
38
39#endif
40
41