|
|
@ -357,7 +357,7 @@ static int segment_end(AVFormatContext *s, int write_trailer, int is_last) |
|
|
|
av_freep(&entry); |
|
|
|
av_freep(&entry); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
avio_close(seg->list_pb); |
|
|
|
avio_closep(&seg->list_pb); |
|
|
|
if ((ret = segment_list_open(s)) < 0) |
|
|
|
if ((ret = segment_list_open(s)) < 0) |
|
|
|
goto end; |
|
|
|
goto end; |
|
|
|
for (entry = seg->segment_list_entries; entry; entry = entry->next) |
|
|
|
for (entry = seg->segment_list_entries; entry; entry = entry->next) |
|
|
@ -375,7 +375,7 @@ static int segment_end(AVFormatContext *s, int write_trailer, int is_last) |
|
|
|
seg->segment_count++; |
|
|
|
seg->segment_count++; |
|
|
|
|
|
|
|
|
|
|
|
end: |
|
|
|
end: |
|
|
|
avio_close(oc->pb); |
|
|
|
avio_closep(&oc->pb); |
|
|
|
|
|
|
|
|
|
|
|
return ret; |
|
|
|
return ret; |
|
|
|
} |
|
|
|
} |
|
|
@ -688,7 +688,7 @@ static int seg_write_header(AVFormatContext *s) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (ret < 0) { |
|
|
|
if (ret < 0) { |
|
|
|
avio_close(oc->pb); |
|
|
|
avio_closep(&oc->pb); |
|
|
|
goto fail; |
|
|
|
goto fail; |
|
|
|
} |
|
|
|
} |
|
|
|
seg->segment_frame_count = 0; |
|
|
|
seg->segment_frame_count = 0; |
|
|
@ -849,7 +849,7 @@ static int seg_write_trailer(struct AVFormatContext *s) |
|
|
|
} |
|
|
|
} |
|
|
|
fail: |
|
|
|
fail: |
|
|
|
if (seg->list) |
|
|
|
if (seg->list) |
|
|
|
avio_close(seg->list_pb); |
|
|
|
avio_closep(&seg->list_pb); |
|
|
|
|
|
|
|
|
|
|
|
av_dict_free(&seg->format_options); |
|
|
|
av_dict_free(&seg->format_options); |
|
|
|
av_opt_free(seg); |
|
|
|
av_opt_free(seg); |
|
|
@ -865,6 +865,7 @@ fail: |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
avformat_free_context(oc); |
|
|
|
avformat_free_context(oc); |
|
|
|
|
|
|
|
seg->avf = NULL; |
|
|
|
return ret; |
|
|
|
return ret; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|