1 /*  Copyright (c) MediaArea.net SARL. All Rights Reserved.
2  *
3  *  Use of this source code is governed by a BSD-style license that can
4  *  be found in the License.html file in the root of the source tree.
5  */
6 
7 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 //
9 // Information about Bar Data files
10 //
11 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 
13 //---------------------------------------------------------------------------
14 #ifndef MediaInfo_DtvccTransportH
15 #define MediaInfo_DtvccTransportH
16 //---------------------------------------------------------------------------
17 
18 //---------------------------------------------------------------------------
19 #include "MediaInfo/File__Analyze.h"
20 #include <vector>
21 //---------------------------------------------------------------------------
22 
23 namespace MediaInfoLib
24 {
25 
26 //***************************************************************************
27 // Class File_DtvccTransport
28 //***************************************************************************
29 
30 class File_DtvccTransport : public File__Analyze
31 {
32 public :
33     //In
34     enum format
35     {
36         Format_Unknown,
37         Format_A53_4_GA94_03,   //MPEG_cc_data
38         Format_DVD,             //Unknown standard
39     };
40     format Format;
41     float64 AspectRatio;
42 
43     //Constructor/Destructor
44     File_DtvccTransport();
45     ~File_DtvccTransport();
46 
47 private :
48     //Streams management
49     void Streams_Update();
50     void Streams_Update_PerStream(size_t Pos);
51     void Streams_Finish();
52 
53     //Synchro
54     void Read_Buffer_Init();
55     void Read_Buffer_Unsynched();
56 
57     //Buffer - Global
58     void Read_Buffer_Continue();
59 
60     //Temp
61     struct stream
62     {
63         File__Analyze*  Parser;
64 
streamstream65         stream()
66         {
67             Parser=NULL;
68         }
69 
~streamstream70         ~stream()
71         {
72             delete Parser; //Parser=NULL;
73         }
74     };
75     std::vector<stream*> Streams;
76 
77     //Helpers
78     void  CreateStream(int8u Parser_Pos);
79 };
80 
81 } //NameSpace
82 
83 #endif
84 
85