/* * Copyright (C) 2006 Evgeniy Stepanov * * This file is part of libass. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef LIBASS_PRIV_H #define LIBASS_PRIV_H #include #include #include "ass_shaper.h" typedef enum { PST_UNKNOWN = 0, PST_INFO, PST_STYLES, PST_EVENTS, PST_FONTS } ParserState; typedef enum { SINFO_LANGUAGE = 1 << 0, SINFO_PLAYRESX = 1 << 1, SINFO_PLAYRESY = 1 << 2, SINFO_TIMER = 1 << 3, SINFO_WRAPSTYLE = 1 << 4, SINFO_SCALEDBORDER = 1 << 5, SINFO_COLOURMATRIX = 1 << 6, SINFO_KERNING = 1 << 7, // for legacy detection GENBY_FFMPEG = 1 << 8 // max 32 enumerators } ScriptInfo; struct parser_priv { ParserState state; char *fontname; char *fontdata; size_t fontdata_size; size_t fontdata_used; // contains bitmap of ReadOrder IDs of all read events uint32_t *read_order_bitmap; int read_order_elems; // size in uint32_t units of read_order_bitmap int check_readorder; // tracks [Script Info] headers set by the script uint32_t header_flags; #ifdef USE_FRIBIDI_EX_API bool bidi_brackets; #endif }; #endif /* LIBASS_PRIV_H */