xref: /aosp_15_r20/external/libwebm/m2ts/vpxpes2ts.h (revision 103e46e4cd4b6efcf6001f23fa8665fb110abf8d)
1*103e46e4SHarish Mahendrakar // Copyright (c) 2016 The WebM project authors. All Rights Reserved.
2*103e46e4SHarish Mahendrakar //
3*103e46e4SHarish Mahendrakar // Use of this source code is governed by a BSD-style license
4*103e46e4SHarish Mahendrakar // that can be found in the LICENSE file in the root of the source
5*103e46e4SHarish Mahendrakar // tree. An additional intellectual property rights grant can be found
6*103e46e4SHarish Mahendrakar // in the file PATENTS.  All contributing project authors may
7*103e46e4SHarish Mahendrakar // be found in the AUTHORS file in the root of the source tree.
8*103e46e4SHarish Mahendrakar #ifndef LIBWEBM_M2TS_VPXPES2TS_H_
9*103e46e4SHarish Mahendrakar #define LIBWEBM_M2TS_VPXPES2TS_H_
10*103e46e4SHarish Mahendrakar 
11*103e46e4SHarish Mahendrakar #include <memory>
12*103e46e4SHarish Mahendrakar #include <string>
13*103e46e4SHarish Mahendrakar 
14*103e46e4SHarish Mahendrakar #include "common/libwebm_util.h"
15*103e46e4SHarish Mahendrakar #include "m2ts/webm2pes.h"
16*103e46e4SHarish Mahendrakar 
17*103e46e4SHarish Mahendrakar namespace libwebm {
18*103e46e4SHarish Mahendrakar 
19*103e46e4SHarish Mahendrakar class VpxPes2Ts : public PacketReceiverInterface {
20*103e46e4SHarish Mahendrakar  public:
VpxPes2Ts(const std::string & input_file_name,const std::string & output_file_name)21*103e46e4SHarish Mahendrakar   VpxPes2Ts(const std::string& input_file_name,
22*103e46e4SHarish Mahendrakar             const std::string& output_file_name)
23*103e46e4SHarish Mahendrakar       : input_file_name_(input_file_name),
24*103e46e4SHarish Mahendrakar         output_file_name_(output_file_name) {}
25*103e46e4SHarish Mahendrakar   virtual ~VpxPes2Ts() = default;
26*103e46e4SHarish Mahendrakar   VpxPes2Ts() = delete;
27*103e46e4SHarish Mahendrakar   VpxPes2Ts(const VpxPes2Ts&) = delete;
28*103e46e4SHarish Mahendrakar   VpxPes2Ts(VpxPes2Ts&&) = delete;
29*103e46e4SHarish Mahendrakar 
30*103e46e4SHarish Mahendrakar   bool ConvertToFile();
31*103e46e4SHarish Mahendrakar 
32*103e46e4SHarish Mahendrakar  private:
33*103e46e4SHarish Mahendrakar   bool ReceivePacket(const PacketDataBuffer& packet_data) override;
34*103e46e4SHarish Mahendrakar 
35*103e46e4SHarish Mahendrakar   const std::string input_file_name_;
36*103e46e4SHarish Mahendrakar   const std::string output_file_name_;
37*103e46e4SHarish Mahendrakar 
38*103e46e4SHarish Mahendrakar   FilePtr output_file_;
39*103e46e4SHarish Mahendrakar   std::unique_ptr<Webm2Pes> pes_converter_;
40*103e46e4SHarish Mahendrakar   PacketDataBuffer ts_buffer_;
41*103e46e4SHarish Mahendrakar };
42*103e46e4SHarish Mahendrakar 
43*103e46e4SHarish Mahendrakar }  // namespace libwebm
44*103e46e4SHarish Mahendrakar 
45*103e46e4SHarish Mahendrakar #endif  // LIBWEBM_M2TS_VPXPES2TS_H_
46