[prev in list] [next in list] [prev in thread] [next in thread] 

List:       nepomuk
Subject:    Re: [Nepomuk] Nepomuk - Moving away from Strigi
From:       Kevin Kofler <kevin.kofler () chello ! at>
Date:       2012-10-08 21:38:40
Message-ID: 6373139.MUHLLnWkpI () localhost ! localdomain
[Download RAW message or body]

On Monday 08 October 2012 at 22:26:30, Martin Gr=E4=DFlin wrote:
> Neither Kevin (Fedora), Scott (Kubuntu) nor Adrian (SUSE) came up with the
> rules, they are just pointing out the policies. While I do not agree with
> their policies I can kind of understand it.
> =

> What everybody can do is to bring the question back to the distributions
> that they might reconsider the situation and bringing back the feedback
> that Upstream really wants to have working multimedia in the downstream.
> =

> Though especially for the distributions situated in the USA I have little
> hope that they might change anything. The patent system there is extremely
> broken and there is quite a difference between knowing that the software
> breaks patents or some bogous IP claims like SCO.
> =

> We all know that situation and we won't change it here on kde-devel. I'd
> love to do so, but it won't happen :-(
> =

> So let's all calm down and work on good solutions :-)

The best solution I can offer is: if at all possible, please (pretty please=
) DO =

NOT use FFmpeg (directly), use GStreamer.

There are 4 APIs you can use to use GStreamer in your application:
* Phonon (with Phonon-GStreamer, which is the default in most distributions=
). =

The highest-level API, suitable for simple playback, not so much for other =

tasks.
* QtMobility Multimedia. Listed for completeness, probably not ideal for KD=
E =

applications. Also high-level.
* QtGStreamer. Lower-level Qt bindings for GStreamer. More flexible.
* GStreamer directly. C/GObject API. Lowest-level, but not as low-level as =

FFmpeg. ;-) If even QtGStreamer does not do what you want, try this one.

Now I don't know whether GStreamer is suitable for the Nepomuk indexing tas=
k =

which started this thread, but e.g. for the Amarok transcoding and =

fingerprinting, it could definitely be used instead of the FFmpeg-based cod=
e we =

have now (see sound-converter (the GNOME one, not soundKonverter) for an =

example of how to use GStreamer for transcoding, transcoding is actually on=
e =

of the things it can do well). Thumbnailing is also something which could a=
nd =

should be done using GStreamer rather than FFmpeg as ffmpegthumbnailer does.

GStreamer helps us in several ways:
* GStreamer is modular, so distros can ship only the codecs they feel safe =
and =

others can be added as plugins. (FFmpeg, on the other hand, links all the =

codecs into a single monolithic shared library.)
* GStreamer supports system decoding libraries for many formats. In =

particular, most unencumbered codecs can be decoded without depending on th=
e =

monolithic FFmpeg. This approach also encourages code sharing rather than =

reinventing the wheel as FFmpeg loves to do.
* GStreamer supports FFmpeg (or actually Libav these days) codecs as one of =

the many plugins.
* GStreamer upstream actually cares about the legal issues and already =

classifies the stable codecs into "good" and "ugly". (The less-proven "bad" =

ones, on the other hand, are not classified by upstream and are split into =
3 =

pieces in Fedora and RPM Fusion: free and patent-free, free but patent-
encumbered and outright non-free. But that's just a matter of auditing the =

plugins and splitting them, interested third parties can look at our split.)
* If everything uses GStreamer, the user only has to add the "evil" codecs =

once for all apps. (And there's even a codec auto-installation feature, tho=
ugh =

admittedly that will only work if the repository containing the codec is =

already configured, so it's not a magic bullet.) If, on the other hand, we =
go =

with the alternative solution of having FFmpeg-based plugins for everything=
, =

sure, that also solves our problem (as long as they're really plugins, not =

compile-time options like Amarok's fingerprinting!), but it means the user =
has =

to install a lot of *-ffmpeg packages to get everything working.

So in short, if you want multimedia to "just work" in your software, use =

GStreamer!

        Kevin Kofler
_______________________________________________
Nepomuk mailing list
Nepomuk@kde.org
https://mail.kde.org/mailman/listinfo/nepomuk
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic