docs/: Do some Architect work.

Original commit message from CVS:
* docs/design/draft-tagreading.txt:
* docs/random/ensonic/audiobaseclasses.txt:
Do some Architect work.
* gst/gstobject.c: (gst_object_set_name):
Add a WARNING.
* gst/gstpad.c:
Add docs that point from gst_pad_get_range to gst_pad_pull_range
This commit is contained in:
Stefan Kost 2007-03-13 14:53:21 +00:00
parent 2792895411
commit 08afeb6120
5 changed files with 79 additions and 2 deletions

View file

@ -1,3 +1,15 @@
2007-03-13 Stefan Kost <ensonic@users.sf.net>
* docs/design/draft-tagreading.txt:
* docs/random/ensonic/audiobaseclasses.txt:
Do some Architect work.
* gst/gstobject.c: (gst_object_set_name):
Add a WARNING.
* gst/gstpad.c:
Add docs that point from gst_pad_get_range to gst_pad_pull_range
2007-03-12 Jan Schmidt <thaytan@mad.scientist.com>
* gst/gstsystemclock.c: (gst_system_clock_init),

View file

@ -0,0 +1,47 @@
Tagreading
----------
The tagreading (metadata reading) use case for mediacenter applications is not
to well supported by the current GStreamer architecture. It uses demuxers on the
files, which generelly said takes too long. what we wan't is secialized elements
that just do the tag-reading.
The idea is to have one plugin 'tagread' simmilar to 'typefind' that provides
elements for the different formats. The advantage of having those in on plugin
would be that when building a metadatabase one only loads this plugin.
Then there would be a tagbin, that similar to decodebin does a typefind and then
plugs the right tagread element. It might plug a demuxer as a fallback solution.
Still it would be nice to reuse code from demuxers/tag-filters.
Design
------
The plan is that applications can do the following:
pipeline = "filesrc ! tagbin"
for (file_path in list_of_files) {
filesrc.location=file_path
pipeline.set_state(PLAYING)
// wait for TAGS & EOS
pipeline.set_state(READY)
}
* it should have one sinkpad of type ANY
* it should send EOS when all metadata has been read
(and all tags have been sent)
* it could have a generic element that uses taglib
http://developer.kde.org/~wheeler/taglib.html
* tagread-elements should have RANK_NONE to be not autoplugged by decodebin
Reuse
-----
ogg : gst-plugins-base/ext/ogg
avi : gst-plugins-good/gst/avi
mp3 : gst-plugins-good/gst/id3demux
wav : gst-plugins-good/gst/wavparse
qt : gst-plugins-bad/gst/qtdemux

View file

@ -0,0 +1,15 @@
$Id$
= audio base classes =
We have gst-plugins-base/gst-libs/gst/audio with some audio helper and base
classes.
= new stuff =
= todo =
* mv gstaudiofilterexample -> gst-template
* make more elements using the baseclass
* base: audiorate, audioresample, volume
* good: audiopanorama

View file

@ -680,6 +680,7 @@ gst_object_set_name (GstObject * object, const gchar * name)
/* error */
had_parent:
{
GST_WARNING ("parented objects can't be renamed");
GST_OBJECT_UNLOCK (object);
return FALSE;
}

View file

@ -3748,6 +3748,8 @@ not_connected:
* @buffer's caps must either be unset or the same as what is already configured
* on @pad. Renegotiation within a running pull-mode pipeline is not supported.
*
* This is a lowlevel function. Usualy gst_pad_pull_range() is used.
*
* Returns: a #GstFlowReturn from the pad.
*
* MT safe.
@ -3864,9 +3866,9 @@ not_negotiated:
* @size: The length of the buffer
* @buffer: a pointer to hold the #GstBuffer, returns GST_FLOW_ERROR if %NULL.
*
* Pulls a buffer from the peer pad.
* Pulls a @buffer from the peer pad.
*
* This function will first trigger the pad block signal if it was
* This function will first trigger the pad block signal if it was
* installed.
*
* When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this