summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2010-05-31 01:38:11 +0200
committerGrigori Goronzy <greg@blackbox>2010-05-31 01:54:54 +0200
commit9839bd0a94b664d02ecc9b5e1d235144714cf5f7 (patch)
treea3dab408c225073ffd46c47e5be40f0d6a9e5b0f
parenta6fe61a3990afec7bed1d7e781020f1cbff9d5b5 (diff)
downloadlibass-9839bd0a94b664d02ecc9b5e1d235144714cf5f7.tar.bz2
libass-9839bd0a94b664d02ecc9b5e1d235144714cf5f7.tar.xz
Add API function to flush all events
Add a function to flush all events in a track and increment LIBASS_VERSION to indicate the addition. Initial patch by Aurelien Jacobs (aurel AT gnuage DOT org).
-rw-r--r--libass/ass.c14
-rw-r--r--libass/ass.h8
2 files changed, 21 insertions, 1 deletions
diff --git a/libass/ass.c b/libass/ass.c
index 2efddcd..d23d101 100644
--- a/libass/ass.c
+++ b/libass/ass.c
@@ -905,6 +905,20 @@ void ass_process_chunk(ASS_Track *track, char *data, int size,
free(str);
}
+/**
+ * \brief Flush buffered events.
+ * \param track track
+*/
+void ass_flush_events(ASS_Track *track)
+{
+ if (track->events) {
+ int eid;
+ for (eid = 0; eid < track->n_events; eid++)
+ ass_free_event(track, eid);
+ track->n_events = 0;
+ }
+}
+
#ifdef CONFIG_ICONV
/** \brief recode buffer to utf-8
* constraint: codepage != 0
diff --git a/libass/ass.h b/libass/ass.h
index a16bad4..1d98298 100644
--- a/libass/ass.h
+++ b/libass/ass.h
@@ -25,7 +25,7 @@
#include <stdarg.h>
#include "ass_types.h"
-#define LIBASS_VERSION 0x00909000
+#define LIBASS_VERSION 0x00910000
/*
* A linked list of images produced by an ass renderer.
@@ -322,6 +322,12 @@ void ass_process_chunk(ASS_Track *track, char *data, int size,
long long timecode, long long duration);
/**
+ * \brief Flush buffered events.
+ * \param track track
+*/
+void ass_flush_events(ASS_Track *track);
+
+/**
* \brief Read subtitles from file.
* \param library library handle
* \param fname file name