+OUTDATED
+--------
+
GstElementFactory:
Base class for all elementfactories. Is a single-instance (per program)
+COMPLETELY OUTDATED
+-------------------
+
+
A little explanation of the first autoplugger in GStreamer:
Autoplugging is implemented in the following places:
+METADATA ON BUFFERS IS OUTDATED
+-------------------------------
+
+
Buffer mutability properties are the most important part of gst, and
similarly are the most complex.
+SOME OF THE FIRST IDEAS, PRETTY OUTDATED
+----------------------------------------
+
+
During the course of a discussion on IRC, it turned out
that there are many possible ways to handle the capabilities.
+STATUS: GstData is not implemented as a class for speed reasons.
+----------------------------------------------------------------
+
NB: This document does not represent the current state of CVS but my current plans on how to implement this.
Basics
the padtemplates.
Dynamic pad usually have the presence indicator set to
-GST_PAD_FACTORY_SOMETIMES. This indicated that the pad might become
+GST_PAD_SOMETIMES. This indicated that the pad might become
available at runtime. When the pad is actually created in the
element, the element will signal the new_pad signal. This signal can
then be used to attach a desired (compatible) element to the
pad.
For certain elements, like a tee and a muxer, we need another pad
-presence flag: GST_PAD_FACTORY_REQUEST. With this flag, the
+presence flag: GST_PAD_REQUEST. With this flag, the
elementfactory will announce that some of the pads are available on
request. For the tee element, for example, one might obtain a new output
pad by looking up a suitable padtemplate (temp) and performing:
+OUTDATED
+--------
+
case 1)
+EARLY DOCUMENT, NOT EXACTLY AS IMPLEMENTED
+------------------------------------------
+
EVENTS RFC
==========
+OUTDATED, methods have different names now
+------------------------------------------
+
+
Here's a pipeline that does audio/video MPEG streams with a queue on
either side of each decompressor, for a total of 5 threads (read/split,
decode audio, decode video, play audio, play video):
+OUTDATED
+--------
+
+
Face it, the plugins/ directory hierarchy is crap. We want to propose a
better layout for it now. Some things to consider:
GNOME Streamer is a pipeline-based media streaming framework. It is built
-on top of the Gtk+ object model, and while it currently sits on top of
-gtk, it can be divorced from it at any point in the future.
+on top of the gobject object model.
A pipeline consists of at one or more each of sources, sinks, and filters.
These elements may be combined inside container elements, which may have
+OUTDATED
+--------
+
The point of the metadata is to provide some context for each buffer. In
the case of audio data, for instance, it would provide the samplerate, bit
depth, and channel count.
+OUTDATED
+--------
+
+
What I propose for EOS condition is th following: As is stands, EOS is a
flag in a buffer. However, it's also a signal from an element, which is
odd. What I propose is that EOS become a pad thing. Here's how it would
+OUTDATED, EARLY IDEA
+--------------------
+
When two pads are connected, a negotiation phase is going to have to
happen. Ideally, the caps of the two pads will both be fully-specified,
and match. That's the ideal case, but may rarely happen in practice.
+OUTDATED
+--------
+
typedef gpointer GstCapsFactoryEntry;
typedef GstCapsFactoryEntry GstCapsFactory[];
typedef GstCapsFactory *GstCapsListFactory[];
+OUTDATED
+--------
+
Plan generation happens at transition from NULL to READY (and PLAYING to READY right now, need to fix
that). By way of some logic in gst_bin_change_state(), gst_bin_create_plan() is only called for the
outer Bin, usually a Pipeline. This keeps things from getting nasty later on.
+STATUS: pushregion/pullregion is gone
+-------------------------------------
+
Changed the way things are scheduled, especially sources. A Src used to
have a push() function, and optionally a pushregion() to deal with async
reads, etc. That whole thing has gone away, in favor of providing a
+STATUS: pull on srcpads is outdated, they use _get
+--------------------------------------------------
+
0) definitions:
All pads without further specifiers are assumed to belong to the element
+OUTDATED
+--------
+
+
A type properties system might look like following:
+SOMEWHAT OUTDATED
+-----------------
+
+
We describe how the plugin system works.
Plugins
+OUTDATED
+--------
+
+
GST State Bits and Transition Rules (graph to follow)
-----------------------------------
+OUTDATED
+--------
+
Since the plan generation only happens as a result of the state mechanism,
I'll describe that first.
+OUTDATED
+--------
+
GST States and Transition Rules (graph to follow)
-------------------------------
+OUTDATED
+--------
+
+
1. Introduction
---------------
+SOMEWHAT OUTDATED, design still holds though
+--------------------------------------------
+
+
1. Introduction
---------------
+OUTDATED
+--------
+
You might start by creating a source element and put it into a pipeline.
At this point both element's state would be GST_STATE_NEW, since they
don't have enough state to actually run yet. At this point you can set
+OUTDATED
+--------
+
+
caps negotiation
================
+OUTDATED
+--------
+
pad has caps
| pad has template
+OUTDATED
+--------
+
EOS as implemented on Jan 21 2001:
1) terminology
+OUTDATED
+--------
+
case 1)
+OUTDATED
+--------
+
case 1)
+OUTDATED
+--------
+
case 1)
+OUTDATED
+--------
+
case 1)
+INITIAL RAMBLINGS
+-----------------
+
some random ramblings about the event system:
Possible candidates for events
+OUTDATED
+--------
+
+
problem
-------