char line[MAX_URL_SIZE];
const char *ptr;
int close_in = 0;
+ uint8_t *new_url = NULL;
if (!in) {
AVDictionary *opts = NULL;
return ret;
}
+ if (av_opt_get(in, "location", AV_OPT_SEARCH_CHILDREN, &new_url) >= 0)
+ url = new_url;
+
read_chomp_line(in, line, sizeof(line));
if (strcmp(line, "#EXTM3U")) {
ret = AVERROR_INVALIDDATA;
var->last_load_time = av_gettime();
fail:
+ av_free(new_url);
if (close_in)
avio_close(in);
return ret;
/* Check if this stream still is on an earlier segment number, or
* has the packet with the lowest dts */
if (var->pkt.data) {
- struct variant *minvar = c->variants[minvariant];
+ struct variant *minvar = minvariant < 0 ?
+ NULL : c->variants[minvariant];
if (minvariant < 0 || var->cur_seq_no < minvar->cur_seq_no) {
minvariant = i;
} else if (var->cur_seq_no == minvar->cur_seq_no) {