Blame src/libbluray/disc/bdplus.h

Packit 5e46da
/*
Packit 5e46da
 * This file is part of libbluray
Packit 5e46da
 * Copyright (C) 2013-2015  VideoLAN
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
#ifndef _BD_LIBBDPLUS_H_
Packit 5e46da
#define _BD_LIBBDPLUS_H_
Packit 5e46da
Packit 5e46da
#include "util/attributes.h"
Packit 5e46da
Packit 5e46da
#include <stdint.h>
Packit 5e46da
Packit 5e46da
Packit 5e46da
typedef struct bd_bdplus BD_BDPLUS;
Packit 5e46da
Packit 5e46da
BD_PRIVATE int  libbdplus_required(void *have_file_handle, int (*have_file)(void *, const char *, const char *));
Packit 5e46da
BD_PRIVATE BD_BDPLUS *libbdplus_load(void);
Packit 5e46da
BD_PRIVATE int  libbdplus_is_mmbd(BD_BDPLUS *);
Packit 5e46da
BD_PRIVATE int  libbdplus_init(BD_BDPLUS *p, const char *root, const char *device,
Packit 5e46da
                               void *open_file_handle, void *open_file_fp,
Packit 5e46da
                               const uint8_t *vid, const uint8_t *mk);
Packit 5e46da
BD_PRIVATE void libbdplus_unload(BD_BDPLUS **p);
Packit 5e46da
Packit 5e46da
BD_PRIVATE int  libbdplus_get_gen(BD_BDPLUS *p);
Packit 5e46da
BD_PRIVATE int  libbdplus_get_date(BD_BDPLUS *p);
Packit 5e46da
Packit 5e46da
BD_PRIVATE void libbdplus_mmap(BD_BDPLUS *p, uint32_t region_id, void *mem);
Packit 5e46da
BD_PRIVATE void libbdplus_psr(BD_BDPLUS *p, void *regs, void *read, void *write);
Packit 5e46da
BD_PRIVATE void libbdplus_start(BD_BDPLUS *p);
Packit 5e46da
BD_PRIVATE void libbdplus_event(BD_BDPLUS *p, uint32_t event, uint32_t param1, uint32_t param2);
Packit 5e46da
Packit 5e46da
#define BD_BDPLUS_TYPE 0x1000
Packit 5e46da
BD_PRIVATE const uint8_t *libbdplus_get_data(BD_BDPLUS *p, int type);
Packit 5e46da
Packit 5e46da
/*
Packit 5e46da
 *  stream layer
Packit 5e46da
 */
Packit 5e46da
Packit 5e46da
typedef struct bd_bdplus_st BD_BDPLUS_ST;
Packit 5e46da
Packit 5e46da
BD_PRIVATE BD_BDPLUS_ST *libbdplus_m2ts(BD_BDPLUS *p, uint32_t clip_id, uint64_t pos);
Packit 5e46da
BD_PRIVATE int  libbdplus_seek(BD_BDPLUS_ST *p, uint64_t pos);
Packit 5e46da
BD_PRIVATE int  libbdplus_fixup(BD_BDPLUS_ST *p, uint8_t *buf, int len);
Packit 5e46da
BD_PRIVATE int  libbdplus_m2ts_close(BD_BDPLUS_ST **p);
Packit 5e46da
Packit 5e46da
Packit 5e46da
#endif /* _BD_BDPLUS_H_ */