Signed-off-by: Steven Liu <l...@chinaffmpeg.org> --- libavformat/dashdec.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+)
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index eed149cd1a..b6394403b9 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -1161,6 +1161,36 @@ static int parse_manifest_adaptationset(AVFormatContext *s, const char *url, return 0; } +static int parse_programinformation(AVFormatContext *s, xmlNodePtr node) +{ + xmlNodePtr programinfo_node = NULL; + xmlChar *val = NULL; + DASHContext *c = s->priv_data; + + programinfo_node = xmlFirstElementChild(node); + while (programinfo_node) { + if (!av_strcasecmp((const char *)programinfo_node->name, (const char *)"Title")) { + val = xmlNodeGetContent(programinfo_node); + if (val && strlen(val) < 1024) { + av_dict_set(&s->metadata, "Title", val, 0); + } + } else if (!av_strcasecmp((const char *)programinfo_node->name, (const char *)"Source")) { + val = xmlNodeGetContent(programinfo_node); + if (val && strlen(val) < 1024) { + av_dict_set(&s->metadata, "Source", val, 0); + } + } else if (!av_strcasecmp((const char *)programinfo_node->name, (const char *)"Copyright")) { + val = xmlNodeGetContent(programinfo_node); + if (val && strlen(val) < 1024) { + av_dict_set(&s->metadata, "Copyright", val, 0); + } + } + programinfo_node = xmlNextElementSibling(programinfo_node); + xmlFree(val); + } + return 0; +} + static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in) { DASHContext *c = s->priv_data; @@ -1310,6 +1340,8 @@ static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in) if (c->period_start > 0) c->media_presentation_duration = c->period_duration; } + } else if (!av_strcasecmp(node->name, (const char *)"ProgramInformation")) { + parse_programinformation(s, node); } node = xmlNextElementSibling(node); } -- 2.17.2 (Apple Git-113) _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".