summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2011-01-16 20:03:08 +0200
committerUoti Urpala <uau@glyph.nonexistent.invalid>2011-01-18 14:58:09 +0200
commite990fb2ffeaa786339895c8f3b3f104ef536bf39 (patch)
tree383aaa216cd5d1f7c4dd75f7c27cfbaadaa7970a /libmpdemux/demuxer.c
parent8636eb77c5f9f1e49a12e3e1653fe4c2e8e0bfc3 (diff)
downloadmpv-e990fb2ffeaa786339895c8f3b3f104ef536bf39.tar.bz2
mpv-e990fb2ffeaa786339895c8f3b3f104ef536bf39.tar.xz
subtitles: add framework for subtitle decoders
Add a framework for subtitle decoder modules that work more like audio/video decoders do, and change libass rendering of demuxed subtitles to use the new framework. The old subtitle code is messy, with details specific to handling particular subtitle types spread over high-level code. This should make it easier to clean things up and fix some bugs/limitations.
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c20
1 files changed, 0 insertions, 20 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index dc5d8858bc..c45cb18729 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -43,8 +43,6 @@
#include "libmpcodecs/dec_teletext.h"
#include "libmpcodecs/vd_ffmpeg.h"
-#include "ass_mp.h"
-
#ifdef CONFIG_FFMPEG
#include "libavcodec/avcodec.h"
#if MP_INPUT_BUFFER_PADDING_SIZE < FF_INPUT_BUFFER_PADDING_SIZE
@@ -295,10 +293,6 @@ static void free_sh_sub(sh_sub_t *sh)
{
mp_msg(MSGT_DEMUXER, MSGL_DBG2, "DEMUXER: freeing sh_sub at %p\n", sh);
free(sh->extradata);
-#ifdef CONFIG_ASS
- if (sh->ass_track)
- ass_free_track(sh->ass_track);
-#endif
free(sh->lang);
#ifdef CONFIG_FFMPEG
clear_parser((sh_common_t *)sh);
@@ -998,20 +992,6 @@ static struct demuxer *demux_open_stream(struct MPOpts *opts,
sh_video->fps, sh_video->i_bps * 0.008f,
sh_video->i_bps / 1024.0f);
}
-#ifdef CONFIG_ASS
- if (opts->ass_enabled && ass_library) {
- for (int i = 0; i < MAX_S_STREAMS; ++i) {
- sh_sub_t *sh = demuxer->s_streams[i];
- if (sh && sh->type == 'a') {
- sh->ass_track = ass_new_track(ass_library);
- if (sh->ass_track && sh->extradata)
- ass_process_codec_private(sh->ass_track, sh->extradata,
- sh->extradata_len);
- } else if (sh && sh->type != 'v')
- sh->ass_track = ass_default_track(ass_library);
- }
- }
-#endif
return demuxer;
}