{
int i;
for (i = 0; i < pls->n_segments; i++) {
- av_free(pls->segments[i]->key);
- av_free(pls->segments[i]->url);
- av_free(pls->segments[i]);
+ av_freep(&pls->segments[i]->key);
+ av_freep(&pls->segments[i]->url);
+ av_freep(&pls->segments[i]);
}
av_freep(&pls->segments);
pls->n_segments = 0;
av_dict_free(&pls->id3_initial);
ff_id3v2_free_extra_meta(&pls->id3_deferred_extra);
av_free_packet(&pls->pkt);
- av_free(pls->pb.buffer);
+ av_freep(&pls->pb.buffer);
if (pls->input)
ffurl_close(pls->input);
if (pls->ctx) {
{
int i;
for (i = 0; i < c->n_renditions; i++)
- av_free(c->renditions[i]);
+ av_freep(&c->renditions[i]);
av_freep(&c->renditions);
c->n_renditions = 0;
}
}
}
if (pls)
- pls->last_load_time = av_gettime();
+ pls->last_load_time = av_gettime_relative();
fail:
av_free(new_url);
reload:
if (!v->finished &&
- av_gettime() - v->last_load_time >= reload_interval) {
+ av_gettime_relative() - v->last_load_time >= reload_interval) {
if ((ret = parse_playlist(c, v->url, v, NULL)) < 0) {
av_log(v->parent, AV_LOG_WARNING, "Failed to reload playlist %d\n",
v->index);
if (v->cur_seq_no >= v->start_seq_no + v->n_segments) {
if (v->finished)
return AVERROR_EOF;
- while (av_gettime() - v->last_load_time < reload_interval) {
+ while (av_gettime_relative() - v->last_load_time < reload_interval) {
if (ff_check_interrupt(c->interrupt_callback))
return AVERROR_EXIT;
av_usleep(100*1000);
int seq_no;
if (!pls->finished && !c->first_packet &&
- av_gettime() - pls->last_load_time >= default_reload_interval(pls))
+ av_gettime_relative() - pls->last_load_time >= default_reload_interval(pls))
/* reload the playlist since it was suspended */
parse_playlist(c, pls->url, pls, NULL);
}
pls->ctx->pb = &pls->pb;
pls->stream_offset = stream_offset;
+
+ if ((ret = ff_copy_whitelists(pls->ctx, s)) < 0)
+ goto fail;
+
ret = avformat_open_input(&pls->ctx, pls->segments[0]->url, in_fmt, NULL);
if (ret < 0)
goto fail;