[FFmpeg-devel] [PATCH] Add libavsequencer.

Sebastian Vater cdgs.basty
Wed Aug 18 22:48:18 CEST 2010

Ronald S. Bultje a ?crit :
> Hi,
> On Wed, Aug 18, 2010 at 4:21 PM, Sebastian Vater
> <cdgs.basty at googlemail.com> wrote:
>> So for the multiple mixer question:
>> We could have:
>> a) null_mixer
>> b) low_quality_mixer
>> c) high_quality_mixer
>> d) dsound_hwaccel_mixer
>> e) openal_hwaccel_mixer
>> f) sbawe32_hwaccel_mixer
>> g) gus_hwaccel_mixer
> If you wanted this at all, then you'd more likely want something
> generic, outside lavseq, like AVHWAccel. This would definitely not be
> some black-box magic going on inside the decoder. Decoders do not
> interact with hardware.

Well isn't it the point to move the mixer outside avseq? I mean, I
already patched it to become totally independent of avseq, that means
that mixer isn't dependant on avseq, but avseq is dependant of it.

Also I didn't mean to have that in the decoder.

I know my current proof of concept that AVSequencer already playbacks
IFF-TCM1 using lavf/iff.c only uses that way, but as said, that's just a
proof of concept that my current github code can already playback files.

In the final version, it should leave that mixer stuff to external
applications using FFmpeg.

> That is, if you consider this an issue at all. If you ask me, modern
> CPUs don't need mixing for amiga-age mod files. They are quite capable
> of doing that themselves well above realtime. A good-quality software
> mixer is all we need, at least for now.

a) s3m/xm/it are FAR beyond amiga age mod files, even latest IT from
1998 has a mixer which can easily bring a 1GHz Duron (100% written in
MMX x86 assembly) to it's knees with all features at maximum quality
enabled. Mixers REALLY take lot of CPU time when strong interpolation,
etc. is used with MANY channels.

b) while we can start with only one mixer, we should discuss the
extension capabilities to avoid to change the API all the time around.

> What I'm trying to get you to accept is that we can greatly simplify
> the amount of code needed to playback something relatively simple like
> a TCM file. I'd like to get to that bare minimum, so that there's some
> chance that this stuff will eventually land in SVN.

I agree to this, regarding MOD files, but what I'm wanting (and some
others of you) is to get the mixer API independent of lavseq, we want
eventually to move the mixer stuff outside avseq, right?

In that case we should consider such points already now, instead of
getting surprised and have to rewrite most of it again, because of some
weird limits.

Please note that current NULL mixer I posted here is ALREADY independent
of libavsequencer according to it's code and header file (mixer.h), it's
just in libavsequencer directory. We can easily move it out there
already without changing any line of code except the #include
"libavsequencer/mixer.h" to "$NEW_DIR/mixer.h". That's all!

So I think, the best way to continue this discussion is to decide to
keep mixers in avseq or to move somewhere else, if the latter one then
where it should finally go? avfilter?


Best regards,
                   :-) Basty/CDGS (-:

More information about the ffmpeg-devel mailing list