- avio_printf(s->pb, ">\n");
- avio_printf(s->pb, "<BaseURL>%s</BaseURL>\n", filename->value);
- avio_printf(s->pb, "<SegmentBase\n");
- avio_printf(s->pb, " indexRange=\"%s-%s\">\n", cues_start->value, cues_end->value);
- avio_printf(s->pb, "<Initialization\n");
- avio_printf(s->pb, " range=\"0-%s\" />\n", irange->value);
- avio_printf(s->pb, "</SegmentBase>\n");
+ AVDictionaryEntry *irange = av_dict_get(st->metadata, INITIALIZATION_RANGE, NULL, 0);
+ AVDictionaryEntry *cues_start = av_dict_get(st->metadata, CUES_START, NULL, 0);
+ AVDictionaryEntry *cues_end = av_dict_get(st->metadata, CUES_END, NULL, 0);
+ AVDictionaryEntry *filename = av_dict_get(st->metadata, FILENAME, NULL, 0);
+ if (!irange || !cues_start || !cues_end || !filename)
+ return AVERROR(EINVAL);
+
+ avio_printf(pb, ">\n");
+ avio_printf(pb, "<BaseURL>%s</BaseURL>\n", filename->value);
+ avio_printf(pb, "<SegmentBase\n");
+ avio_printf(pb, " indexRange=\"%s-%s\">\n", cues_start->value, cues_end->value);
+ avio_printf(pb, "<Initialization\n");
+ avio_printf(pb, " range=\"0-%s\" />\n", irange->value);
+ avio_printf(pb, "</SegmentBase>\n");