docs/: Do some Architect work.
authorStefan Kost <ensonic@users.sourceforge.net>
Tue, 13 Mar 2007 14:53:21 +0000 (14:53 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Tue, 13 Mar 2007 14:53:21 +0000 (14:53 +0000)
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

ChangeLog
docs/design/draft-tagreading.txt [new file with mode: 0644]
docs/random/ensonic/audiobaseclasses.txt [new file with mode: 0644]
gst/gstobject.c
gst/gstpad.c

index 609b0e8..103ea1b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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),
diff --git a/docs/design/draft-tagreading.txt b/docs/design/draft-tagreading.txt
new file mode 100644 (file)
index 0000000..ac219cc
--- /dev/null
@@ -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
+
diff --git a/docs/random/ensonic/audiobaseclasses.txt b/docs/random/ensonic/audiobaseclasses.txt
new file mode 100644 (file)
index 0000000..103b746
--- /dev/null
@@ -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
+
index 2a0963d..07de3ca 100644 (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;
   }
index 1e36c61..32d4c89 100644 (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