From: Paul B Mahol <onemda@gmail.com> To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 2/2] avfilter/src_movie: add option to set decoding thread type Date: Wed, 30 Mar 2022 19:43:26 +0200 Message-ID: <20220330174326.68786-2-onemda@gmail.com> (raw) In-Reply-To: <20220330174326.68786-1-onemda@gmail.com> Signed-off-by: Paul B Mahol <onemda@gmail.com> --- doc/filters.texi | 3 +++ libavfilter/src_movie.c | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 1d56d24819..af332041e8 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -28790,6 +28790,9 @@ timestamps. @item dec_threads Specifies the number of threads for decoding +@item dec_thread_type +Specifies the thread type 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 ':'. The following example diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index 78b87cf444..09d107ee8f 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -72,6 +72,7 @@ typedef struct MovieContext { int64_t discontinuity_threshold; int64_t ts_offset; int dec_threads; + int thread_type; int got_eagain; AVFormatContext *format_ctx; @@ -98,6 +99,10 @@ 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 }, + { "dec_thread_type","set the type of threads for decoding", OFFSET(thread_type), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 2, FLAGS, .unit = "thread_type" }, + { "auto", "auto", 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, FLAGS, .unit = "thread_type" }, + { "frame", "more than one frame at once", 0, AV_OPT_TYPE_CONST, {.i64 = 1}, 0, 0, FLAGS, .unit = "thread_type" }, + { "slice", "more than one part of single frame at once", 0, AV_OPT_TYPE_CONST, {.i64 = 2}, 0, 0, FLAGS, .unit = "thread_type" }, { "format_opts", "set format options for the opened file", OFFSET(format_opts), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, FLAGS}, { NULL }, }; @@ -158,7 +163,7 @@ static AVStream *find_stream(void *log, AVFormatContext *avf, const char *spec) return found; } -static int open_stream(AVFilterContext *ctx, MovieStream *st, int dec_threads) +static int open_stream(AVFilterContext *ctx, MovieStream *st, int dec_threads, int thread_type) { const AVCodec *codec; int ret; @@ -180,6 +185,8 @@ static int open_stream(AVFilterContext *ctx, MovieStream *st, int dec_threads) if (!dec_threads) dec_threads = ff_filter_get_nb_threads(ctx); st->codec_ctx->thread_count = dec_threads; + if (thread_type) + st->codec_ctx->thread_type = thread_type; if ((ret = avcodec_open2(st->codec_ctx, codec, NULL)) < 0) { av_log(ctx, AV_LOG_ERROR, "Failed to open codec\n"); @@ -324,7 +331,7 @@ static av_cold int movie_common_init(AVFilterContext *ctx) if (ret < 0) return ret; } - ret = open_stream(ctx, &movie->st[i], movie->dec_threads); + ret = open_stream(ctx, &movie->st[i], movie->dec_threads, movie->thread_type); if (ret < 0) return ret; } -- 2.35.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2022-03-30 17:41 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-03-30 17:43 [FFmpeg-devel] [PATCH 1/2] avfilter/src_movie: switch to activate() Paul B Mahol 2022-03-30 17:43 ` Paul B Mahol [this message] 2022-04-02 10:59 Paul B Mahol 2022-04-02 10:59 ` [FFmpeg-devel] [PATCH 2/2] avfilter/src_movie: add option to set decoding thread type Paul B Mahol 2022-04-02 12:06 [FFmpeg-devel] [PATCH 1/2] avfilter/src_movie: switch to activate() Paul B Mahol 2022-04-02 12:06 ` [FFmpeg-devel] [PATCH 2/2] avfilter/src_movie: add option to set decoding thread type Paul B Mahol 2022-04-05 14:29 ` Andreas Rheinhardt 2022-04-05 15:37 ` Paul B Mahol
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220330174326.68786-2-onemda@gmail.com \ --to=onemda@gmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git