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 AFD and Bar Data files
10 //
11 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 
13 //---------------------------------------------------------------------------
14 #ifndef MediaInfo_AfdBarDataH
15 #define MediaInfo_AfdBarDataH
16 //---------------------------------------------------------------------------
17 
18 //---------------------------------------------------------------------------
19 #include "MediaInfo/File__Analyze.h"
20 //---------------------------------------------------------------------------
21 
22 namespace MediaInfoLib
23 {
24 
25 //***************************************************************************
26 // Class File_AfdBarData
27 //***************************************************************************
28 
29 class File_AfdBarData : public File__Analyze
30 {
31 public :
32     //In
33     enum format
34     {
35         Format_Unknown,
36         Format_A53_4_DTG1,      //Active Format Description
37         Format_A53_4_GA94_06,   //Bar Data
38         Format_S2016_3,         //Active Format Description & Bar Data
39     };
40     format Format;
41     int8u  aspect_ratio_FromContainer;  //May come from the containing parser
42 
43     //Constructor/Destructor
44     File_AfdBarData();
45 
46 private :
47     //Streams management
48     void Streams_Fill();
49 
50     //Buffer - Global
51     void Read_Buffer_Continue();
52 
53     //Elements
54     void afd_data();
55     void bar_data();
56 
57     //Sream
58     struct stream
59     {
60         int16u line_number_end_of_top_bar;
61         int16u line_number_start_of_bottom_bar;
62         int16u pixel_number_end_of_left_bar;
63         int16u pixel_number_start_of_right_bar;
64         int8u  active_format;
65         int8u  aspect_ratio;
66 
streamstream67         stream()
68         {
69             line_number_end_of_top_bar=(int16u)-1;
70             line_number_start_of_bottom_bar=(int16u)-1;
71             pixel_number_end_of_left_bar=(int16u)-1;
72             pixel_number_start_of_right_bar=(int16u)-1;
73             active_format=(int8u)-1;
74             aspect_ratio=(int8u)-1;
75         }
76     };
77     stream Stream;
78 
79     //Temp
80     int16u line_number_end_of_top_bar;
81     int16u line_number_start_of_bottom_bar;
82     int16u pixel_number_end_of_left_bar;
83     int16u pixel_number_start_of_right_bar;
84     int8u  active_format;
85     int8u  aspect_ratio;
86 };
87 
88 } //NameSpace
89 
90 #endif
91 
92