view sub/ass_mp.h @ 33033:1aed51b973fa

Ensure we always pass a buffer of at least sector size to the read function. This is never an issue with streams that have actual sectors, the reads will always return a multiple of sector size and the cache is always used in blocks of sector size. However the rtp protocol misuses this so it can just assume it always has a sufficiently large buffer available and thus fails without this extra hack.
author reimar
date Sat, 26 Mar 2011 20:04:47 +0000
parents 22888a8cb312
children fede902a408c
line wrap: on
line source

/*
 * Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com>
 *
 * 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_ASS_MP_H
#define MPLAYER_ASS_MP_H

#include "config.h"
#include <stdint.h>

#include "subreader.h"
#if defined(CONFIG_ASS_INTERNAL) || !defined(CONFIG_ASS)
#include "libass/ass.h"
#else
#include <ass/ass.h>
#endif

extern ASS_Library* ass_library;
extern int ass_enabled;
extern float ass_font_scale;
extern float ass_line_spacing;
extern int ass_top_margin;
extern int ass_bottom_margin;
extern int extract_embedded_fonts;
extern char **ass_force_style_list;
extern int ass_use_margins;
extern char* ass_color;
extern char* ass_border_color;
extern char* ass_styles_file;
extern int ass_hinting;

ASS_Track* ass_default_track(ASS_Library* library);
int ass_process_subtitle(ASS_Track* track, subtitle* sub);
ASS_Track* ass_read_subdata(ASS_Library* library, sub_data* subdata, double fps);
ASS_Track* ass_read_stream(ASS_Library* library, const char *fname, char *charset);

void ass_configure(ASS_Renderer* priv, int w, int h, int hinting);
void ass_configure_fonts(ASS_Renderer* priv);
ASS_Library* ass_init(void);

typedef struct {
	ASS_Image* imgs;
	int changed;
} EOSD_ImageList;

extern int ass_force_reload;
ASS_Image* ass_mp_render_frame(ASS_Renderer *priv, ASS_Track* track, long long now, int* detect_change);

/**
 * Initialize the use of EOSD for ASS subtitles rendering.
 */
void eosd_ass_init(ASS_Library *library);

#endif /* MPLAYER_ASS_MP_H */