avformat/fifo: use AV_OPT_TYPE_DICT for format_opts

Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2019-12-25 02:13:22 +01:00
parent 59172164f3
commit f20bdbff6d

View File

@ -36,7 +36,6 @@ typedef struct FifoContext {
AVFormatContext *avf;
char *format;
char *format_options_str;
AVDictionary *format_options;
int queue_size;
@ -490,16 +489,6 @@ static int fifo_init(AVFormatContext *avf)
return AVERROR(EINVAL);
}
if (fifo->format_options_str) {
ret = av_dict_parse_string(&fifo->format_options, fifo->format_options_str,
"=", ":", 0);
if (ret < 0) {
av_log(avf, AV_LOG_ERROR, "Could not parse format options list '%s'\n",
fifo->format_options_str);
return ret;
}
}
oformat = av_guess_format(fifo->format, avf->url, NULL);
if (!oformat) {
ret = AVERROR_MUXER_NOT_FOUND;
@ -604,7 +593,6 @@ static void fifo_deinit(AVFormatContext *avf)
{
FifoContext *fifo = avf->priv_data;
av_dict_free(&fifo->format_options);
avformat_free_context(fifo->avf);
av_thread_message_queue_free(&fifo->queue);
if (fifo->overflow_flag_lock_initialized)
@ -619,8 +607,8 @@ static const AVOption options[] = {
{"queue_size", "Size of fifo queue", OFFSET(queue_size),
AV_OPT_TYPE_INT, {.i64 = FIFO_DEFAULT_QUEUE_SIZE}, 1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{"format_opts", "Options to be passed to underlying muxer", OFFSET(format_options_str),
AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
{"format_opts", "Options to be passed to underlying muxer", OFFSET(format_options),
AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
{"drop_pkts_on_overflow", "Drop packets on fifo queue overflow not to block encoder", OFFSET(drop_pkts_on_overflow),
AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},