Commit c7ad1f56 authored by Gilles Chanteperdrix's avatar Gilles Chanteperdrix Committed by Michael Niedermayer

avformat/rtsp: parse lang attribute in SDP

Reviewed-by: 's avatarThomas Volkert <silvo@gmx.net>
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent af940e6c
...@@ -477,6 +477,8 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, ...@@ -477,6 +477,8 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
handler->init(s, st->index, handler->init(s, st->index,
rtsp_st->dynamic_protocol_context); 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 */ /* put a default control url */
av_strlcpy(rtsp_st->control_url, rt->control_uri, av_strlcpy(rtsp_st->control_url, rt->control_uri,
...@@ -540,6 +542,16 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, ...@@ -540,6 +542,16 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
/* AV_NOPTS_VALUE means live broadcast (and can't seek) */ /* AV_NOPTS_VALUE means live broadcast (and can't seek) */
s->duration = (end == AV_NOPTS_VALUE) ? s->duration = (end == AV_NOPTS_VALUE) ?
AV_NOPTS_VALUE : end - start; 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)) { } else if (av_strstart(p, "IsRealDataType:integer;",&p)) {
if (atoi(p) == 1) if (atoi(p) == 1)
rt->transport = RTSP_TRANSPORT_RDT; rt->transport = RTSP_TRANSPORT_RDT;
......
...@@ -405,6 +405,8 @@ typedef struct RTSPState { ...@@ -405,6 +405,8 @@ typedef struct RTSPState {
* User-Agent string * User-Agent string
*/ */
char *user_agent; char *user_agent;
char default_lang[4];
} RTSPState; } RTSPState;
#define RTSP_FLAG_FILTER_SRC 0x1 /**< Filter incoming UDP packets - #define RTSP_FLAG_FILTER_SRC 0x1 /**< Filter incoming UDP packets -
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment