[PD-dev] gavl and gmerlin-avdecoder in Fink and on build machines

IOhannes m zmoelnig zmoelnig at iem.at
Tue May 5 10:02:28 CEST 2009


hi.

sorry for the overcryptic mail...


Hans-Christoph Steiner wrote:
> 
>>> working on getting readanysf~ compiling nicely.  Now that leads me to 
>>> wonder: how about getting Gem on Mac OS X to use gavl and 
>>> gmerlin-avdecoder?  I think it'll have much better codec support than 
>>> Quicktime.
>>
>> how not to?
> 
> I don't understand.

Gem uses configure to detect which libraries are available on the build 
system. at least it does so on the autobuild machines.

since the configury is usually greedy, it will take conscious effort to 
disable a certain feature (e.g. the use of gavl/gmerlin once it is detected)


> 
>> which complications do you expect?


of course the above is not entirely true (there are a few hacks in the 
configury to avoid groups of libraries which are known to cause 
problems: e.g. ImageMagick will automatically disable libtiff).

there might as well be special hacks that disable the use of the  more 
modular "new" (though quite aged by now) approach of film-loading.

i know that there _are_ such special hacks, i just don't know whether 
they effect the film-business (without looking at the code)

> Hmm, I don't really know enough to say.  August and I have been working 
> quite a bit on getting this whole thing building in Fink and now MinGW.  
> I think then Gem, Gridflow, PDP, etc. can all use this single framework 
> for AV IO on all platforms, or at least GNU/Linux and Mac OS X.

which is great (esp. as Gem should already be there :-))


> 
>>> Check out all of the codec libs that are included.
>>
>> obviously these is exactly not the point of having a 
>> plugin-architecture...
> 
> I don't understand. not?

that was the unneccessary harsh part of my mail.
however, let me explain:
plugins (as used e.g. by gmerlin) are used to create a flexible bridge 
between two "applications"; if the code-base of appA changes, then appB 
does not need to know anything about this change; if appA is totally 
unavailable, most functionality of appB will be untouched (e.g. Gem can 
be seen as a bridge between openGL and Pd; openGL doesn't know nor care 
which Pd version we have; nor the other way round; it's part of Gem's 
task to track any incompatible changes in either of them; if openGL is 
entirely missing on a system, this doesn't affect Pd as a whole; it will 
make Gem unusable, but you can still play nicely with Pd)

this is even more true with decoder-plugins: if the Sorenson2000 codec 
is missing on my system, i still might be able to decode motion jpeg 
videos; my application should continue to work even without any plugins 
installed. if i need a special codec not installed on my system, my task 
should be to install the missing codec and not to update my application. 
(now , that's an important statement here)

obviously, to make a platform to work with in a reasonable way, an 
application might choose to ship with some plugins. (and i think that is 
your point here)


what i mainly wanted to oppose with my rant was, that by embracing 
gmerlin/gavl in the way it is done know (that is: fully including the 
source into PdX), you are giving away to good things about it.
in one of my former mails i have written: "the ffmpeg-nightmare is 
delegated to a single-point: gavl".
by including the sources of gavl/gmerlin, the near impossible task of 
tracking changes of ffmpeg is back with us: whenever ffmpeg changes 
sufficiently (that is: each other week), gmerlin will have to adopt. 
then we will have to import the new gavl sources, in order to support 
the new ffmpeg version.

otoh, having a stable API in gavl/gmerlin enables us to just link 
against gmerlinj/gavl "once", and ship (with) "a" decoder-plugin for 
ffmpeg, and once this is outdated, the decoder-plugin could be updated, 
rather than the entire PdX. and less dependencies to wait for.



all in all, my point about plugins is that they are plugins, thus 
externally loadable and updateable pieces. the sole idea of plugins lies 
within this externality. (else we could just statically link everything in)

i guess your point about pugins is, that they are totally useless unless 
you have them. (else we could talk about black holes and whatelse, with 
an equal impact on Pd)

like always, we are both right.


famsf
IOhannes










-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3636 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20090505/4e9effd9/attachment.bin>


More information about the Pd-dev mailing list