From 81058d5af23507640036ffb061d3c42accd0b163 Mon Sep 17 00:00:00 2001 From: aurel Date: Fri, 5 Sep 2008 15:07:06 +0000 Subject: libass: add a new ass_process_data() to process demuxed subtitle packets conforming to the ASS spec git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27530 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libass/ass.c | 20 ++++++++++++++++---- libass/ass.h | 8 ++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) (limited to 'libass') diff --git a/libass/ass.c b/libass/ass.c index 1ee81773b3..711d3c52af 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -717,21 +717,33 @@ static int process_text(ass_track_t* track, char* str) } /** - * \brief Process CodecPrivate section of subtitle stream + * \brief Process a chunk of subtitle stream data. * \param track track * \param data string to parse * \param size length of data - CodecPrivate section contains [Stream Info] and [V4+ Styles] ([V4 Styles] for SSA) sections -*/ -void ass_process_codec_private(ass_track_t* track, char *data, int size) +*/ +void ass_process_data(ass_track_t* track, char* data, int size) { char* str = malloc(size + 1); memcpy(str, data, size); str[size] = '\0'; + mp_msg(MSGT_ASS, MSGL_V, "event: %s\n", str); process_text(track, str); free(str); +} + +/** + * \brief Process CodecPrivate section of subtitle stream + * \param track track + * \param data string to parse + * \param size length of data + CodecPrivate section contains [Stream Info] and [V4+ Styles] ([V4 Styles] for SSA) sections +*/ +void ass_process_codec_private(ass_track_t* track, char *data, int size) +{ + ass_process_data(track, data, size); if (!track->event_format) { // probably an mkv produced by ancient mkvtoolnix diff --git a/libass/ass.h b/libass/ass.h index baa52ead0c..7eccbe9552 100644 --- a/libass/ass.h +++ b/libass/ass.h @@ -153,6 +153,14 @@ void ass_free_style(ass_track_t* track, int sid); */ void ass_free_event(ass_track_t* track, int eid); +/** + * \brief Parse a chunk of subtitle stream data. + * \param track track + * \param data string to parse + * \param size length of data + */ +void ass_process_data(ass_track_t* track, char* data, int size); + /** * \brief Parse Codec Private section of subtitle stream * \param track target track -- cgit v1.2.3 From 11d6f1fd2dc10547dfd127f1281974f5758877c7 Mon Sep 17 00:00:00 2001 From: aurel Date: Fri, 5 Sep 2008 22:59:01 +0000 Subject: libass: fix type mismatch between size parameter and the way it's used git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27531 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libass/ass.c | 2 +- libass/ass.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'libass') diff --git a/libass/ass.c b/libass/ass.c index 711d3c52af..8022dfc9be 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -1021,7 +1021,7 @@ ass_track_t* ass_read_memory(ass_library_t* library, char* buf, size_t bufsize, return track; } -char* read_file_recode(char* fname, char* codepage, int* size) +char* read_file_recode(char* fname, char* codepage, size_t* size) { char* buf; size_t bufsize; diff --git a/libass/ass.h b/libass/ass.h index 7eccbe9552..4bdea3a4aa 100644 --- a/libass/ass.h +++ b/libass/ass.h @@ -179,7 +179,7 @@ void ass_process_codec_private(ass_track_t* track, char *data, int size); */ void ass_process_chunk(ass_track_t* track, char *data, int size, long long timecode, long long duration); -char* read_file_recode(char* fname, char* codepage, int* size); +char* read_file_recode(char* fname, char* codepage, size_t* size); /** * \brief Read subtitles from file. -- cgit v1.2.3