ffmpeg | branch: master | Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> | Sun Feb 8 22:22:45 2015 +0100| [c7ad1f562b0fe46b77a8a9987a0d3512fc8197ea] | committer: Michael Niedermayer
avformat/rtsp: parse lang attribute in SDP Reviewed-by: Thomas Volkert <si...@gmx.net> Signed-off-by: Michael Niedermayer <michae...@gmx.at> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c7ad1f562b0fe46b77a8a9987a0d3512fc8197ea --- libavformat/rtsp.c | 12 ++++++++++++ libavformat/rtsp.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 23cf07c..2197671 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -477,6 +477,8 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, handler->init(s, st->index, rtsp_st->dynamic_protocol_context); } + if (rt->default_lang[0]) + av_dict_set(&st->metadata, "language", rt->default_lang, 0); } /* put a default control url */ av_strlcpy(rtsp_st->control_url, rt->control_uri, @@ -540,6 +542,16 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, /* AV_NOPTS_VALUE means live broadcast (and can't seek) */ s->duration = (end == AV_NOPTS_VALUE) ? AV_NOPTS_VALUE : end - start; + } else if (av_strstart(p, "lang:", &p)) { + if (s->nb_streams > 0) { + get_word(buf1, sizeof(buf1), &p); + rtsp_st = rt->rtsp_streams[rt->nb_rtsp_streams - 1]; + if (rtsp_st->stream_index >= 0) { + st = s->streams[rtsp_st->stream_index]; + av_dict_set(&st->metadata, "language", buf1, 0); + } + } else + get_word(rt->default_lang, sizeof(rt->default_lang), &p); } else if (av_strstart(p, "IsRealDataType:integer;",&p)) { if (atoi(p) == 1) rt->transport = RTSP_TRANSPORT_RDT; diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h index a9f2f1e..3cfcfb6 100644 --- a/libavformat/rtsp.h +++ b/libavformat/rtsp.h @@ -405,6 +405,8 @@ typedef struct RTSPState { * User-Agent string */ char *user_agent; + + char default_lang[4]; } RTSPState; #define RTSP_FLAG_FILTER_SRC 0x1 /**< Filter incoming UDP packets - _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog