Mercurial > mplayer.hg
view subreader.h @ 11350:007ec48cf146
Current mplayer (mine is mplayer-1.0-pre1cvs20031001) cannot play mms
stream with multibyte characters in the url.
There is a bug in string_utf16() of libmpdemux/asf_mmst_streaming.c:
the url encoding code is written for single-byte character only. It
just fill a zero byte between every two adjacent bytes of the url
string. This is wrong when the url string contains multi-byte
characters.
My patch is in the attachment, and has been tested working. It uses
iconv() to convert the url's encoding to utf-16 correctly. So can this
patch be accepted and commit into CVS?
patch by Wang WenRui <wangwr@mail.ustc.edu.cn>
author | attila |
---|---|
date | Sat, 01 Nov 2003 14:43:28 +0000 |
parents | c36db88bfbc4 |
children | 9c66ef56b1b1 |
line wrap: on
line source
#ifndef __MPLAYER_SUBREADER_H #define __MPLAYER_SUBREADER_H extern int suboverlap_enabled; extern int sub_no_text_pp; // disable text post-processing extern int sub_match_fuzziness; // subtitle formats #define SUB_INVALID -1 #define SUB_MICRODVD 0 #define SUB_SUBRIP 1 #define SUB_SUBVIEWER 2 #define SUB_SAMI 3 #define SUB_VPLAYER 4 #define SUB_RT 5 #define SUB_SSA 6 #define SUB_DUNNOWHAT 7 // FIXME what format is it ? #define SUB_MPSUB 8 #define SUB_AQTITLE 9 #define SUB_SUBVIEWER2 10 #define SUB_SUBRIP09 11 #define SUB_JACOSUB 12 // One of the SUB_* constant above extern int sub_format; #define MAX_SUBTITLE_FILES 128 #define SUB_MAX_TEXT 10 #define SUB_ALIGNMENT_HLEFT 1 #define SUB_ALIGNMENT_HCENTER 0 #define SUB_ALIGNMENT_HRIGHT 2 typedef struct { int lines; unsigned long start; unsigned long end; char *text[SUB_MAX_TEXT]; unsigned char alignment; } subtitle; typedef struct { subtitle *subtitles; char *filename; int sub_uses_time; int sub_num; // number of subtitle structs int sub_errs; } sub_data; sub_data* sub_read_file (char *filename, float pts); subtitle* subcp_recode1 (subtitle *sub); void subcp_open (void); /* for demux_ogg.c */ void subcp_close (void); /* for demux_ogg.c */ char ** sub_filenames(char *path, char *fname); void list_sub_file(sub_data* subd); void dump_srt(sub_data* subd, float fps); void dump_mpsub(sub_data* subd, float fps); void dump_microdvd(sub_data* subd, float fps); void dump_jacosub(sub_data* subd, float fps); void dump_sami(sub_data* subd, float fps); void sub_free( sub_data * subd ); void find_sub(sub_data* subd,int key); void step_sub(sub_data *subd, float pts, int movement); #endif