summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2008-09-10 23:59:08 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2008-09-10 23:59:08 +0300
commit259ea9d7034566760785fd5253f97b65ee8cd6ed (patch)
tree421140d6bf14e32f09acc4d0180d2273a9e88965 /libass
parentb56858342fdbe48489618107df75e5bd0451eb0b (diff)
parent60a3099c0db23d03b9f2501c2ef2cf35847b30a7 (diff)
downloadmpv-259ea9d7034566760785fd5253f97b65ee8cd6ed.tar.bz2
mpv-259ea9d7034566760785fd5253f97b65ee8cd6ed.tar.xz
Merge svn changes up to r27573
Conflicts: libmpcodecs/vd_ffmpeg.c
Diffstat (limited to 'libass')
-rw-r--r--libass/ass.c22
-rw-r--r--libass/ass.h10
2 files changed, 26 insertions, 6 deletions
diff --git a/libass/ass.c b/libass/ass.c
index 1ee81773b3..8022dfc9be 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
@@ -1009,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 baa52ead0c..4bdea3a4aa 100644
--- a/libass/ass.h
+++ b/libass/ass.h
@@ -154,6 +154,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
* \param data string to parse
@@ -171,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.