From: Stefan Kost Date: Tue, 13 Mar 2007 14:53:21 +0000 (+0000) Subject: docs/: Do some Architect work. X-Git-Tag: RELEASE-0_10_13~149 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=08afeb612089b0ea3cd9d7dea133216edfc2ea15;p=platform%2Fupstream%2Fgstreamer.git 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 --- diff --git a/ChangeLog b/ChangeLog index 609b0e8..103ea1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2007-03-13 Stefan Kost + + * 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 * 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 index 0000000..ac219cc --- /dev/null +++ b/docs/design/draft-tagreading.txt @@ -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 index 0000000..103b746 --- /dev/null +++ b/docs/random/ensonic/audiobaseclasses.txt @@ -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 + diff --git a/gst/gstobject.c b/gst/gstobject.c index 2a0963d..07de3ca 100644 --- a/gst/gstobject.c +++ b/gst/gstobject.c @@ -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; } diff --git a/gst/gstpad.c b/gst/gstpad.c index 1e36c61..32d4c89 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -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