avformat/hlsenc: replace with av_freep for all av_free

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
pull/323/head
Limin Wang 5 years ago committed by Steven Liu
parent 28bb73cee7
commit afab93ccd0
  1. 64
      libavformat/hlsenc.c

@ -590,7 +590,7 @@ static int hls_delete_old_segments(AVFormatContext *s, HLSContext *hls,
if ((ret = vs->vtt_avf->io_open(vs->vtt_avf, &out, sub_path, AVIO_FLAG_WRITE, &options)) < 0) { if ((ret = vs->vtt_avf->io_open(vs->vtt_avf, &out, sub_path, AVIO_FLAG_WRITE, &options)) < 0) {
if (hls->ignore_io_errors) if (hls->ignore_io_errors)
ret = 0; ret = 0;
av_free(sub_path); av_freep(&sub_path);
goto fail; goto fail;
} }
ff_format_io_close(vs->vtt_avf, &out); ff_format_io_close(vs->vtt_avf, &out);
@ -598,18 +598,18 @@ static int hls_delete_old_segments(AVFormatContext *s, HLSContext *hls,
av_log(hls, AV_LOG_ERROR, "failed to delete old segment %s: %s\n", av_log(hls, AV_LOG_ERROR, "failed to delete old segment %s: %s\n",
sub_path, strerror(errno)); sub_path, strerror(errno));
} }
av_free(sub_path); av_freep(&sub_path);
} }
av_freep(&path); av_freep(&path);
previous_segment = segment; previous_segment = segment;
segment = previous_segment->next; segment = previous_segment->next;
av_free(previous_segment); av_freep(&previous_segment);
} }
fail: fail:
av_free(path); av_freep(&path);
av_free(dirname); av_freep(&dirname);
av_free(vtt_dirname); av_freep(&vtt_dirname);
return ret; return ret;
} }
@ -887,7 +887,7 @@ static int sls_flags_filename_process(struct AVFormatContext *s, HLSContext *hls
strlen(vs->current_segment_final_filename_fmt)) { strlen(vs->current_segment_final_filename_fmt)) {
char * new_url = av_strdup(vs->current_segment_final_filename_fmt); char * new_url = av_strdup(vs->current_segment_final_filename_fmt);
if (!new_url) { if (!new_url) {
av_free(en); av_freep(&en);
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
} }
ff_format_set_url(vs->avf, new_url); ff_format_set_url(vs->avf, new_url);
@ -898,8 +898,8 @@ static int sls_flags_filename_process(struct AVFormatContext *s, HLSContext *hls
"Invalid second level segment filename template '%s', " "Invalid second level segment filename template '%s', "
"you can try to remove second_level_segment_size flag\n", "you can try to remove second_level_segment_size flag\n",
vs->avf->url); vs->avf->url);
av_free(filename); av_freep(&filename);
av_free(en); av_freep(&en);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
ff_format_set_url(vs->avf, filename); ff_format_set_url(vs->avf, filename);
@ -912,8 +912,8 @@ static int sls_flags_filename_process(struct AVFormatContext *s, HLSContext *hls
"Invalid second level segment filename template '%s', " "Invalid second level segment filename template '%s', "
"you can try to remove second_level_segment_time flag\n", "you can try to remove second_level_segment_time flag\n",
vs->avf->url); vs->avf->url);
av_free(filename); av_freep(&filename);
av_free(en); av_freep(&en);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
ff_format_set_url(vs->avf, filename); ff_format_set_url(vs->avf, filename);
@ -985,7 +985,7 @@ static int sls_flag_use_localtime_filename(AVFormatContext *oc, HLSContext *c, V
av_log(c, AV_LOG_ERROR, "Invalid second level segment filename template '%s', " av_log(c, AV_LOG_ERROR, "Invalid second level segment filename template '%s', "
"you can try to remove second_level_segment_index flag\n", "you can try to remove second_level_segment_index flag\n",
oc->url); oc->url);
av_free(filename); av_freep(&filename);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
ff_format_set_url(oc, filename); ff_format_set_url(oc, filename);
@ -999,7 +999,7 @@ static int sls_flag_use_localtime_filename(AVFormatContext *oc, HLSContext *c, V
av_log(c, AV_LOG_ERROR, "Invalid second level segment filename template '%s', " av_log(c, AV_LOG_ERROR, "Invalid second level segment filename template '%s', "
"you can try to remove second_level_segment_size flag\n", "you can try to remove second_level_segment_size flag\n",
oc->url); oc->url);
av_free(filename); av_freep(&filename);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
ff_format_set_url(oc, filename); ff_format_set_url(oc, filename);
@ -1010,7 +1010,7 @@ static int sls_flag_use_localtime_filename(AVFormatContext *oc, HLSContext *c, V
av_log(c, AV_LOG_ERROR, "Invalid second level segment filename template '%s', " av_log(c, AV_LOG_ERROR, "Invalid second level segment filename template '%s', "
"you can try to remove second_level_segment_time flag\n", "you can try to remove second_level_segment_time flag\n",
oc->url); oc->url);
av_free(filename); av_freep(&filename);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
ff_format_set_url(oc, filename); ff_format_set_url(oc, filename);
@ -1098,7 +1098,7 @@ static int hls_append_segment(struct AVFormatContext *s, HLSContext *hls,
if ((ret = hls_delete_old_segments(s, hls, vs)) < 0) if ((ret = hls_delete_old_segments(s, hls, vs)) < 0)
return ret; return ret;
} else } else
av_free(en); av_freep(&en);
} else } else
vs->nb_entries++; vs->nb_entries++;
@ -1207,7 +1207,7 @@ static void hls_free_segments(HLSSegment *p)
while (p) { while (p) {
en = p; en = p;
p = p->next; p = p->next;
av_free(en); av_freep(&en);
} }
} }
@ -1574,7 +1574,7 @@ static int hls_start(AVFormatContext *s, VariantStream *vs)
#else #else
vs->basename, 'd', vs->sequence) < 1) { vs->basename, 'd', vs->sequence) < 1) {
#endif #endif
av_free(filename); av_freep(&filename);
av_log(oc, AV_LOG_ERROR, "Invalid segment filename template '%s', you can try to use -strftime 1 with it\n", vs->basename); av_log(oc, AV_LOG_ERROR, "Invalid segment filename template '%s', you can try to use -strftime 1 with it\n", vs->basename);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
@ -1619,7 +1619,7 @@ static int hls_start(AVFormatContext *s, VariantStream *vs)
#else #else
vs->basename, 'd', vs->sequence) < 1) { vs->basename, 'd', vs->sequence) < 1) {
#endif #endif
av_free(filename); av_freep(&filename);
av_log(oc, AV_LOG_ERROR, "Invalid segment filename template '%s' you can try to use -strftime 1 with it\n", vs->basename); av_log(oc, AV_LOG_ERROR, "Invalid segment filename template '%s' you can try to use -strftime 1 with it\n", vs->basename);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
@ -1633,7 +1633,7 @@ static int hls_start(AVFormatContext *s, VariantStream *vs)
#else #else
vs->vtt_basename, 'd', vs->sequence) < 1) { vs->vtt_basename, 'd', vs->sequence) < 1) {
#endif #endif
av_free(filename); av_freep(&filename);
av_log(vtt_oc, AV_LOG_ERROR, "Invalid segment filename template '%s'\n", vs->vtt_basename); av_log(vtt_oc, AV_LOG_ERROR, "Invalid segment filename template '%s'\n", vs->vtt_basename);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
@ -2101,7 +2101,7 @@ static int update_variant_stream_info(AVFormatContext *s)
hls->var_streams[0].streams = av_mallocz(sizeof(AVStream *) * hls->var_streams[0].streams = av_mallocz(sizeof(AVStream *) *
hls->var_streams[0].nb_streams); hls->var_streams[0].nb_streams);
if (!hls->var_streams[0].streams) { if (!hls->var_streams[0].streams) {
av_free(hls->var_streams); av_freep(&hls->var_streams);
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
} }
@ -2109,7 +2109,7 @@ static int update_variant_stream_info(AVFormatContext *s)
if (hls->nb_ccstreams) { if (hls->nb_ccstreams) {
hls->var_streams[0].ccgroup = av_strdup(hls->cc_streams[0].ccgroup); hls->var_streams[0].ccgroup = av_strdup(hls->cc_streams[0].ccgroup);
if (!hls->var_streams[0].ccgroup) { if (!hls->var_streams[0].ccgroup) {
av_free(hls->var_streams); av_freep(&hls->var_streams);
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
} }
} }
@ -2306,7 +2306,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
if (!vs->init_range_length) { if (!vs->init_range_length) {
range_length = avio_close_dyn_buf(oc->pb, &buffer); range_length = avio_close_dyn_buf(oc->pb, &buffer);
avio_write(vs->out, buffer, range_length); avio_write(vs->out, buffer, range_length);
av_free(buffer); av_freep(&buffer);
vs->init_range_length = range_length; vs->init_range_length = range_length;
avio_open_dyn_buf(&oc->pb); avio_open_dyn_buf(&oc->pb);
vs->packets_written = 0; vs->packets_written = 0;
@ -2375,8 +2375,8 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
reflush_dynbuf(vs, &range_length); reflush_dynbuf(vs, &range_length);
ret = hlsenc_io_close(s, &vs->out, filename); ret = hlsenc_io_close(s, &vs->out, filename);
} }
av_free(vs->temp_buffer); av_freep(&vs->temp_buffer);
av_free(filename); av_freep(&filename);
} }
} }
@ -2394,7 +2394,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
vs->end_pts = pkt->pts; vs->end_pts = pkt->pts;
vs->duration = 0; vs->duration = 0;
if (ret < 0) { if (ret < 0) {
av_free(old_filename); av_freep(&old_filename);
return ret; return ret;
} }
} }
@ -2406,7 +2406,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
ff_format_io_close(s, &vs->out); ff_format_io_close(s, &vs->out);
vs->out = NULL; vs->out = NULL;
if ((ret = hls_window(s, 0, vs)) < 0) { if ((ret = hls_window(s, 0, vs)) < 0) {
av_free(old_filename); av_freep(&old_filename);
return ret; return ret;
} }
} }
@ -2432,7 +2432,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
sls_flag_file_rename(hls, vs, old_filename); sls_flag_file_rename(hls, vs, old_filename);
ret = hls_start(s, vs); ret = hls_start(s, vs);
} }
av_free(old_filename); av_freep(&old_filename);
if (ret < 0) { if (ret < 0) {
return ret; return ret;
@ -2519,7 +2519,7 @@ static int hls_write_trailer(struct AVFormatContext *s)
filename = av_asprintf("%s", oc->url); filename = av_asprintf("%s", oc->url);
} }
if (!filename) { if (!filename) {
av_free(old_filename); av_freep(&old_filename);
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
} }
@ -2532,7 +2532,7 @@ static int hls_write_trailer(struct AVFormatContext *s)
range_length = avio_close_dyn_buf(oc->pb, &buffer); range_length = avio_close_dyn_buf(oc->pb, &buffer);
avio_write(vs->out, buffer, range_length); avio_write(vs->out, buffer, range_length);
av_free(buffer); av_freep(&buffer);
vs->init_range_length = range_length; vs->init_range_length = range_length;
avio_open_dyn_buf(&oc->pb); avio_open_dyn_buf(&oc->pb);
vs->packets_written = 0; vs->packets_written = 0;
@ -2574,10 +2574,10 @@ static int hls_write_trailer(struct AVFormatContext *s)
if (ret < 0) if (ret < 0)
av_log(s, AV_LOG_WARNING, "Failed to upload file '%s' at the end.\n", oc->url); av_log(s, AV_LOG_WARNING, "Failed to upload file '%s' at the end.\n", oc->url);
} }
av_free(vs->temp_buffer); av_freep(&vs->temp_buffer);
failed: failed:
av_free(filename); av_freep(&filename);
av_write_trailer(oc); av_write_trailer(oc);
if (oc->url[0]) { if (oc->url[0]) {
proto = avio_find_protocol_name(oc->url); proto = avio_find_protocol_name(oc->url);
@ -2587,7 +2587,7 @@ failed:
// rename that segment from .tmp to the real one // rename that segment from .tmp to the real one
if (use_temp_file && !(hls->flags & HLS_SINGLE_FILE)) { if (use_temp_file && !(hls->flags & HLS_SINGLE_FILE)) {
hls_rename_temp_file(s, oc); hls_rename_temp_file(s, oc);
av_free(old_filename); av_freep(&old_filename);
old_filename = av_strdup(oc->url); old_filename = av_strdup(oc->url);
if (!old_filename) { if (!old_filename) {

Loading…
Cancel
Save