[FFmpeg-devel] expert needed (will pay $$$) to help decomposeffmpeg.c into seperate runnable tasks

Stuart Smith stuartmartinsmith
Fri Jul 24 22:38:24 CEST 2009

Hi Jason, maybe I didn't make myself clear so here goes ....

The whole point is that we don't have separate processes - we will be using
our own thread pool.

The multi-threading should apply to each input i.e. if possible, the
encoding/decoding should be independent and be able to run-ahead of each
other if the workflow allows it (I don't know enough about encoding/decoding
to determine if this is possible).

It should also be possible to start processing the next input file whilst
the previous file is still being processed so that we can get optimal CPU
usage i.e. we don't want the standard scatter-gather approach whereby the
main thread is waiting for all the other threads to finish before it can
continue with the next job.

Hope this helps.


-----Original Message-----
From: ffmpeg-devel-bounces at mplayerhq.hu
[mailto:ffmpeg-devel-bounces at mplayerhq.hu] On Behalf Of Jason Garrett-Glaser
Sent: 24 July 2009 21:26
To: FFmpeg development discussions and patches
Subject: Re: [FFmpeg-devel] expert needed (will pay $$$) to help
decomposeffmpeg.c into seperate runnable tasks

> What we are trying to do is to process a number of different input files
> different types) and encode them into several different
> formats/resolutions/bitrates etc at the same time (we have an 8 core
> in the office). In effect, we are looking for single threaded versions of
> code functions that will read the frames from a file, decode the frames
> encode the frames in separate threads. We will take care of spawning the
> threads, data buffering/locking/sharing, synchronisation etc but we
> the functional code to be re-entrant so that we can embed it in our
> 'threading framework' for scheduling and execution.

This seems phenomenally uninteresting and trivial; running multiple
encodes at the same time isn't multithreading, it's multiple
processes.  Even if you theoretically force them inside the same
process, you're still running multiple independent tasks.

What would be interesting is multithreading *individual* encoding and
decoding tasks.

Dark Shikari
ffmpeg-devel mailing list
ffmpeg-devel at mplayerhq.hu

More information about the ffmpeg-devel mailing list