[gst-devel] Re: [tarkin-dev] Tarkin file extension

Erik Walthinsen omega at temple-baptist.com
Tue Sep 4 16:01:02 CEST 2001


On Tue, 4 Sep 2001, t . wrote:

> Not quite.
> "Is GStreamer a media player?
> No, GStreamer is a development framework for creating applications
> like mediaplayers, video editors, streaming media broadcasters and so
> on. That said very good media players can easily be built on top of
> GStreamer and we even include a simple yet functional mediaplayer with
> GStreamer called gstmediaplay."
Heh, I remember writing that....  I'm the original developer of GStreamer,
so...  The functionality I described is almost entirely contained within
the GStreamer main lib, with the mediaplayer functionality in a 750-line
libgstplay.so (it'll get bigger as more features are added, of course).

> Will it help a user play some random propriety codec flavor of the day?
> Nope. Don't get me wrong, it would be wonderful if the whole world supported
> a system like GStreamer. Share and Enjoy. But the fact is that it will never
> be able to universally handle all formats. At least with the atool scheme,
> you'll get something, even if the result is saying something like
> "due to M$'s anti-consumer commitment to maintaining its monopoly you
> cannot play files using codec XYZ on non-M$ operating systems. Please write
> to the whoever created this file and ask them to instead try other comparable
> and less encumbered codecs such as http://www.spiffycodechere.org or ..."
No, GStreamer will never play every format in existence, unless it
achieves a high degree of popularity in circles where these codecs might
actually happen, which from every indication (via work-related contacts
and otherwise) is happening.

It's also very easy for this "ask the net" functionality to tell the user
that they can't play it under Linux, or have to go to
<http://over.there.com> to get a closed-source player, or smack the
original encoder around a bit.

> Although I'm sure that a lot of the necessary file identication
> code that would be needed could come from gstreamer. That would be
> great if it was a separate program ala 'file'.
Yes, that would be very useful.  If all you want is a MIME type, it's
about a 10-line program with GStreamer...

What I really want is the actual file(1) to be available in a library, but
/etc/magic is not in a form even remotely useful to that.  Something along
the lines of GStreamer's media-property subsystem (tag/value) would be
required for a library API to be of any use to that ;-(

> Besides, which do you think would be easier:
>
> plaything   something.xyz
>
> or (http://gstreamer.net/faq.shtml#faq3)
>
> gstreamer-launch disksrc location=thesong.mp3 ! autoplugger ! osssink
Comparing a theoretical binary to a development tool isn't quite fair.
The real comparison is to:

gstmediaplay something.xyz

...which gives you a full media player.

> (Strange that their webpage has bangs...)
The -launch tool is a prototyping program that allows us to easily run any
pipeline the syntax can support.  The choice of ! was made because it's
visually similar to |, but doesn't have the shell-level connotations.
GStreamer stems conceptually from a similar system used in a research
project, where | was used, requiring the user to type \| all the time,
which got really annoying <g>

> Besides, there are many other "doesn't fit the world domination" view
> of things, like not currently supporting non-unix. That would be very
> non-ogg like.
Portability is something we just haven't had much interest in yet, but
it's designed in.  The only file which is OS-specific in the core is
cothreads.c, which can be ported to other chips with 2 instructons of ASM,
and OS's like Win32 by shiming native Fibers.  A total move to glib-2.0
will solve the thread portability issues.  The core plugins use a couple
features which Win32 for instance might have a problem with (specifically
mmap()), which can be ifdef'd out or replaced.  The interface plugins such
as audio and video simply have to be written for a given OS, at which
point they work transparently.

The real portability issue is all the libraries that many of the plugins
are based on.  We have somewhere approaching 100 plugins, probably a good
third of which are shims around existing codecs or other libraries.  Most
of these are not very portable at all.

      Erik Walthinsen <omega at temple-baptist.com> - System Administrator
        __
       /  \                GStreamer - The only way to stream!
      |    | M E G A        ***** http://gstreamer.net/ *****
      _\  /_






More information about the gstreamer-devel mailing list