Blame src/libbluray/decoders/pg.h

Packit 5e46da
/*
Packit 5e46da
 * This file is part of libbluray
Packit 5e46da
 * Copyright (C) 2010  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(_BD_PG_H_)
Packit 5e46da
#define _BD_PG_H_
Packit 5e46da
Packit 5e46da
#include "overlay.h"
Packit 5e46da
Packit 5e46da
#include <stdint.h>
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint16_t video_width;
Packit 5e46da
    uint16_t video_height;
Packit 5e46da
    uint8_t  frame_rate;
Packit 5e46da
} BD_PG_VIDEO_DESCRIPTOR;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint16_t number;
Packit 5e46da
    uint8_t  state;
Packit 5e46da
} BD_PG_COMPOSITION_DESCRIPTOR;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint8_t first_in_seq;
Packit 5e46da
    uint8_t last_in_seq;
Packit 5e46da
} BD_PG_SEQUENCE_DESCRIPTOR;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint8_t  id;
Packit 5e46da
    uint16_t x;
Packit 5e46da
    uint16_t y;
Packit 5e46da
    uint16_t width;
Packit 5e46da
    uint16_t height;
Packit 5e46da
} BD_PG_WINDOW;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint16_t object_id_ref;
Packit 5e46da
    uint8_t  window_id_ref;
Packit 5e46da
    uint8_t  forced_on_flag;
Packit 5e46da
Packit 5e46da
    uint16_t x;
Packit 5e46da
    uint16_t y;
Packit 5e46da
Packit 5e46da
    uint8_t  crop_flag;
Packit 5e46da
    uint16_t crop_x;
Packit 5e46da
    uint16_t crop_y;
Packit 5e46da
    uint16_t crop_w;
Packit 5e46da
    uint16_t crop_h;
Packit 5e46da
} BD_PG_COMPOSITION_OBJECT;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    int64_t pts;
Packit 5e46da
Packit 5e46da
    uint8_t id;
Packit 5e46da
    uint8_t version;
Packit 5e46da
Packit 5e46da
    BD_PG_PALETTE_ENTRY entry[256];
Packit 5e46da
} BD_PG_PALETTE;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    int64_t pts;
Packit 5e46da
Packit 5e46da
    uint16_t id;
Packit 5e46da
    uint8_t  version;
Packit 5e46da
Packit 5e46da
    uint16_t width;
Packit 5e46da
    uint16_t height;
Packit 5e46da
Packit 5e46da
    BD_PG_RLE_ELEM *img;
Packit 5e46da
Packit 5e46da
} BD_PG_OBJECT;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    int64_t       pts;
Packit 5e46da
Packit 5e46da
    BD_PG_VIDEO_DESCRIPTOR        video_descriptor;
Packit 5e46da
    BD_PG_COMPOSITION_DESCRIPTOR  composition_descriptor;
Packit 5e46da
Packit 5e46da
    uint8_t       palette_update_flag;
Packit 5e46da
    uint8_t       palette_id_ref;
Packit 5e46da
Packit 5e46da
    unsigned                  num_composition_objects;
Packit 5e46da
    BD_PG_COMPOSITION_OBJECT *composition_object;
Packit 5e46da
Packit 5e46da
} BD_PG_COMPOSITION;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    int64_t       pts;
Packit 5e46da
Packit 5e46da
    unsigned      num_windows;
Packit 5e46da
    BD_PG_WINDOW *window;
Packit 5e46da
} BD_PG_WINDOWS;
Packit 5e46da
Packit 5e46da
#endif // _BD_PG_H_