73 if (duration == NULL || atof(duration->
value) < 0)
continue;
74 if (atof(duration->
value) > max) max = atof(duration->
value);
81 double min_buffer_time = 1.0;
82 avio_printf(s->
pb,
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
84 avio_printf(s->
pb,
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
85 avio_printf(s->
pb,
" xmlns=\"urn:mpeg:DASH:schema:MPD:2011\"\n");
86 avio_printf(s->
pb,
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011\"\n");
92 avio_printf(s->
pb,
" profiles=\"urn:webm:dash:profile:webm-on-demand:2012\"");
105 if (gold == NULL)
return 0;
109 if (ts == NULL || strncmp(gold->
value, ts->
value, strlen(gold->
value)))
return 0;
119 if (gold_track_num == NULL)
return 0;
124 if (track_num == NULL ||
125 strncmp(gold_track_num->
value, track_num->
value, strlen(gold_track_num->
value)) ||
144 static const char boolean[2][6] = {
"false",
"true" };
145 int subsegmentStartsWithSAP = 1;
170 if (kf == NULL || !strncmp(kf->
value,
"0", 1)) subsegmentStartsWithSAP = 0;
172 avio_printf(s->
pb,
" subsegmentStartsWithSAP=\"%d\"", subsegmentStartsWithSAP);
182 if (irange == NULL || cues_start == NULL || cues_end == NULL || filename == NULL ||
205 if (q == NULL)
return -1;
217 enum { new_set, parsed_id, parsing_streams }
state;
223 else if (
state == new_set && !strncmp(p,
"id=", 3)) {
225 if (w->
as == NULL)
return -1;
230 while (*p !=
',') *q++ = *p++;
234 }
else if (
state == parsed_id && !strncmp(p,
"streams=", 8)) {
236 state = parsing_streams;
237 }
else if (
state == parsing_streams) {
240 while (*q !=
'\0' && *q !=
',' && *q !=
' ') q++;
242 if (as->
streams == NULL)
return -1;
245 if (*q ==
'\0')
break;
246 if (*q ==
' ')
state = new_set;
267 for (i = 0; i < w->
nb_as; i++) {
285 for (i = 0; i < w->
nb_as; i++) {
292 #define OFFSET(x) offsetof(WebMDashMuxContext, x)
294 {
"adaptation_sets",
"Adaptation sets. Syntax: id=0,streams=0,1,2 id=1,streams=3,4 and so on",
OFFSET(adaptation_sets),
AV_OPT_TYPE_STRING, { 0 }, 0, 0,
AV_OPT_FLAG_ENCODING_PARAM },
298 #if CONFIG_WEBM_DASH_MANIFEST_MUXER
299 static const AVClass webm_dash_class = {
307 .
name =
"webm_dash_manifest",
309 .mime_type =
"application/xml",
315 .priv_class = &webm_dash_class,