From patchwork Fri Nov 26 09:38:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 31747 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp1966391iob; Fri, 26 Nov 2021 01:38:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJxOoA1+kLid+XYiJ/PTQtfiuLSjOXfEekLKowo1z3bK1DT/gJbiZbt/6LpeD1JnevWYBBSK X-Received: by 2002:a17:907:68e:: with SMTP id wn14mr37954058ejb.258.1637919534572; Fri, 26 Nov 2021 01:38:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637919534; cv=none; d=google.com; s=arc-20160816; b=GOwfBXd7PCufp8cyjciod0ZJZbzZP7A2oEa5jPY0iL5X0lSt9mln07nAQwrxeaygqX Ic13Np35iLnme8vWuOAAszgk0JdWMZZFVR2RYyFxmo4ANQ4nCKpOpXLsNnCGr+eBHrV5 sEMb/70GVf2jdrtcilmLOiBEphsV4ZEHNjS/4eFcOeIduHJY6xxS0ZsbOv9Ntr11Mz5L fyMhirDHq5qijpxrtS6mOxlH7sbJg4aqSs9xfZA4qXEPbtpSIYz8t6RH0g5D8T1OgmUf AjJ9yyZ8m0Wm64W2m8JkaY/hsXHdhfJPQcSS/wp1mqzQFE39MfPOROac1nSocXFMm4L5 0kLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=Orqy91ACYqrWVJhllq1DEjFvv4u7/sGsmOTOYVQnCZU=; b=JMJZON03ykXpuyBeDP9mkTQc1BnWJpv5Fu2tqpe9LAuu0MsUujxTD935lfqlqqyEmz 9p4OJdaqDkYnjoy8nErCN+6LNwWp2+wGhxNjpxKeKPCQvjhagIBE+uUo+tRoHdBBFQn1 fuOx3/n+29OVEUGKTNFFlNfMhHThPG4rXDFqn+slFF4bh+z7MZnQOj+GfCHTX8QHGkQk TQCoQ1N2kl1h6diPsbcjOcDvQ2JW3iQdWUviFOOagMm6s6rvCP+FPKG1CC9jqupxcrBW EePfxfSsuvedO/eAnOsGgeJzY/AgkkcQG637b/tkMikzteC3MucfnR2uFOcIjcTW9YlM HOhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=kW39F2lL; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a3si9439264edv.89.2021.11.26.01.38.53; Fri, 26 Nov 2021 01:38:54 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=kW39F2lL; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E013C68A841; Fri, 26 Nov 2021 11:38:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D7C4E68A6B0 for ; Fri, 26 Nov 2021 11:38:44 +0200 (EET) Received: by mail-pl1-f175.google.com with SMTP id u11so6340396plf.3 for ; Fri, 26 Nov 2021 01:38:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=CRyqqmbmg1Ki34Lw6lmHyPh6GIM9lUKNBve8WK4RFzY=; b=kW39F2lLmG0W3Tywj8ol0CQT7zI+9GkCGDixUptK36l5RysRwY1fYfcvFfE2rrcc8Z hZ/33bXirIrTdzDfHyIM2GlDkcRcXR0c++YVtZmNMiGkpK5uoldbqNzMvLJiOJY+tZ9B isywPTlHUjEfLwqNVU7sGc5O0ZMi/p+OYzK9/PqBtORJzZ39FrPja5NWTh8JsCwzBjQg 1ZBcEWLZmrG+jHo2zycYZyePmyiBgR/oAks3qOBTJ/Iqitw0WXGeBOnh+JmZ8NdrpHxU MwFb2qlSWvSu8t1XdDvTRrYdZjszzhTAlLnW6LJdv6BmJtrLEYVfIgdzGrL1Kb8GuUDL 252w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=CRyqqmbmg1Ki34Lw6lmHyPh6GIM9lUKNBve8WK4RFzY=; b=RlktXaioFkNWRywgt9sQEbBVkGU3fJyt4/O0vPhstCRuYkbvWmXTmqJbBxOtjCX2o1 6EqcHD3PjDP8sa6AdJ9kpsgznSv7tH8Cvbro2LF6syPs+nYGyduOrNoiSUajtKDuEAvC qCKHsOoHHDOEviuZc2hhN23Nn37AZli1hQBiuA178t7J+iIVMOmBK6cIdpPWg7mxJUj7 ivQmGWZKkW0jxVAWtOvb4xN0YKLdbt7/lh7jDLiv2LUnog7x06VKmYYroPlwvXcrhR1D GAxWvw16OQr+b47hdc+7DznkGHZTRXTvFEmUhokOeKiNDc3CuoXPb+QrbFgdWvc8zHoV pFBw== X-Gm-Message-State: AOAM5310/6Wmc+rjcnF7vcIZK4VxS3OYAmY2sYFzvfbwxDTbjq7PR6y4 P6+SHhXQtLT84Vw2VcljKhgimRWjt/k= X-Received: by 2002:a17:90b:4a83:: with SMTP id lp3mr14669622pjb.34.1637919523042; Fri, 26 Nov 2021 01:38:43 -0800 (PST) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id x37sm6368615pfh.116.2021.11.26.01.38.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 26 Nov 2021 01:38:42 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 26 Nov 2021 17:38:39 +0800 Message-Id: <1637919519-16335-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1637592434-16132-1-git-send-email-lance.lmwang@gmail.com> References: <1637592434-16132-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2] avfilter/src_movie: add format_opts for the opened file X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: cxVMvDmgXI3f From: Limin Wang Signed-off-by: Limin Wang --- doc/filters.texi | 5 +++++ libavfilter/src_movie.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/filters.texi b/doc/filters.texi index 3731a14..f2d5957 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -28395,6 +28395,11 @@ timestamps. @item dec_threads Specifies the number of threads for decoding + +@item format_opts +Specify format options for the opened file. Format options can be specified +as a list of @var{key}=@var{value} pairs separated by ':'. For example, +some protocol you need to add protocol_whitelist for the opened file. @end table It allows overlaying a second video on top of the main input of diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index 220a43c..b89a680 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -74,6 +74,7 @@ typedef struct MovieContext { int max_stream_index; /**< max stream # actually used for output */ MovieStream *st; /**< array of all streams, one per output */ int *out_index; /**< stream number -> output number map, or -1 */ + AVDictionary *format_opts; } MovieContext; #define OFFSET(x) offsetof(MovieContext, x) @@ -92,6 +93,7 @@ static const AVOption movie_options[]= { { "loop", "set loop count", OFFSET(loop_count), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, FLAGS }, { "discontinuity", "set discontinuity threshold", OFFSET(discontinuity_threshold), AV_OPT_TYPE_DURATION, {.i64 = 0}, 0, INT64_MAX, FLAGS }, { "dec_threads", "set the number of threads for decoding", OFFSET(dec_threads), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS }, + { "format_opts", "set format options for the opened file", OFFSET(format_opts), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, FLAGS}, { NULL }, }; @@ -243,7 +245,7 @@ static av_cold int movie_common_init(AVFilterContext *ctx) iformat = movie->format_name ? av_find_input_format(movie->format_name) : NULL; movie->format_ctx = NULL; - if ((ret = avformat_open_input(&movie->format_ctx, movie->file_name, iformat, NULL)) < 0) { + if ((ret = avformat_open_input(&movie->format_ctx, movie->file_name, iformat, &movie->format_opts)) < 0) { av_log(ctx, AV_LOG_ERROR, "Failed to avformat_open_input '%s'\n", movie->file_name); return ret;