From: Lynne <dev@lynne.ee>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 01/14] vvcdec: add thread executor
Date: Sun, 21 May 2023 17:06:54 +0200 (CEST)
Message-ID: <NVyqLGs--3-9@lynne.ee> (raw)
In-Reply-To: <CAFXK13eb+mfxShnbPcT8ifmFREdEn0QPV=K+88gCBjycYRNyEA@mail.gmail.com>
May 21, 2023, 17:06 by nuomi2021@gmail.com:
> On Sun, May 21, 2023 at 10:11 PM Lynne <dev@lynne.ee> wrote:
>
>> May 21, 2023, 15:03 by nuomi2021@gmail.com:
>>
>> > The executor design pattern was inroduced by java
>> > <
>> https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/util/concurrent/Executor.html
>> >
>> > it also adapted by python
>> > <https://docs.python.org/3/library/concurrent.futures.html>
>> > Compared to handcrafted thread pool management, it greatly simplifies
>> the thread code.
>> > ---
>> > libavcodec/Makefile | 1 +
>> > libavcodec/vvc/Makefile | 4 +
>> > libavcodec/vvc/vvc_executor.c | 193 ++++++++++++++++++++++++++++++++++
>> > libavcodec/vvc/vvc_executor.h | 73 +++++++++++++
>> > 4 files changed, 271 insertions(+)
>> > create mode 100644 libavcodec/vvc/Makefile
>> > create mode 100644 libavcodec/vvc/vvc_executor.c
>> > create mode 100644 libavcodec/vvc/vvc_executor.h
>> >
>>
>> I'd like a unified API, since for AV1, we'd want something similar.
>> Having a custom one for each codec is a bad idea and prone to bitrotting.
>>
> Hi Lynne,
> Thanks for the comment.
>
> dav1d has not merged to mainline yet.
> It uses the same idea, but all codes are hand-crafted. Did not use any
> existing patterns.
> I guess the executor will simplify the dav1d's code.
> Let us find out when it is sent to FFmpeg for review.
>
> Current ffmpeg's thread management has limitations:
> 1. Slice thread bound to frame, it can't not us by another frame even
> current frame has no job.
> 2. It is a one-shot mechanism. Can't support multi-stage decoder. So it
> can't fully use the multiple cores.
> This is why we need a new one.
>
I don't mind a new one, I'd like for it to not be specific for VVC from the
start so it can be reused and improved.
_______________________________________________
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:[~2023-05-21 15:07 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-21 13:03 [FFmpeg-devel] [PATCH 00/14] add vvc decoder c code Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 01/14] vvcdec: add thread executor Nuo Mi
2023-05-21 13:15 ` Rémi Denis-Courmont
2023-05-21 14:24 ` Nuo Mi
2023-05-22 16:29 ` Rémi Denis-Courmont
2023-05-23 6:23 ` Nuo Mi
2023-05-21 14:44 ` Nuo Mi
2023-05-21 14:11 ` Lynne
2023-05-21 15:03 ` Nuo Mi
2023-05-21 15:06 ` Lynne [this message]
2023-05-21 15:16 ` Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 02/14] vvcdec: add vvc decoder stub Nuo Mi
2023-05-21 17:30 ` Michael Niedermayer
2023-05-22 1:55 ` Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 03/14] vvcdec: add sps, pps, sh parser Nuo Mi
2023-05-21 14:25 ` James Almer
2023-06-10 11:37 ` Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 04/14] vvcdec: add cabac decoder Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 05/14] vvcdec: add reference management Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 06/14] vvcdec: add motion vector decoder Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 07/14] vvcdec: add inter prediction Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 08/14] vvcdec: add inv transform 1d Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 09/14] vvcdec: add intra prediction Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 10/14] vvcdec: add LMCS, Deblocking, SAO, and ALF filters Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 11/14] vvcdec: add dsp init and inv transform Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 12/14] vvcdec: add CTU(Coding Tree Unit) parser Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 13/14] vvcdec: add CTU thread logical Nuo Mi
2023-05-21 13:03 ` [FFmpeg-devel] [PATCH 14/14] vvcdec: add full vvc decoder Nuo Mi
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=NVyqLGs--3-9@lynne.ee \
--to=dev@lynne.ee \
--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