summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-01 19:56:44 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-01 19:56:44 +0000
commit4939caa691ee0e53a95cb3231984f09c06002e40 (patch)
treec911e4b3b246a6490a0947716ca8ec3065773f89 /libass
parentcc5ea363f8ee21648f822d5ac8238f97c271e0a0 (diff)
downloadmpv-4939caa691ee0e53a95cb3231984f09c06002e40.tar.bz2
mpv-4939caa691ee0e53a95cb3231984f09c06002e40.tar.xz
Move code for reading a file and recoding it to utf-8 to a separate function.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23442 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass')
-rw-r--r--libass/ass.c30
-rw-r--r--libass/ass.h2
2 files changed, 23 insertions, 9 deletions
diff --git a/libass/ass.c b/libass/ass.c
index e030a6c2b4..95d935ce7f 100644
--- a/libass/ass.c
+++ b/libass/ass.c
@@ -982,17 +982,9 @@ ass_track_t* ass_read_memory(ass_library_t* library, char* buf, size_t bufsize,
return track;
}
-/**
- * \brief Read subtitles from file.
- * \param library libass library object
- * \param fname file name
- * \param codepage recode buffer contents from given codepage
- * \return newly allocated track
-*/
-ass_track_t* ass_read_file(ass_library_t* library, char* fname, char* codepage)
+char* read_file_recode(char* fname, char* codepage, int* size)
{
char* buf;
- ass_track_t* track;
size_t bufsize;
buf = read_file(fname, &bufsize);
@@ -1007,6 +999,26 @@ ass_track_t* ass_read_file(ass_library_t* library, char* fname, char* codepage)
if (!buf)
return 0;
#endif
+ *size = bufsize;
+ return buf;
+}
+
+/**
+ * \brief Read subtitles from file.
+ * \param library libass library object
+ * \param fname file name
+ * \param codepage recode buffer contents from given codepage
+ * \return newly allocated track
+*/
+ass_track_t* ass_read_file(ass_library_t* library, char* fname, char* codepage)
+{
+ char* buf;
+ ass_track_t* track;
+ size_t bufsize;
+
+ buf = read_file_recode(fname, codepage, &bufsize);
+ if (!buf)
+ return 0;
track = parse_memory(library, buf);
free(buf);
if (!track)
diff --git a/libass/ass.h b/libass/ass.h
index 2e1aa1ab96..fb66b20420 100644
--- a/libass/ass.h
+++ b/libass/ass.h
@@ -162,6 +162,8 @@ 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);
+
/**
* \brief Read subtitles from file.
* \param fname file name