From 0e825956328d785c07bb0799c7be7613a39f2ca3 Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 21 Aug 2010 16:04:18 +0000 Subject: demux_lavf: print subtitle type in more cases git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32006 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 5 ++++- libmpdemux/demuxer.c | 15 +++++++++++++++ libmpdemux/stheader.h | 2 ++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index cecf5589de..136e2a8ef6 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -469,7 +469,10 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { } if (stream_type) { AVCodec *avc = avcodec_find_decoder(codec->codec_id); - mp_msg(MSGT_DEMUX, MSGL_INFO, "[lavf] stream %d: %s (%s), -%cid %d", i, stream_type, avc ? avc->name : "unknown", *stream_type, stream_id); + const char *codec_name = avc ? avc->name : "unknown"; + if (!avc && *stream_type == 's' && demuxer->s_streams[stream_id]) + codec_name = sh_sub_type2str(((sh_sub_t *)demuxer->s_streams[stream_id])->type); + mp_msg(MSGT_DEMUX, MSGL_INFO, "[lavf] stream %d: %s (%s), -%cid %d", i, stream_type, codec_name, *stream_type, stream_id); if (lang && lang->value && *stream_type != 'v') mp_msg(MSGT_DEMUX, MSGL_INFO, ", -%clang %s", *stream_type, lang->value); if (title && title->value) diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index fb4ea3cd76..d4ea089725 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -247,6 +247,21 @@ demuxer_t *new_demuxer(struct MPOpts *opts, stream_t *stream, int type, return d; } +const char *sh_sub_type2str(int type) +{ + switch (type) { + case 't': return "text"; + case 'm': return "movtext"; + case 'a': return "ass"; + case 'v': return "vobsub"; + case 'x': return "xsub"; + case 'b': return "dvb"; + case 'd': return "dvb-teletext"; + case 'p': return "hdmv pgs"; + } + return "unknown"; +} + sh_sub_t *new_sh_sub_sid(demuxer_t *demuxer, int id, int sid) { if (id > MAX_S_STREAMS - 1 || id < 0) { diff --git a/libmpdemux/stheader.h b/libmpdemux/stheader.h index f59741a92a..35409188d5 100644 --- a/libmpdemux/stheader.h +++ b/libmpdemux/stheader.h @@ -151,6 +151,8 @@ struct sh_sub *new_sh_sub_sid_lang(struct demuxer *demuxer, int id, int sid, void free_sh_audio(struct demuxer *demuxer, int id); void free_sh_video(sh_video_t *sh); +const char *sh_sub_type2str(int type); + // video.c: int video_read_properties(sh_video_t *sh_video); int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char** start,int force_fps); -- cgit v1.2.3