summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2019-12-25 00:48:00 +0100
committerMarton Balint <cus@passwd.hu>2020-01-01 20:41:34 +0100
commit7c3125133f79db26e76c3888dba2ee78170483e4 (patch)
treea8a1ab66da59e8420f7ca138a51971254781b285 /libavformat
parent5d35a6e8e21757dc0b6e77269f186a881538607f (diff)
avformat/segment: use AV_OPT_TYPE_DICT for segment_format_options
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/segment.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/libavformat/segment.c b/libavformat/segment.c
index e3082063d8..bf9e706c1c 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -75,7 +75,6 @@ typedef struct SegmentContext {
ff_const59 AVOutputFormat *oformat;
AVFormatContext *avf;
char *format; ///< format to use for output segment files
- char *format_options_str; ///< format options to use for output segment files
AVDictionary *format_options;
char *list; ///< filename for the segment list file
int list_flags; ///< flags affecting list generation
@@ -720,15 +719,6 @@ static int seg_init(AVFormatContext *s)
}
}
- if (seg->format_options_str) {
- ret = av_dict_parse_string(&seg->format_options, seg->format_options_str, "=", ":", 0);
- if (ret < 0) {
- av_log(s, AV_LOG_ERROR, "Could not parse format options list '%s'\n",
- seg->format_options_str);
- return ret;
- }
- }
-
if (seg->list) {
if (seg->list_type == LIST_TYPE_UNDEFINED) {
if (av_match_ext(seg->list, "csv" )) seg->list_type = LIST_TYPE_CSV;
@@ -791,7 +781,7 @@ static int seg_init(AVFormatContext *s)
ret = avformat_init_output(oc, &options);
if (av_dict_count(options)) {
av_log(s, AV_LOG_ERROR,
- "Some of the provided format options in '%s' are not recognized\n", seg->format_options_str);
+ "Some of the provided format options are not recognized\n");
av_dict_free(&options);
return AVERROR(EINVAL);
}
@@ -1017,7 +1007,6 @@ fail:
if (seg->list)
ff_format_io_close(s, &seg->list_pb);
- av_dict_free(&seg->format_options);
av_opt_free(seg);
av_freep(&seg->times);
av_freep(&seg->frames);
@@ -1060,7 +1049,7 @@ static int seg_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt)
static const AVOption options[] = {
{ "reference_stream", "set reference stream", OFFSET(reference_stream_specifier), AV_OPT_TYPE_STRING, {.str = "auto"}, CHAR_MIN, CHAR_MAX, E },
{ "segment_format", "set container format used for the segments", OFFSET(format), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E },
- { "segment_format_options", "set list of options for the container format used for the segments", OFFSET(format_options_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E },
+ { "segment_format_options", "set list of options for the container format used for the segments", OFFSET(format_options), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, E },
{ "segment_list", "set the segment list filename", OFFSET(list), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E },
{ "segment_header_filename", "write a single file containing the header", OFFSET(header_filename), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E },