summaryrefslogtreecommitdiffstats
path: root/sub/sub.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-11-24 12:58:06 +0100
committerwm4 <wm4@nowhere>2013-11-24 14:44:58 +0100
commite5311586ab7641e0e1936473594bd9fbaa67bb2d (patch)
tree9d52ad39bb326e401b3ea368513c65a96ffb057a /sub/sub.h
parentdf8d00cc1fec3758e990d2e51e9830c43642e2b6 (diff)
downloadmpv-e5311586ab7641e0e1936473594bd9fbaa67bb2d.tar.bz2
mpv-e5311586ab7641e0e1936473594bd9fbaa67bb2d.tar.xz
Rename sub.c/.h to osd.c/.h
This was way too misleading. osd.c merely calls the subtitle renderers, instead of actually dealing with subtitles.
Diffstat (limited to 'sub/sub.h')
-rw-r--r--sub/sub.h245
1 files changed, 0 insertions, 245 deletions
diff --git a/sub/sub.h b/sub/sub.h
deleted file mode 100644
index 64e10193ea..0000000000
--- a/sub/sub.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * MPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef MPLAYER_SUB_H
-#define MPLAYER_SUB_H
-
-#include <stddef.h>
-#include <stdbool.h>
-#include <stdint.h>
-
-#include "mpvcore/m_option.h"
-
-// NOTE: VOs must support at least SUBBITMAP_RGBA.
-enum sub_bitmap_format {
- SUBBITMAP_EMPTY = 0,// no bitmaps; always has num_parts==0
- SUBBITMAP_LIBASS, // A8, with a per-surface blend color (libass.color)
- SUBBITMAP_RGBA, // B8G8R8A8 (MSB=A, LSB=B), scaled, premultiplied alpha
- SUBBITMAP_INDEXED, // scaled, bitmap points to osd_bmp_indexed
-
- SUBBITMAP_COUNT
-};
-
-// For SUBBITMAP_INDEXED
-struct osd_bmp_indexed {
- uint8_t *bitmap;
- // Each entry is like a pixel in SUBBITMAP_RGBA format, but using straight
- // alpha.
- uint32_t palette[256];
-};
-
-struct sub_bitmap {
- void *bitmap;
- int stride;
- // Note: not clipped, going outside the screen area is allowed
- // (except for SUBBITMAP_LIBASS, which is always clipped)
- int w, h;
- int x, y;
- int dw, dh;
-
- union {
- struct {
- uint32_t color;
- } libass;
- };
-};
-
-struct sub_bitmaps {
- // For VO cache state (limited by MAX_OSD_PARTS)
- int render_index;
-
- enum sub_bitmap_format format;
-
- // If false, dw==w && dh==h.
- // SUBBITMAP_LIBASS is never scaled.
- bool scaled;
-
- struct sub_bitmap *parts;
- int num_parts;
-
- // Incremented on each change
- int bitmap_id, bitmap_pos_id;
-};
-
-struct mp_osd_res {
- int w, h; // screen dimensions, including black borders
- int mt, mb, ml, mr; // borders (top, bottom, left, right)
- double display_par;
- double video_par; // PAR of the original video (for some sub decoders)
-};
-
-enum mp_osdtype {
- OSDTYPE_SUB,
- OSDTYPE_SUBTEXT,
-
- OSDTYPE_PROGBAR,
- OSDTYPE_OSD,
-
- OSDTYPE_EXTERNAL,
- OSDTYPE_EXTERNAL2,
-
- MAX_OSD_PARTS
-};
-
-#define OSD_CONV_CACHE_MAX 4
-
-struct osd_object {
- int type; // OSDTYPE_*
- bool is_sub;
-
- bool force_redraw;
-
- // caches for OSD conversion (internal to render_object())
- struct osd_conv_cache *cache[OSD_CONV_CACHE_MAX];
- struct sub_bitmaps cached;
-
- // VO cache state
- int vo_bitmap_id;
- int vo_bitmap_pos_id;
- struct mp_osd_res vo_res;
-
- // Internally used by osd_libass.c
- struct ass_track *osd_track;
- struct sub_bitmap *parts_cache;
-};
-
-struct osd_state {
- struct osd_object *objs[MAX_OSD_PARTS];
-
- struct ass_library *ass_library;
- struct ass_renderer *ass_renderer;
- double video_offset;
- double vo_pts;
-
- bool render_subs_in_filter;
- bool render_bitmap_subs;
-
- struct mp_osd_res last_vo_res;
-
- bool want_redraw;
-
- // OSDTYPE_OSD
- char *osd_text;
- // OSDTYPE_SUBTEXT
- char *sub_text;
- // OSDTYPE_PROGBAR
- int progbar_type; // <0: disabled, 1-255: symbol, else: no symbol
- float progbar_value; // range 0.0-1.0
- float *progbar_stops; // used for chapter indicators (0.0-1.0 each)
- int progbar_num_stops;
- // OSDTYPE_EXTERNAL
- char *external;
- int external_res_x, external_res_y;
- // OSDTYPE_EXTERNAL2
- struct sub_bitmaps external2;
- // OSDTYPE_SUB
- struct dec_sub *dec_sub;
-
- struct MPOpts *opts;
-
- // Internal to sub.c
- struct mp_draw_sub_cache *draw_cache;
-
- // Internally used by osd_libass.c
- struct ass_renderer *osd_render;
- struct ass_library *osd_ass_library;
-};
-
-// Start of OSD symbols in osd_font.pfb
-#define OSD_CODEPOINTS 0xE000
-
-// OSD symbols. osd_font.pfb has them starting from codepoint OSD_CODEPOINTS.
-// Symbols with a value >= 32 are normal unicode codepoints.
-enum mp_osd_font_codepoints {
- OSD_PLAY = 0x01,
- OSD_PAUSE = 0x02,
- OSD_STOP = 0x03,
- OSD_REW = 0x04,
- OSD_FFW = 0x05,
- OSD_CLOCK = 0x06,
- OSD_CONTRAST = 0x07,
- OSD_SATURATION = 0x08,
- OSD_VOLUME = 0x09,
- OSD_BRIGHTNESS = 0x0A,
- OSD_HUE = 0x0B,
- OSD_BALANCE = 0x0C,
- OSD_PANSCAN = 0x50,
-
- OSD_PB_START = 0x10,
- OSD_PB_0 = 0x11,
- OSD_PB_END = 0x12,
- OSD_PB_1 = 0x13,
-};
-
-struct osd_style_opts {
- char *font;
- float font_size;
- struct m_color color;
- struct m_color border_color;
- struct m_color shadow_color;
- struct m_color back_color;
- float border_size;
- float shadow_offset;
- float spacing;
- int margin_x;
- int margin_y;
- float blur;
-};
-
-extern const struct m_sub_options osd_style_conf;
-
-struct osd_state *osd_create(struct MPOpts *opts, struct ass_library *asslib);
-void osd_set_text(struct osd_state *osd, const char *text);
-void osd_set_sub(struct osd_state *osd, const char *text);
-void osd_changed(struct osd_state *osd, int new_value);
-void osd_changed_all(struct osd_state *osd);
-void osd_free(struct osd_state *osd);
-
-enum mp_osd_draw_flags {
- OSD_DRAW_SUB_FILTER = (1 << 0),
- OSD_DRAW_SUB_ONLY = (1 << 1),
-};
-
-void osd_draw(struct osd_state *osd, struct mp_osd_res res,
- double video_pts, int draw_flags,
- const bool formats[SUBBITMAP_COUNT],
- void (*cb)(void *ctx, struct sub_bitmaps *imgs), void *cb_ctx);
-
-struct mp_image;
-bool osd_draw_on_image(struct osd_state *osd, struct mp_osd_res res,
- double video_pts, int draw_flags, struct mp_image *dest);
-
-struct mp_image_pool;
-void osd_draw_on_image_p(struct osd_state *osd, struct mp_osd_res res,
- double video_pts, int draw_flags,
- struct mp_image_pool *pool, struct mp_image *dest);
-
-void osd_object_get_scale_factor(struct osd_state *osd, struct osd_object *obj,
- double *sw, double *sh);
-
-// defined in osd_libass.c and osd_dummy.c
-
-void osd_object_get_bitmaps(struct osd_state *osd, struct osd_object *obj,
- struct sub_bitmaps *out_imgs);
-void osd_object_get_resolution(struct osd_state *osd, struct osd_object *obj,
- int *out_w, int *out_h);
-void osd_get_function_sym(char *buffer, size_t buffer_size, int osd_function);
-void osd_init_backend(struct osd_state *osd);
-void osd_destroy_backend(struct osd_state *osd);
-
-#endif /* MPLAYER_SUB_H */