mpls.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 typedef enum
00025 {
00026 BD_MPLS_STREAM_TYPE_PLAY_ITEM = 0x01,
00027 BD_MPLS_STREAM_TYPE_SUB_PATH = 0x02,
00028 BD_MPLS_STREAM_TYPE_IN_MUX_SUB_PATH = 0x03,
00029 } bd_mpls_stream_type_t;
00030 typedef enum
00031 {
00032 BD_MPLS_STREAM_CLASS_PRIMARY_VIDEO = 0,
00033 BD_MPLS_STREAM_CLASS_PRIMARY_AUDIO,
00034 BD_MPLS_STREAM_CLASS_PG,
00035 BD_MPLS_STREAM_CLASS_IG,
00036 BD_MPLS_STREAM_CLASS_SECONDARY_AUDIO,
00037 BD_MPLS_STREAM_CLASS_SECONDARY_PIP_PG,
00038 } bd_mpls_stream_class_t;
00039 typedef enum
00040 {
00041 BD_MPLS_STREAM_CHARSET_UNKNOWN = -1,
00042
00043 BD_MPLS_STREAM_CHARSET_UTF8 = 0x01,
00044 BD_MPLS_STREAM_CHARSET_UTF16 = 0x02,
00045 BD_MPLS_STREAM_CHARSET_SHIFT_JIS = 0x03,
00046 BD_MPLS_STREAM_CHARSET_KSC = 0x04,
00047 BD_MPLS_STREAM_CHARSET_GB18030 = 0x05,
00048 BD_MPLS_STREAM_CHARSET_GB2312 = 0x06,
00049 BD_MPLS_STREAM_CHARSET_BIG5 = 0x7,
00050 } bd_mpls_stream_charset_t;
00051
00052 typedef struct
00053 {
00054
00055 int i_type;
00056 int i_class;
00057 union
00058 {
00059 struct
00060 {
00061 int i_pid;
00062 } play_item;
00063 struct
00064 {
00065 int i_sub_path_id;
00066 int i_sub_clip_id;
00067 int i_pid;
00068 } sub_path;
00069 struct
00070 {
00071 int i_sub_path_id;
00072 int i_pid;
00073 } in_mux_sub_path;
00074 };
00075
00076
00077 int i_stream_type;
00078 char psz_language[3+1];
00079 int i_charset;
00080 } bd_mpls_stream_t;
00081
00082 void bd_mpls_stream_Parse( bd_mpls_stream_t *p_stream, bs_t *s, int i_class );
00083
00084 typedef enum
00085 {
00086 BD_MPLS_PLAY_ITEM_CONNECTION_NOT_SEAMLESS = 0x01,
00087 BD_MPLS_PLAY_ITEM_CONNECTION_SEAMLESS_5 = 0x05,
00088 BD_MPLS_PLAY_ITEM_CONNECTION_SEAMLESS_6 = 0x06,
00089 } bd_mpls_play_item_connection_t;
00090
00091 typedef enum
00092 {
00093 BD_MPLS_PLAY_ITEM_STILL_NONE = 0x00,
00094 BD_MPLS_PLAY_ITEM_STILL_FINITE = 0x01,
00095 BD_MPLS_PLAY_ITEM_STILL_INFINITE = 0x02,
00096 } bd_mpls_play_item_still_t;
00097
00098 typedef struct
00099 {
00100 int i_id;
00101 int i_stc_id;
00102 } bd_mpls_clpi_t;
00103
00104 typedef struct
00105 {
00106 int i_connection;
00107 int64_t i_in_time;
00108 int64_t i_out_time;
00109 int i_still;
00110 int i_still_time;
00111
00112
00113 bd_mpls_clpi_t clpi;
00114
00115
00116 int i_clpi;
00117 bd_mpls_clpi_t *p_clpi;
00118 bool b_angle_different_audio;
00119 bool b_angle_seamless;
00120
00121
00122
00123 int i_stream;
00124 bd_mpls_stream_t *p_stream;
00125
00126 } bd_mpls_play_item_t;
00127 void bd_mpls_play_item_Clean( bd_mpls_play_item_t *p_item );
00128 void bd_mpls_play_item_Parse( bd_mpls_play_item_t *p_item, bs_t *s );
00129
00130 typedef enum
00131 {
00132 BD_MPLS_SUB_PATH_TYPE_PRIMARY_AUDIO = 0x02,
00133 BD_MPLS_SUB_PATH_TYPE_IG = 0x03,
00134 BD_MPLS_SUB_PATH_TYPE_TEXT_SUB = 0x04,
00135 BD_MPLS_SUB_PATH_TYPE_OUT_OF_MUX_AND_SYNC = 0x05,
00136 BD_MPLS_SUB_PATH_TYPE_OUT_OF_MUX_AND_ASYNC = 0x06,
00137 BD_MPLS_SUB_PATH_TYPE_IN_OF_MUX_AND_SYNC = 0x07,
00138 } bd_mpls_sub_path_type_t;
00139 typedef struct
00140 {
00141 int i_type;
00142 bool b_repeat;
00143
00144 int i_item;
00145
00146
00147
00148 } bd_mpls_sub_path_t;
00149 void bd_mpls_sub_path_Parse( bd_mpls_sub_path_t *p_path, bs_t *s );
00150
00151 typedef enum
00152 {
00153 BD_MPLS_MARK_TYPE_RESUME = 0x00,
00154 BD_MPLS_MARK_TYPE_BOOKMARK = 0x01,
00155 BD_MPLS_MARK_TYPE_SKIP = 0x02,
00156 } bd_mpls_mark_type_t;
00157
00158 typedef struct
00159 {
00160 int i_type;
00161 int i_play_item_id;
00162 int64_t i_time;
00163 int i_entry_es_pid;
00164 } bd_mpls_mark_t;
00165 void bd_mpls_mark_Parse( bd_mpls_mark_t *p_mark, bs_t *s );
00166
00167 typedef struct
00168 {
00169 int i_id;
00170
00171 int i_play_item;
00172 bd_mpls_play_item_t *p_play_item;
00173
00174 int i_sub_path;
00175 bd_mpls_sub_path_t *p_sub_path;
00176
00177 int i_mark;
00178 bd_mpls_mark_t *p_mark;
00179 } bd_mpls_t;
00180 void bd_mpls_Clean( bd_mpls_t *p_mpls );
00181 int bd_mpls_Parse( bd_mpls_t *p_mpls, bs_t *s, int i_id );
00182