[FFmpeg-devel] [WIP] Event loop

Xiang Xiao xiaoxiang781216 at gmail.com
Tue Aug 17 05:34:41 EEST 2021


On Sat, Jul 17, 2021 at 8:09 PM Nicolas George <george at nsup.org> wrote:

> Hi.
>
> Some time ago, I started working on the project to update libavformat's
> protocols to run with a proper event loop, instead of the several
> half-assed
> event loops we have here and there in the code.
>
> I started by writing the documentation for the low-level API, making sure
> it
> is an API that (1) is sufficient for the high-level API and (2) I can
> deliver on Unix using poll() and pthreads and could deliver with GLib,
> libev
> and probably libuv.
>
> Please have a look at it. In particular, if you know system/event
> programming for other operating systems, please have a look to tell me if
> there are flaws in that regard.
>
> Here are a few comments:
>
> The structure of my projects are:
>
> - AVWorker, single-threaded low-level API, with the possibility of having
>   several implementations to accommodate different operating systems or
>   integrate into existing frameworks.
>
> - AVScheduler, multi-threaded high-level API, with the possibility of
> having
>   several implementations to integrate into existing frameworks.
>
> - Redesign AVIO so that it works as tasks in an AVScheduler.
>
> - Redesign libavfilter so that activating filters is tasks in an
>   AVScheduler.
>
> Note that I have made implementation choices different from what we are
> used
> to. In particular, when it comes to making the API future-proof. Adding
> low-level tasks needs to be extremely lightweight, to the exclusion of
> dynamic allocation: our old and t[ier]+d foo_alloc() / foo_free() / add
> fields at the end does not cut it. If you want to criticize these choices,
> please make sure you understand how they work, what constraints I am
> working
> with and what benefit they bring, and preferably have an alternate
> proposal.
>
> Here is the current state of worker.h. Now I will be working on
> scheduler.h.
>
> Regards,
>
>
Nicolas, do you have any more progress? I am very interested in your
proposal and want to test your change in our special device.

Thanks
Xiang


> --
>   Nicolas George
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-devel mailing list