summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-08-21 16:04:18 +0000
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-11-02 04:15:49 +0200
commit0e825956328d785c07bb0799c7be7613a39f2ca3 (patch)
treea29216a64d44681ad0f5be7b486eb21c04cbbde2
parentef7ae1b8e8ac2255e70c80cbfff906d45e956761 (diff)
downloadmpv-0e825956328d785c07bb0799c7be7613a39f2ca3.tar.bz2
mpv-0e825956328d785c07bb0799c7be7613a39f2ca3.tar.xz
demux_lavf: print subtitle type in more cases
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32006 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libmpdemux/demux_lavf.c5
-rw-r--r--libmpdemux/demuxer.c15
-rw-r--r--libmpdemux/stheader.h2
3 files changed, 21 insertions, 1 deletions
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);