|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* This file is part of libbluray
|
|
Packit |
5e46da |
* Copyright (C) 2009-2010 John Stebbins
|
|
Packit |
5e46da |
* Copyright (C) 2012-2013 Petri Hintukainen <phintuka@users.sourceforge.net>
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* This library is free software; you can redistribute it and/or
|
|
Packit |
5e46da |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
5e46da |
* License as published by the Free Software Foundation; either
|
|
Packit |
5e46da |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
5e46da |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
5e46da |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
5e46da |
* Lesser General Public License for more details.
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
5e46da |
* License along with this library. If not, see
|
|
Packit |
5e46da |
* <http://www.gnu.org/licenses/>.
|
|
Packit |
5e46da |
*/
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#if !defined(_CLPI_DATA_H_)
|
|
Packit |
5e46da |
#define _CLPI_DATA_H_
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#include <stdint.h>
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint16_t pcr_pid;
|
|
Packit |
5e46da |
uint32_t spn_stc_start;
|
|
Packit |
5e46da |
uint32_t presentation_start_time;
|
|
Packit |
5e46da |
uint32_t presentation_end_time;
|
|
Packit |
5e46da |
} CLPI_STC_SEQ;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint32_t spn_atc_start;
|
|
Packit |
5e46da |
uint8_t num_stc_seq;
|
|
Packit |
5e46da |
uint8_t offset_stc_id;
|
|
Packit |
5e46da |
CLPI_STC_SEQ *stc_seq;
|
|
Packit |
5e46da |
} CLPI_ATC_SEQ;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint8_t num_atc_seq;
|
|
Packit |
5e46da |
CLPI_ATC_SEQ *atc_seq;
|
|
Packit |
5e46da |
} CLPI_SEQ_INFO;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint8_t validity;
|
|
Packit |
5e46da |
char format_id[5];
|
|
Packit |
5e46da |
} CLPI_TS_TYPE;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint32_t delta;
|
|
Packit |
5e46da |
char file_id[6];
|
|
Packit |
5e46da |
char file_code[5];
|
|
Packit |
5e46da |
} CLPI_ATC_DELTA;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct {
|
|
Packit |
5e46da |
char file_id[6];
|
|
Packit |
5e46da |
} CLPI_FONT;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct {
|
|
Packit |
5e46da |
uint8_t font_count;
|
|
Packit |
5e46da |
CLPI_FONT *font;
|
|
Packit |
5e46da |
} CLPI_FONT_INFO;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint8_t clip_stream_type;
|
|
Packit |
5e46da |
uint8_t application_type;
|
|
Packit |
5e46da |
uint8_t is_atc_delta;
|
|
Packit |
5e46da |
uint32_t ts_recording_rate;
|
|
Packit |
5e46da |
uint32_t num_source_packets;
|
|
Packit |
5e46da |
CLPI_TS_TYPE ts_type_info;
|
|
Packit |
5e46da |
uint8_t atc_delta_count;
|
|
Packit |
5e46da |
CLPI_ATC_DELTA *atc_delta;
|
|
Packit |
5e46da |
CLPI_FONT_INFO font_info; /* Text subtitle stream font files */
|
|
Packit |
5e46da |
} CLPI_CLIP_INFO;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint16_t pid;
|
|
Packit |
5e46da |
uint8_t coding_type;
|
|
Packit |
5e46da |
uint8_t format;
|
|
Packit |
5e46da |
uint8_t rate;
|
|
Packit |
5e46da |
uint8_t aspect;
|
|
Packit |
5e46da |
uint8_t oc_flag;
|
|
Packit |
5e46da |
uint8_t char_code;
|
|
Packit |
5e46da |
char lang[4];
|
|
Packit |
5e46da |
} CLPI_PROG_STREAM;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint32_t spn_program_sequence_start;
|
|
Packit |
5e46da |
uint16_t program_map_pid;
|
|
Packit |
5e46da |
uint8_t num_streams;
|
|
Packit |
5e46da |
uint8_t num_groups;
|
|
Packit |
5e46da |
CLPI_PROG_STREAM *streams;
|
|
Packit |
5e46da |
} CLPI_PROG;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint8_t num_prog;
|
|
Packit |
5e46da |
CLPI_PROG *progs;
|
|
Packit |
5e46da |
} CLPI_PROG_INFO;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
int ref_ep_fine_id;
|
|
Packit |
5e46da |
int pts_ep;
|
|
Packit |
5e46da |
uint32_t spn_ep;
|
|
Packit |
5e46da |
} CLPI_EP_COARSE;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint8_t is_angle_change_point;
|
|
Packit |
5e46da |
uint8_t i_end_position_offset;
|
|
Packit |
5e46da |
int pts_ep;
|
|
Packit |
5e46da |
int spn_ep;
|
|
Packit |
5e46da |
} CLPI_EP_FINE;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint16_t pid;
|
|
Packit |
5e46da |
uint8_t ep_stream_type;
|
|
Packit |
5e46da |
int num_ep_coarse;
|
|
Packit |
5e46da |
int num_ep_fine;
|
|
Packit |
5e46da |
uint32_t ep_map_stream_start_addr;
|
|
Packit |
5e46da |
CLPI_EP_COARSE *coarse;
|
|
Packit |
5e46da |
CLPI_EP_FINE *fine;
|
|
Packit |
5e46da |
} CLPI_EP_MAP_ENTRY;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct
|
|
Packit |
5e46da |
{
|
|
Packit |
5e46da |
uint8_t type;
|
|
Packit |
5e46da |
// ep_map
|
|
Packit |
5e46da |
uint8_t num_stream_pid;
|
|
Packit |
5e46da |
CLPI_EP_MAP_ENTRY *entry;
|
|
Packit |
5e46da |
} CLPI_CPI;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* Extent start points (profile 5 / version 2.4) */
|
|
Packit |
5e46da |
typedef struct {
|
|
Packit |
5e46da |
uint32_t num_point;
|
|
Packit |
5e46da |
uint32_t *point;
|
|
Packit |
5e46da |
} CLPI_EXTENT_START;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct clpi_cl {
|
|
Packit |
5e46da |
uint32_t type_indicator;
|
|
Packit |
5e46da |
uint32_t type_indicator2;
|
|
Packit |
5e46da |
uint32_t sequence_info_start_addr;
|
|
Packit |
5e46da |
uint32_t program_info_start_addr;
|
|
Packit |
5e46da |
uint32_t cpi_start_addr;
|
|
Packit |
5e46da |
uint32_t clip_mark_start_addr;
|
|
Packit |
5e46da |
uint32_t ext_data_start_addr;
|
|
Packit |
5e46da |
CLPI_CLIP_INFO clip;
|
|
Packit |
5e46da |
CLPI_SEQ_INFO sequence;
|
|
Packit |
5e46da |
CLPI_PROG_INFO program;
|
|
Packit |
5e46da |
CLPI_CPI cpi;
|
|
Packit |
5e46da |
// skip clip mark & extension data
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
// extensions for 3D
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
CLPI_EXTENT_START extent_start; /* extent start points (.ssif interleaving) */
|
|
Packit |
5e46da |
CLPI_PROG_INFO program_ss;
|
|
Packit |
5e46da |
CLPI_CPI cpi_ss;
|
|
Packit |
5e46da |
} CLPI_CL;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#endif // _CLPI_DATA_H_
|