mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/dashdec: add ProgramInformation parser
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
This commit is contained in:
parent
df9ef925f9
commit
613ca7b100
|
@ -1161,6 +1161,34 @@ static int parse_manifest_adaptationset(AVFormatContext *s, const char *url,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int parse_programinformation(AVFormatContext *s, xmlNodePtr node)
|
||||
{
|
||||
xmlChar *val = NULL;
|
||||
|
||||
node = xmlFirstElementChild(node);
|
||||
while (node) {
|
||||
if (!av_strcasecmp(node->name, "Title")) {
|
||||
val = xmlNodeGetContent(node);
|
||||
if (val) {
|
||||
av_dict_set(&s->metadata, "Title", val, 0);
|
||||
}
|
||||
} else if (!av_strcasecmp(node->name, "Source")) {
|
||||
val = xmlNodeGetContent(node);
|
||||
if (val) {
|
||||
av_dict_set(&s->metadata, "Source", val, 0);
|
||||
}
|
||||
} else if (!av_strcasecmp(node->name, "Copyright")) {
|
||||
val = xmlNodeGetContent(node);
|
||||
if (val) {
|
||||
av_dict_set(&s->metadata, "Copyright", val, 0);
|
||||
}
|
||||
}
|
||||
node = xmlNextElementSibling(node);
|
||||
xmlFree(val);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in)
|
||||
{
|
||||
DASHContext *c = s->priv_data;
|
||||
|
@ -1310,6 +1338,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, "ProgramInformation")) {
|
||||
parse_programinformation(s, node);
|
||||
}
|
||||
node = xmlNextElementSibling(node);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue