00001 /* 00002 * This file is part of libbluray 00003 * Copyright (C) 2010 hpi1 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library. If not, see 00017 * <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 #if !defined(_BD_PG_H_) 00021 #define _BD_PG_H_ 00022 00023 #include "overlay.h" 00024 00025 #include <stdint.h> 00026 00027 #ifdef __cplusplus 00028 extern "C" { 00029 #endif 00030 00031 typedef struct { 00032 uint16_t video_width; 00033 uint16_t video_height; 00034 uint8_t frame_rate; 00035 } BD_PG_VIDEO_DESCRIPTOR; 00036 00037 typedef struct { 00038 uint16_t number; 00039 uint8_t state; 00040 } BD_PG_COMPOSITION_DESCRIPTOR; 00041 00042 typedef struct { 00043 uint8_t first_in_seq; 00044 uint8_t last_in_seq; 00045 } BD_PG_SEQUENCE_DESCRIPTOR; 00046 00047 typedef struct { 00048 uint8_t id; 00049 uint16_t x; 00050 uint16_t y; 00051 uint16_t width; 00052 uint16_t height; 00053 } BD_PG_WINDOW; 00054 00055 typedef struct { 00056 uint16_t object_id_ref; 00057 uint8_t window_id_ref; 00058 uint8_t forced_on_flag; 00059 00060 uint16_t x; 00061 uint16_t y; 00062 00063 uint8_t crop_flag; 00064 uint16_t crop_x; 00065 uint16_t crop_y; 00066 uint16_t crop_w; 00067 uint16_t crop_h; 00068 } BD_PG_COMPOSITION_OBJECT; 00069 00070 typedef struct { 00071 int64_t pts; 00072 00073 uint8_t id; 00074 uint8_t version; 00075 00076 BD_PG_PALETTE_ENTRY entry[256]; 00077 } BD_PG_PALETTE; 00078 00079 typedef struct { 00080 int64_t pts; 00081 00082 uint16_t id; 00083 uint8_t version; 00084 00085 uint16_t width; 00086 uint16_t height; 00087 00088 BD_PG_RLE_ELEM *img; 00089 00090 } BD_PG_OBJECT; 00091 00092 typedef struct { 00093 int64_t pts; 00094 00095 BD_PG_VIDEO_DESCRIPTOR video_descriptor; 00096 BD_PG_COMPOSITION_DESCRIPTOR composition_descriptor; 00097 00098 uint8_t palette_update_flag; 00099 uint8_t palette_id_ref; 00100 00101 unsigned num_composition_objects; 00102 BD_PG_COMPOSITION_OBJECT *composition_object; 00103 00104 } BD_PG_COMPOSITION; 00105 00106 #ifdef __cplusplus 00107 }; 00108 #endif 00109 00110 typedef struct { 00111 int64_t pts; 00112 00113 unsigned num_windows; 00114 BD_PG_WINDOW *window; 00115 } BD_PG_WINDOWS; 00116 00117 #endif // _BD_PG_H_
1.6.3