Commit a5e777fa authored by Stefan Kost's avatar Stefan Kost

Original commit message from CVS:
reviewed by: <delete if not using a buddy>
patch by: <delete if not someone else's patch>
* configure.ac:
* docs/libs/Makefile.am:
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/gnomevfs/gstgnomevfssrc.h:
* gst-libs/gst/Makefile.am:
* gst-libs/gst/audio/gstaudiofilter.h:
* gst/typefind/gsttypefindfunctions.c:
* gst/volume/gstvolume.c:
* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
* pkgconfig/gstreamer-plugins-base.pc.in:
* sys/v4l/v4lsrc_calls.c:
* tests/examples/Makefile.am:
* win32/common/config.h:
parent 478a6592
2007-08-23 Stefan Kost <ensonic@users.sf.net>
* gst/volume/gstvolume.c:
Move passthrough below gst_object_sync_values(). Fixes #442654.
2007-08-22 Wim Taymans <wim.taymans@gmail.com>
* gst-libs/gst/audio/audio.c:
......@@ -648,6 +648,7 @@ gst-libs/Makefile
gst-libs/gst/Makefile
gst-libs/gst/audio/Makefile
gst-libs/gst/cdda/Makefile
gst-libs/gst/fft/Makefile
gst-libs/gst/floatcast/Makefile
gst-libs/gst/interfaces/Makefile
gst-libs/gst/netbuffer/Makefile
......
......@@ -69,6 +69,7 @@ SCANOBJ_DEPS = \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
......
......@@ -17,6 +17,12 @@
<!ENTITY GstRingBuffer SYSTEM "xml/gstringbuffer.xml">
<!-- cdda -->
<!ENTITY GstCddaBaseSrc SYSTEM "xml/gstcddabasesrc.xml">
<!-- fft -->
<!ENTITY GstFFT SYSTEM "xml/gstfft.xml">
<!ENTITY GstFFTS16 SYSTEM "xml/gstffts16.xml">
<!ENTITY GstFFTS32 SYSTEM "xml/gstffts32.xml">
<!ENTITY GstFFTF32 SYSTEM "xml/gstfftf32.xml">
<!ENTITY GstFFTF64 SYSTEM "xml/gstfftf64.xml">
<!-- floatcast -->
<!ENTITY GstFloatCast SYSTEM "xml/gstfloatcast.xml">
<!-- interfaces -->
......@@ -117,6 +123,20 @@
&GstCddaBaseSrc;
</chapter>
<chapter id="gstreamer-ffft">
<title>FFT Library</title>
<para>
This library should be linked to by getting cflags and libs from
<filename>gstreamer-plugins-base-&GST_MAJORMINOR;.pc</filename> and adding
<filename>-lgstfft-&GST_MAJORMINOR;</filename> to the library flags.
</para>
&GstFFT;
&GstFFTS16;
&GstFFTS32;
&GstFFTF32;
&GstFFTF64;
</chapter>
<chapter id="gstreamer-floatcast">
<title>FloatCast Library</title>
<para>
......
......@@ -226,6 +226,70 @@ GST_TYPE_CDDA_BASE_SRC
gst_cdda_base_src_get_type
</SECTION>
# fft
<SECTION>
<FILE>gstfft</FILE>
<INCLUDE>gst/fft/gstfft.h</INCLUDE>
GstFFTWindow
gst_fft_next_fast_length
</SECTION>
<SECTION>
<FILE>gstffts16</FILE>
<INCLUDE>gst/fft/gstffts16.h</INCLUDE>
GstFFTS16
GstFFTS16Complex
gst_fft_s16_new
gst_fft_s16_fft
gst_fft_s16_inverse_fft
gst_fft_s16_free
gst_fft_s16_magnitude
gst_fft_s16_phase
gst_fft_s16_window
</SECTION>
<SECTION>
<FILE>gstffts32</FILE>
<INCLUDE>gst/fft/gstffts32.h</INCLUDE>
GstFFTS32
GstFFTS32Complex
gst_fft_s32_new
gst_fft_s32_fft
gst_fft_s32_inverse_fft
gst_fft_s32_free
gst_fft_s32_magnitude
gst_fft_s32_phase
gst_fft_s32_window
</SECTION>
<SECTION>
<FILE>gstfftf32</FILE>
<INCLUDE>gst/fft/gstfftf32.h</INCLUDE>
GstFFTF32
GstFFTF32Complex
gst_fft_f32_new
gst_fft_f32_fft
gst_fft_f32_inverse_fft
gst_fft_f32_free
gst_fft_f32_magnitude
gst_fft_f32_phase
gst_fft_f32_window
</SECTION>
<SECTION>
<FILE>gstfftf64</FILE>
<INCLUDE>gst/fft/gstfftf64.h</INCLUDE>
GstFFTF64
GstFFTF64Complex
gst_fft_f64_new
gst_fft_f64_fft
gst_fft_f64_inverse_fft
gst_fft_f64_free
gst_fft_f64_magnitude
gst_fft_f64_phase
gst_fft_f64_window
</SECTION>
# floatcast
......
......@@ -132,7 +132,8 @@ enum
ARG_IRADIO_NAME,
ARG_IRADIO_GENRE,
ARG_IRADIO_URL,
ARG_IRADIO_TITLE
ARG_IRADIO_TITLE,
ARG_RANDOM_ACCESS
};
static void gst_gnome_vfs_src_base_init (gpointer g_class);
......@@ -254,6 +255,12 @@ gst_gnome_vfs_src_class_init (GstGnomeVFSSrcClass * klass)
"iradio-title",
"Name of currently playing song", NULL, G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
ARG_RANDOM_ACCESS,
g_param_spec_boolean ("random-access",
"random-mode",
"Enable random file access", FALSE, G_PARAM_READWRITE));
gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_start);
gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_stop);
gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_get_size);
......@@ -439,6 +446,9 @@ gst_gnome_vfs_src_set_property (GObject * object, guint prop_id,
case ARG_IRADIO_MODE:
src->iradio_mode = g_value_get_boolean (value);
break;
case ARG_RANDOM_ACCESS:
src->random_access = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
......@@ -475,6 +485,9 @@ gst_gnome_vfs_src_get_property (GObject * object, guint prop_id, GValue * value,
case ARG_IRADIO_TITLE:
g_value_set_string (value, src->iradio_title);
break;
case ARG_RANDOM_ACCESS:
g_value_set_boolean (value, src->random_access);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
......@@ -662,7 +675,6 @@ gst_gnome_vfs_src_create (GstBaseSrc * basesrc, guint64 offset, guint size,
gst_buffer_set_caps (buf, src->icy_caps);
data = GST_BUFFER_DATA (buf);
GST_BUFFER_OFFSET (buf) = src->curoffset;
res = gnome_vfs_read (src->handle, data, size, &readbytes);
......@@ -670,11 +682,11 @@ gst_gnome_vfs_src_create (GstBaseSrc * basesrc, guint64 offset, guint size,
&& readbytes == 0)))
goto eos;
GST_BUFFER_SIZE (buf) = readbytes;
if (G_UNLIKELY (res != GNOME_VFS_OK))
goto read_failed;
GST_BUFFER_OFFSET (buf) = src->curoffset;
GST_BUFFER_SIZE (buf) = readbytes;
src->curoffset += readbytes;
/* we're done, return the buffer */
......@@ -734,7 +746,7 @@ gst_gnome_vfs_src_check_get_range (GstBaseSrc * basesrc)
return FALSE;
}
if (gnome_vfs_uri_is_local (src->uri)) {
if (gnome_vfs_uri_is_local (src->uri) || src->random_access) {
GST_LOG_OBJECT (src, "local URI (%s), assuming random access is possible",
GST_STR_NULL (src->uri_name));
return TRUE;
......@@ -822,11 +834,16 @@ gst_gnome_vfs_src_start (GstBaseSrc * basesrc)
if (src->uri != NULL) {
GnomeVFSOpenMode mode;
if (src->random_access)
mode = GNOME_VFS_OPEN_READ | GNOME_VFS_OPEN_RANDOM;
else
mode = GNOME_VFS_OPEN_READ;
/* this can block... */
mode = GNOME_VFS_OPEN_READ;
res = gnome_vfs_open_uri (&src->handle, src->uri, mode);
if (res != GNOME_VFS_OK)
if (res != GNOME_VFS_OK) {
goto open_failed;
}
src->own_handle = TRUE;
} else if (!src->handle) {
goto no_filename;
......@@ -882,7 +899,13 @@ gst_gnome_vfs_src_stop (GstBaseSrc * basesrc)
gst_gnome_vfs_src_pop_callbacks (src);
if (src->own_handle) {
gnome_vfs_close (src->handle);
GnomeVFSResult res;
res = gnome_vfs_close (src->handle);
if (res != GNOME_VFS_OK) {
GST_ELEMENT_ERROR (src, RESOURCE, CLOSE, (NULL),
("Could not close vfs handle: %s", gnome_vfs_result_to_string (res)));
}
src->handle = NULL;
}
src->curoffset = 0;
......
......@@ -73,6 +73,9 @@ struct _GstGnomeVFSSrc
gchar *iradio_genre;
gchar *iradio_url;
gchar *iradio_title;
/* random acces read mode */
gboolean random_access;
};
struct _GstGnomeVFSSrcClass
......
......@@ -7,6 +7,7 @@ SUBDIRS = \
tag \
audio \
cdda \
fft \
floatcast \
netbuffer \
pbutils \
......
......@@ -73,7 +73,7 @@ struct _GstAudioFilter {
struct _GstAudioFilterClass {
GstBaseTransformClass basetransformclass;
/* virtual function, called whenever the format changes */
/* virtual function, called whenever the format changes */
gboolean (*setup) (GstAudioFilter * filter, GstRingBufferSpec * format);
/*< private >*/
......
......@@ -2738,7 +2738,6 @@ G_BEGIN_DECLS{ \
}G_END_DECLS
/*** plugin initialization ***/
#define TYPE_FIND_REGISTER(plugin,name,rank,func,ext,caps,priv,notify) \
......@@ -2746,6 +2745,8 @@ G_BEGIN_DECLS{\
if (!gst_type_find_register (plugin, name, rank, func, ext, caps, priv, notify))\
return FALSE; \
}G_END_DECLS
static gboolean
plugin_init (GstPlugin * plugin)
{
......
......@@ -430,8 +430,8 @@ volume_process_int16 (GstVolume * this, gpointer bytes, guint n_bytes)
/* FIXME: need oil_scalarmultiply_s16_ns ?
* https://bugs.freedesktop.org/show_bug.cgi?id=7060
* code below
* - crashes for volume<1.0
* - is not faster
* - crashes :/
* - real_vol_i is scaled by VOLUME_UNITY_INT16 and needs the bitshift
* time gst-launch 2>/dev/null audiotestsrc wave=7 num-buffers=100 ! volume volume=1.5 ! fakesink
*/
oil_scalarmult_s16 (data, 0, data, 0,
......@@ -448,8 +448,7 @@ volume_process_int16_clamp (GstVolume * this, gpointer bytes, guint n_bytes)
num_samples = n_bytes / sizeof (gint16);
/* FIXME: need... liboil...
* oil_scalarmultiply_s16_ns ?
/* FIXME: oil_scalarmultiply_s16_ns ?
* https://bugs.freedesktop.org/show_bug.cgi?id=7060
*/
for (i = 0; i < num_samples; i++) {
......@@ -513,10 +512,6 @@ volume_transform_ip (GstBaseTransform * base, GstBuffer * outbuf)
GstVolume *this = GST_VOLUME (base);
GstClockTime timestamp;
/* don't process data in passthrough-mode */
if (gst_base_transform_is_passthrough (base))
return GST_FLOW_OK;
/* FIXME: if controllers are bound, subdivide GST_BUFFER_SIZE into small
* chunks for smooth fades, what is small? 1/10th sec.
*/
......@@ -530,6 +525,10 @@ volume_transform_ip (GstBaseTransform * base, GstBuffer * outbuf)
if (GST_CLOCK_TIME_IS_VALID (timestamp))
gst_object_sync_values (G_OBJECT (this), timestamp);
/* don't process data in passthrough-mode */
if (gst_base_transform_is_passthrough (base))
return GST_FLOW_OK;
this->process (this, GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf));
return GST_FLOW_OK;
......
......@@ -9,7 +9,7 @@ Description: Streaming media framework, base plugins libraries, uninstalled
Version: @VERSION@
Requires: gstreamer-@GST_MAJORMINOR@
Libs: -L${libdir}/audio -L${libdir}/cdda -L${libdir}/floatcast -L${libdir}/interfaces -L${libdir}/netbuffer -L${libdir}/riff -L${libdir}/rtp -L${libdir}/rtsp -L${libdir}/sdp -L${libdir}/tag -L${libdir}/pbutils -L${libdir}/video
Libs: -L${libdir}/audio -L${libdir}/cdda -L${libdir}/fft -L${libdir}/floatcast -L${libdir}/interfaces -L${libdir}/netbuffer -L${libdir}/riff -L${libdir}/rtp -L${libdir}/rtsp -L${libdir}/sdp -L${libdir}/tag -L${libdir}/pbutils -L${libdir}/video
Cflags: -I${includedir}
libraries=audio cdda floatcast interfaces netbuffer riff tag pbutils video
libraries=audio cdda fft floatcast interfaces netbuffer riff tag pbutils video
......@@ -11,4 +11,4 @@ Version: @VERSION@
Libs: -L${libdir}
Cflags: -I${includedir}
libraries=audio cdda floatcast interfaces netbuffer riff rtp tag pbutils video
libraries=audio cdda fft floatcast interfaces netbuffer riff rtp tag pbutils video
......@@ -721,7 +721,7 @@ gst_v4lsrc_buffer_new (GstV4lSrc * v4lsrc, gint num)
if (timestamp > latency)
timestamp -= latency;
else
timestamp = 0;
timestamp = GST_CLOCK_TIME_NONE;
GST_BUFFER_TIMESTAMP (buf) = timestamp;
GST_BUFFER_DURATION (buf) = duration;
......
......@@ -4,6 +4,7 @@ else
FT2_SUBDIRS =
endif
SUBDIRS = $(FT2_SUBDIRS) volume
SUBDIRS = $(FT2_SUBDIRS) volume xerror
DIST_SUBDIRS = seek volume xerror
DIST_SUBDIRS = seek volume
......@@ -39,7 +39,7 @@
#define GST_LICENSE "LGPL"
/* package name in plugins */
#define GST_PACKAGE_NAME "GStreamer Base Plug-ins source release"
#define GST_PACKAGE_NAME "GStreamer Base Plug-ins CVS/prerelease"
/* package origin */
#define GST_PACKAGE_ORIGIN "Unknown package origin"
......@@ -211,13 +211,13 @@
#undef PACKAGE_NAME "GStreamer Base Plug-ins"
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING "GStreamer Base Plug-ins 0.10.14"
#undef PACKAGE_STRING "GStreamer Base Plug-ins 0.10.14.1"
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME "gst-plugins-base"
/* Define to the version of this package. */
#undef PACKAGE_VERSION "0.10.14"
#undef PACKAGE_VERSION "0.10.14.1"
/* directory where plugins are located */
#undef PLUGINDIR
......@@ -241,7 +241,7 @@
#undef STDC_HEADERS
/* Version number of package */
#define VERSION "0.10.14"
#define VERSION "0.10.14.1"
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
......@@ -256,4 +256,4 @@
#undef inline
#endif
#define GST_INSTALL_PLUGINS_HELPER "/home/jan/.install/libexec/gst-install-plugins-helper"
#define GST_INSTALL_PLUGINS_HELPER "/usr/bin/gnome-codec-install"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment