-GStreamer 0.3.2 "Do-B-day" released
-Release Notes
+ GStreamer "30 Second Frenchman" 0.3.4 released
+
+ RELEASE NOTES
The GStreamer team is happy to announce another release of the
- GStreamer streaming-media framework. GStreamer now contains close to
- 100 plugins for reading, writing and manipulating audio and video. We
- are rapidly approaching a stable set of libraries. Our sample
- applications are, however, still under development.
-
- We now have a gst-all module prepared that includes all of our source
- modules in one easy-to-compile package.
-
-Future Plans
-
- Our goal for the next release is stabilizing and improving the current
- feature set of GStreamer further, including introducing an improved
- autoplugger module for even better handling of media formats. We will
- also focus more attention at our media player sample application as
- this is the application most users and developers probably will use to
- get aquinted with the framework.
-
- For help building GStreamer, take a look at our build help document.
-
-Updates and Enhancements
-
- * new capabilities negotiation system
- * xml support bugfixes
- * sdlvideosink enhancements
- * gst-xmllaunch added
- * fixes in avi plugin
- * fli plugin now works again
- * fixes to old gstmediaplayer making it work
- * lots of fixes on the v4l plugin
- * new cdxa plugin
- * new mjpeg encoder and decoder plugins
- * new example plugin using GOB
- * partial update of documentation and examples
- * miscellaneous bugfixes
-
- More details on these features can be found, along with the release
- tarballs and some RPMs, on the project's website,
- http://gstreamer.net/.
+ GStreamer streaming-media framework.
+
+Focus of this release
+
+ This release fixes a few developer usability issues.
+
+ A few of the API functions have been changed to offer better
+ functionality and to be more consistent with other toolkits (GLib,
+ GTK).
+ Sample changes:
+ * gst_elementfactory_make to gst_element_factory_make
+ * GST_PADTEMPLATE_* to GST_PAD_TEMPLATE_*
+
+ This release of GStreamer has been primarily made in support of
+ RhythmBox. It should really work with their upcoming 0.2.0 release.
+
+ The gst-launch parsing has been bisonified. This allows for better and
+ more consistent command-line parsing. Accordingly, some changes in the
+ dynamic pad treatment have been made as well.
+ The registry handling has been changed. gst-register will now write to
+ a local registry (in ~/.gstreamer/reg.xml) if it does not have
+ permissions to write to the global registry. Normal applications not
+ running as root will prefer this local registry if it exists, and fall
+ back to the global otherwise.
+ Also, a --gst-registry option has been added to all gst applications.
+ If this is specified, then the application will ONLY use this
+ registry. This is useful for testsuites inside the core as well as
+ general testing of plugins.
+
+ GStreamer is now in Gnome's Bugzilla. Please file bugs against us
+ there whenever you find them !
+
+Changes in the 0.3.x tree
+
+ The 0.3.x tree is our first tree using GLib 2.0 and libxml2 as the
+ sole compile platform. We have also started including all our
+ documentation in our RPMS starting this tree. People wanting to build
+ GStreamer themselves with documentation should look at the DOCBUILDING
+ file for some information on what packages are needed to build that
+ successfully.
+
+ Another new feature of this release tree is the gst-launch-ext
+ command-line application. It uses predefined pipelines to play back
+ media files based on their file extension. This means that you don't
+ need to construct your own pipelines using gst-launch if all you want
+ to do is play a file. Just type gst-launch-ext [filename] and the
+ audiofile or movie plays for you. This of course also being a work in
+ progress means that sometimes it might decide on the wrong pipeline,
+ or cause jitter, as well as random headaches.
+
+ For help building GStreamer, take a look at our [1]build help document
+ .
+
+Updates and Enhancements in this release
+
+ * Improved API naming
+ * New registry handling, allowing for global, local or specified
+ registry
+ * bison parser
+ * gst-launch-ext dynamic pad fixes
+ * various fixes in mad and vorbisdec for RhythmBox
+
+Previously, in the 0.3.x tree
+
+ * devhelp documentation
+ * New and improved Props API
+ * New master clock system
+ * dxr3 plugin
+ * libcolorspace plugin
+ * Full dparams documentation
+ * All functions documented (551 functions documented)
+ * Python bindings
+ * Portability fixes (no more C++ // style comments)
+ * a52dec plugin updated to a52dec 0.7.3 API
+ * gnome-vfs plugin updated to new seek api
+ * Misc bug and caps fixes
+ * SPEC files improvements
+
+ More details on these features can be found on the project's website,
+ [2]http://gstreamer.net/. Source tarballs are also mirrored at
+ [3]http://gstreamer.net/releases/current/src/. If you use Red Hat (or
+ possibly other RPM-based systems), RPMs for both GStreamer itself,
+ external libraries and development tools not included in the standard
+ reference distribution (RedHat 7.2) can be found in
+ [4]http://gstreamer.net/releases/current/redhat.
GStreamer is hosted on SourceForge, so support requests and bugs may
be filed as usual. Interested developers of the core library, plugins,
Contributors to this release
-Core
+ Core
* Erik Walthinsen <omega@temple-baptist.com>
* Wim Taymans <wim.taymans@chello.be>
* Thomas Vander Stichele <thomas@apestaart.org>
* Andy Wingo <wingo@pobox.com>
- * David Lehn <dlehn@vt.edu>
+ * Benjamin Otte <in7y118@public.uni-hamburg.de>
-Plugins and Sample Applications
+ Plugins and Sample Applications
+ * Richard Boulton <richard@tartarus.org>
+ * David Lehn <dlehn@vt.edu>
* Ronald Bultje <rbultje@ronald.bitfreak.net>
* Bastien Nocera <hadess@hadess.net>
* Martin Enlund <martin@enlund.net>
- * Benjamin Otte <bj>
+ * Arik Devens <arik@gnome.org>
+ * Jérémy Simon <jsimon13@yahoo.fr>
+ * Zeeshan Ali Khattak <zak147@yahoo.com>
+ * Steve Baker <stevebaker_org@yahoo.co.uk>
+ * Rehan Khwaja <rehankhwaja@yahoo.com>
-Misc
+ Misc
* Christian Schaller <christian.schaller@linuxrising.org>
- * wrobell <wrobell@ite.pl>
+ * Calum Selkirk <cselkirk@panix.com>
+
+References
+ 1. http://gstreamer.net/releases/current/buildhelp.php
+ 2. http://gstreamer.net/
+ 3. http://gstreamer.net/releases/current/src/
+ 4. http://gstreamer.net/releases/current/redhat/
while (vorbis_analysis_blockout (&vorbisenc->vd, &vorbisenc->vb) == 1) {
/* analysis */
- vorbis_analysis (&vorbisenc->vb, &vorbisenc->op);
+ vorbis_analysis (&vorbisenc->vb, NULL);
+ vorbis_bitrate_addblock(&vorbisenc->vb);
+
+ while(vorbis_bitrate_flushpacket(&vorbisenc->vd, &vorbisenc->op)) {
- /* weld the packet into the bitstream */
- ogg_stream_packetin (&vorbisenc->os, &vorbisenc->op);
+ /* weld the packet into the bitstream */
+ ogg_stream_packetin (&vorbisenc->os, &vorbisenc->op);
- /* write out pages (if any) */
- while (!vorbisenc->eos) {
- int result = ogg_stream_pageout (&vorbisenc->os, &vorbisenc->og);
- GstBuffer *outbuf;
+ /* write out pages (if any) */
+ while (!vorbisenc->eos) {
+ int result = ogg_stream_pageout (&vorbisenc->os, &vorbisenc->og);
+ GstBuffer *outbuf;
- if (result == 0)
- break;
+ if (result == 0)
+ break;
- outbuf = gst_buffer_new ();
- GST_BUFFER_DATA (outbuf) = g_malloc (vorbisenc->og.header_len + vorbisenc->og.body_len);
- GST_BUFFER_SIZE (outbuf) = vorbisenc->og.header_len + vorbisenc->og.body_len;
+ outbuf = gst_buffer_new ();
+ GST_BUFFER_DATA (outbuf) = g_malloc (vorbisenc->og.header_len + vorbisenc->og.body_len);
+ GST_BUFFER_SIZE (outbuf) = vorbisenc->og.header_len + vorbisenc->og.body_len;
- memcpy (GST_BUFFER_DATA (outbuf), vorbisenc->og.header, vorbisenc->og.header_len);
- memcpy (GST_BUFFER_DATA (outbuf) + vorbisenc->og.header_len, vorbisenc->og.body,
- vorbisenc->og.body_len);
+ memcpy (GST_BUFFER_DATA (outbuf), vorbisenc->og.header, vorbisenc->og.header_len);
+ memcpy (GST_BUFFER_DATA (outbuf) + vorbisenc->og.header_len, vorbisenc->og.body,
+ vorbisenc->og.body_len);
- GST_DEBUG (0, "vorbisenc: encoded buffer of %d bytes", GST_BUFFER_SIZE (outbuf));
+ GST_DEBUG (0, "vorbisenc: encoded buffer of %d bytes", GST_BUFFER_SIZE (outbuf));
- gst_pad_push (vorbisenc->srcpad, outbuf);
+ gst_pad_push (vorbisenc->srcpad, outbuf);
- /* this could be set above, but for illustrative purposes, I do
- it here (to show that vorbis does know where the stream ends) */
- if (ogg_page_eos (&vorbisenc->og)) {
- vorbisenc->eos = 1;
+ /* this could be set above, but for illustrative purposes, I do
+ it here (to show that vorbis does know where the stream ends) */
+ if (ogg_page_eos (&vorbisenc->og)) {
+ vorbisenc->eos = 1;
+ }
}
}
}
### "ac3", "ac3parse ! $cfg{AUDIOSINK}",
%pipes = (
"au", "auparse ! $cfg{AUDIOSINK}",
- "avi", "avidemux video_00! { queue ! windec ! $cfg{VIDEOSINK} } avidemux0.audio_00! { queue ! mad ! $cfg{AUDIOSINK} }",
+ "avi", "avidemux video_%02d! { queue ! windec ! $cfg{VIDEOSINK} } avidemux0.audio_00! { queue ! mad ! $cfg{AUDIOSINK} }",
"fli", "flxdec ! colorspace ! $cfg{VIDEOSINK}",
"mod", "modplug ! $cfg{AUDIOSINK}",
"mp3", "mad ! $cfg{AUDIOSINK}",
- "mpg", "mpegdemux video_00! { queue ! mpeg2dec ! $cfg{VIDEOSINK} } mpegdemux0.audio_00! { queue ! mad ! $cfg{AUDIOSINK} }",
+ "mpg", "mpegdemux video_%02d! { queue ! mpeg2dec ! $cfg{VIDEOSINK} } mpegdemux0.audio_%02d! { queue ! mad ! $cfg{AUDIOSINK} }",
"ogg", "vorbisdec ! $cfg{AUDIOSINK}",
"sid", "siddec ! $cfg{AUDIOSINK}",
- "vob", "mpegdemux video_00! { queue max_level=500 ! mpeg2dec ! $cfg{VIDEOSINK} } mpegdemux0.private_stream_1.0! { queue max_level=500 ! a52dec ! $cfg{AUDIOSINK} }",
+ "vob", "mpegdemux video_%02d! { queue max_level=500 ! mpeg2dec ! $cfg{VIDEOSINK} } mpegdemux0.private_stream_1_%02d! { queue max_level=500 ! a52dec ! $cfg{AUDIOSINK} }",
);
if ($cfg{VISUALIZER}) {