cdda: rename GstCddaBaseSrc to GstAudioCdSrc and move to libgstaudio

Another mini-lib down, to make space for new mini libs.

Remove bogus copyright line while at it.
This commit is contained in:
Tim-Philipp Müller 2011-09-24 19:22:11 +01:00
parent cead4ef818
commit dfc13ec632
21 changed files with 217 additions and 501 deletions

View file

@ -6,7 +6,6 @@ GST_PLUGINS_BASE_TOP := $(LOCAL_PATH)
GST_PLUGINS_BASE_BUILT_SOURCES := \
pkgconfig/gstreamer-app-0.10.pc \
pkgconfig/gstreamer-audio-0.10.pc \
pkgconfig/gstreamer-cdda-0.10.pc \
pkgconfig/gstreamer-fft-0.10.pc \
pkgconfig/gstreamer-interfaces-0.10.pc \
pkgconfig/gstreamer-pbutils-0.10.pc \
@ -19,7 +18,6 @@ GST_PLUGINS_BASE_BUILT_SOURCES := \
pkgconfig/gstreamer-video-0.10.pc \
pkgconfig/gstreamer-app-0.10-uninstalled.pc \
pkgconfig/gstreamer-audio-0.10-uninstalled.pc \
pkgconfig/gstreamer-cdda-0.10-uninstalled.pc \
pkgconfig/gstreamer-fft-0.10-uninstalled.pc \
pkgconfig/gstreamer-interfaces-0.10-uninstalled.pc \
pkgconfig/gstreamer-pbutils-0.10-uninstalled.pc \

View file

@ -904,7 +904,6 @@ gst-libs/Makefile
gst-libs/gst/Makefile
gst-libs/gst/audio/Makefile
gst-libs/gst/app/Makefile
gst-libs/gst/cdda/Makefile
gst-libs/gst/fft/Makefile
gst-libs/gst/interfaces/Makefile
gst-libs/gst/riff/Makefile
@ -921,8 +920,6 @@ pkgconfig/gstreamer-audio.pc
pkgconfig/gstreamer-audio-uninstalled.pc
pkgconfig/gstreamer-app.pc
pkgconfig/gstreamer-app-uninstalled.pc
pkgconfig/gstreamer-cdda.pc
pkgconfig/gstreamer-cdda-uninstalled.pc
pkgconfig/gstreamer-fft.pc
pkgconfig/gstreamer-fft-uninstalled.pc
pkgconfig/gstreamer-interfaces.pc

View file

@ -59,7 +59,6 @@ GTKDOC_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) -DGST_USE_UNSTABLE
GTKDOC_LIBS = \
$(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 \

View file

@ -43,6 +43,7 @@
<filename>-lgstaudio-&GST_MAJORMINOR;</filename> to the library flags.
</para>
<xi:include href="xml/gstaudio.xml" />
<xi:include href="xml/gstaudiocdsrc.xml" />
<xi:include href="xml/gstaudioclock.xml" />
<xi:include href="xml/gstaudiodecoder.xml" />
<xi:include href="xml/gstaudioencoder.xml" />
@ -57,16 +58,6 @@
<xi:include href="xml/gstaudioiec61937.xml" />
</chapter>
<chapter id="gstreamer-cdda">
<title>CDDA 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>-lgstcdda-&GST_MAJORMINOR;</filename> to the library flags.
</para>
<xi:include href="xml/gstcddabasesrc.xml" />
</chapter>
<chapter id="gstreamer-ffft">
<title>FFT Library</title>
<para>

View file

@ -149,6 +149,26 @@ GST_IS_AUDIO_CLOCK_CLASS
GST_AUDIO_CLOCK_CAST
</SECTION>
<SECTION>
<FILE>gstaudiocdsrc</FILE>
<INCLUDE>gst/audio/gstaudiocdsrc.h</INCLUDE>
GstAudioCdSrc
GstAudioCdSrcClass
GstAudioCdSrcTrack
GstAudioCdSrcMode
gst_audio_cd_src_add_track
<SUBSECTION Standard>
GST_TYPE_AUDIO_CD_SRC_MODE
gst_audio_cd_src_mode_get_type
GST_AUDIO_CD_SRC
GST_AUDIO_CD_SRC_CLASS
GST_AUDIO_CD_SRC_GET_CLASS
GST_IS_AUDIO_CD_SRC
GST_IS_AUDIO_CD_SRC_CLASS
GST_TYPE_AUDIO_CD_SRC
gst_audio_cd_src_get_type
</SECTION>
<SECTION>
<FILE>gstaudiodecoder</FILE>
<INCLUDE>gst/audio/gstaudiodecoder.h</INCLUDE>
@ -431,29 +451,6 @@ gst_audio_iec61937_frame_size
gst_audio_iec61937_payload
</SECTION>
# cdda
<SECTION>
<FILE>gstcddabasesrc</FILE>
<INCLUDE>gst/cdda/gstcddabasesrc.h</INCLUDE>
GstCddaBaseSrc
GstCddaBaseSrcClass
GstCddaBaseSrcTrack
GstCddaBaseSrcMode
gst_cdda_base_src_add_track
<SUBSECTION Standard>
GST_TYPE_CDDA_BASE_SRC_MODE
gst_cdda_base_src_mode_get_type
GST_CDDA_BASE_SRC
GST_CDDA_BASE_SRC_CLASS
GST_CDDA_BASE_SRC_GET_CLASS
GST_IS_CDDA_BASE_SRC
GST_IS_CDDA_BASE_SRC_CLASS
GST_TYPE_CDDA_BASE_SRC
gst_cdda_base_src_get_type
</SECTION>
# fft
<SECTION>

View file

@ -1,6 +1,8 @@
#include <gst/gst.h>
#include <gst/audio/gstaudiocdsrc.h>
gst_audio_cd_src_get_type
#include <gst/audio/gstaudioclock.h>
gst_audio_clock_get_type
#include <gst/audio/gstaudiodecoder.h>
@ -20,11 +22,6 @@ gst_audio_base_src_get_type
#include <gst/audio/gstaudioringbuffer.h>
gst_audio_ring_buffer_get_type
#include <gst/cdda/gstcddabasesrc.h>
gst_cdda_base_src_get_type
#include <gst/interfaces/colorbalance.h>
gst_color_balance_get_type
gst_color_balance_channel_get_type

View file

@ -1,11 +1,9 @@
# The interfaces directory has to be built before the others,
# otherwise some generated header files will be missing for the
# plugins in the other directories.
# Also, the tag directory has to be built before the cdda directory.
SUBDIRS = \
interfaces \
tag \
cdda \
fft \
rtp \
sdp \
@ -19,9 +17,7 @@ SUBDIRS = \
noinst_HEADERS = gettext.h gst-i18n-plugin.h
# dependencies:
audio: interfaces
cdda: tag
audio: interfaces tag
riff: tag audio

View file

@ -23,6 +23,7 @@ libgstaudio_@GST_MAJORMINOR@_la_SOURCES = \
gstaudioclock.c \
mixerutils.c \
multichannel.c \
gstaudiocdsrc.c \
gstaudiodecoder.c \
gstaudioencoder.c \
gstaudiobasesink.c \
@ -39,6 +40,7 @@ libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
gstaudioringbuffer.h \
gstaudioclock.h \
gstaudiofilter.h \
gstaudiocdsrc.h \
gstaudiodecoder.h \
gstaudioencoder.h \
gstaudiobasesink.h \
@ -54,7 +56,8 @@ nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
libgstaudio_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
libgstaudio_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la
libgstaudio_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
include $(top_srcdir)/common/gst-glib-gen.mak

View file

@ -1,5 +1,4 @@
/* GStreamer
* Copyright (C) 1999 Erik Walthinsen <omega@cse.ogi.edu>
/* GStreamer Audio CD Source Base Class
* Copyright (C) 2005 Tim-Philipp Müller <tim centricular net>
*
* This library is free software; you can redistribute it and/or
@ -36,17 +35,18 @@
*/
/**
* SECTION:gstcddabasesrc
* @short_description: Base class for CD digital audio (CDDA) sources
* SECTION:gstaudiocdsrc
* @short_description: Base class for Audio CD sources
*
* <refsect2>
* <para>
* Provides a base class for CDDA sources, which handles things like seeking,
* querying, discid calculation, tags, and buffer timestamping.
* Provides a base class for CD digital audio (CDDA) sources, which handles
* things like seeking, querying, discid calculation, tags, and buffer
* timestamping.
* </para>
* <title>Using GstCddaBaseSrc-based elements in applications</title>
* <title>Using GstAudioCdSrc-based elements in applications</title>
* <para>
* GstCddaBaseSrc registers two #GstFormat<!-- -->s of its own, namely
* GstAudioCdSrc registers two #GstFormat<!-- -->s of its own, namely
* the "track" format and the "sector" format. Applications will usually
* only find the "track" format interesting. You can retrieve that #GstFormat
* for use in seek events or queries with gst_format_get_by_nick("track").
@ -88,12 +88,13 @@
#include <string.h>
#include <stdlib.h> /* for strtol */
#include <gst/tag/tag.h>
#include <gst/audio/audio.h>
#include "gstcddabasesrc.h"
#include "gstaudiocdsrc.h"
#include "gst/gst-i18n-plugin.h"
GST_DEBUG_CATEGORY_STATIC (gst_cdda_base_src_debug);
#define GST_CAT_DEFAULT gst_cdda_base_src_debug
GST_DEBUG_CATEGORY_STATIC (gst_audio_cd_src_debug);
#define GST_CAT_DEFAULT gst_audio_cd_src_debug
#define DEFAULT_DEVICE "/dev/cdrom"
@ -115,31 +116,31 @@ enum
ARG_TOC_BIAS
};
static void gst_cdda_base_src_uri_handler_init (gpointer g_iface,
static void gst_audio_cd_src_uri_handler_init (gpointer g_iface,
gpointer iface_data);
static void gst_cdda_base_src_get_property (GObject * object, guint prop_id,
static void gst_audio_cd_src_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
static void gst_cdda_base_src_set_property (GObject * object, guint prop_id,
static void gst_audio_cd_src_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
static void gst_cdda_base_src_finalize (GObject * obj);
static gboolean gst_cdda_base_src_query (GstBaseSrc * src, GstQuery * query);
static gboolean gst_cdda_base_src_handle_event (GstBaseSrc * basesrc,
static void gst_audio_cd_src_finalize (GObject * obj);
static gboolean gst_audio_cd_src_query (GstBaseSrc * src, GstQuery * query);
static gboolean gst_audio_cd_src_handle_event (GstBaseSrc * basesrc,
GstEvent * event);
static gboolean gst_cdda_base_src_do_seek (GstBaseSrc * basesrc,
static gboolean gst_audio_cd_src_do_seek (GstBaseSrc * basesrc,
GstSegment * segment);
static gboolean gst_cdda_base_src_start (GstBaseSrc * basesrc);
static gboolean gst_cdda_base_src_stop (GstBaseSrc * basesrc);
static GstFlowReturn gst_cdda_base_src_create (GstPushSrc * pushsrc,
static gboolean gst_audio_cd_src_start (GstBaseSrc * basesrc);
static gboolean gst_audio_cd_src_stop (GstBaseSrc * basesrc);
static GstFlowReturn gst_audio_cd_src_create (GstPushSrc * pushsrc,
GstBuffer ** buf);
static gboolean gst_cdda_base_src_is_seekable (GstBaseSrc * basesrc);
static void gst_cdda_base_src_update_duration (GstCddaBaseSrc * src);
static void gst_cdda_base_src_set_index (GstElement * src, GstIndex * index);
static GstIndex *gst_cdda_base_src_get_index (GstElement * src);
static gboolean gst_audio_cd_src_is_seekable (GstBaseSrc * basesrc);
static void gst_audio_cd_src_update_duration (GstAudioCdSrc * src);
static void gst_audio_cd_src_set_index (GstElement * src, GstIndex * index);
static GstIndex *gst_audio_cd_src_get_index (GstElement * src);
#define gst_cdda_base_src_parent_class parent_class
G_DEFINE_TYPE_WITH_CODE (GstCddaBaseSrc, gst_cdda_base_src, GST_TYPE_PUSH_SRC,
#define gst_audio_cd_src_parent_class parent_class
G_DEFINE_TYPE_WITH_CODE (GstAudioCdSrc, gst_audio_cd_src, GST_TYPE_PUSH_SRC,
G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER,
gst_cdda_base_src_uri_handler_init));
gst_audio_cd_src_uri_handler_init));
#define SRC_CAPS \
"audio/x-raw, " \
@ -147,7 +148,7 @@ G_DEFINE_TYPE_WITH_CODE (GstCddaBaseSrc, gst_cdda_base_src, GST_TYPE_PUSH_SRC,
"rate = (int) 44100, " \
"channels = (int) 2" \
static GstStaticPadTemplate gst_cdda_base_src_src_template =
static GstStaticPadTemplate gst_audio_cd_src_src_template =
GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
@ -159,25 +160,25 @@ static GstFormat track_format;
static GstFormat sector_format;
GType
gst_cdda_base_src_mode_get_type (void)
gst_audio_cd_src_mode_get_type (void)
{
static GType mode_type; /* 0 */
static const GEnumValue modes[] = {
{GST_CDDA_BASE_SRC_MODE_NORMAL, "Stream consists of a single track",
{GST_AUDIO_CD_SRC_MODE_NORMAL, "Stream consists of a single track",
"normal"},
{GST_CDDA_BASE_SRC_MODE_CONTINUOUS, "Stream consists of the whole disc",
{GST_AUDIO_CD_SRC_MODE_CONTINUOUS, "Stream consists of the whole disc",
"continuous"},
{0, NULL, NULL}
};
if (mode_type == 0)
mode_type = g_enum_register_static ("GstCddaBaseSrcMode", modes);
mode_type = g_enum_register_static ("GstAudioCdSrcMode", modes);
return mode_type;
}
static void
gst_cdda_base_src_class_init (GstCddaBaseSrcClass * klass)
gst_audio_cd_src_class_init (GstAudioCdSrcClass * klass)
{
GstElementClass *element_class;
GstPushSrcClass *pushsrc_class;
@ -189,8 +190,8 @@ gst_cdda_base_src_class_init (GstCddaBaseSrcClass * klass)
basesrc_class = (GstBaseSrcClass *) klass;
pushsrc_class = (GstPushSrcClass *) klass;
GST_DEBUG_CATEGORY_INIT (gst_cdda_base_src_debug, "cddabasesrc", 0,
"CDDA Base Source");
GST_DEBUG_CATEGORY_INIT (gst_audio_cd_src_debug, "audiocdsrc", 0,
"Audio CD source base class");
/* our very own formats */
track_format = gst_format_register ("track", "CD track");
@ -204,16 +205,16 @@ gst_cdda_base_src_class_init (GstCddaBaseSrcClass * klass)
gst_tag_register (GST_TAG_CDDA_TRACK_TAGS, GST_TAG_FLAG_META, GST_TYPE_TAG_LIST, "track-tags", "CDDA taglist for one track", gst_tag_merge_use_first); ///////////// FIXME: right function??? ///////
#endif
gobject_class->set_property = gst_cdda_base_src_set_property;
gobject_class->get_property = gst_cdda_base_src_get_property;
gobject_class->finalize = gst_cdda_base_src_finalize;
gobject_class->set_property = gst_audio_cd_src_set_property;
gobject_class->get_property = gst_audio_cd_src_get_property;
gobject_class->finalize = gst_audio_cd_src_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_DEVICE,
g_param_spec_string ("device", "Device", "CD device location",
NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MODE,
g_param_spec_enum ("mode", "Mode", "Mode", GST_TYPE_CDDA_BASE_SRC_MODE,
GST_CDDA_BASE_SRC_MODE_NORMAL,
g_param_spec_enum ("mode", "Mode", "Mode", GST_TYPE_AUDIO_CD_SRC_MODE,
GST_AUDIO_CD_SRC_MODE_NORMAL,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_TRACK,
@ -239,38 +240,37 @@ gst_cdda_base_src_class_init (GstCddaBaseSrcClass * klass)
#endif
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&gst_cdda_base_src_src_template));
gst_static_pad_template_get (&gst_audio_cd_src_src_template));
element_class->set_index = GST_DEBUG_FUNCPTR (gst_cdda_base_src_set_index);
element_class->get_index = GST_DEBUG_FUNCPTR (gst_cdda_base_src_get_index);
element_class->set_index = GST_DEBUG_FUNCPTR (gst_audio_cd_src_set_index);
element_class->get_index = GST_DEBUG_FUNCPTR (gst_audio_cd_src_get_index);
basesrc_class->start = GST_DEBUG_FUNCPTR (gst_cdda_base_src_start);
basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_cdda_base_src_stop);
basesrc_class->query = GST_DEBUG_FUNCPTR (gst_cdda_base_src_query);
basesrc_class->event = GST_DEBUG_FUNCPTR (gst_cdda_base_src_handle_event);
basesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_cdda_base_src_do_seek);
basesrc_class->is_seekable =
GST_DEBUG_FUNCPTR (gst_cdda_base_src_is_seekable);
basesrc_class->start = GST_DEBUG_FUNCPTR (gst_audio_cd_src_start);
basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_audio_cd_src_stop);
basesrc_class->query = GST_DEBUG_FUNCPTR (gst_audio_cd_src_query);
basesrc_class->event = GST_DEBUG_FUNCPTR (gst_audio_cd_src_handle_event);
basesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_audio_cd_src_do_seek);
basesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_audio_cd_src_is_seekable);
pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_cdda_base_src_create);
pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_audio_cd_src_create);
}
static void
gst_cdda_base_src_init (GstCddaBaseSrc * src)
gst_audio_cd_src_init (GstAudioCdSrc * src)
{
/* we're not live and we operate in time */
gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
gst_base_src_set_live (GST_BASE_SRC (src), FALSE);
src->device = NULL;
src->mode = GST_CDDA_BASE_SRC_MODE_NORMAL;
src->mode = GST_AUDIO_CD_SRC_MODE_NORMAL;
src->uri_track = -1;
}
static void
gst_cdda_base_src_finalize (GObject * obj)
gst_audio_cd_src_finalize (GObject * obj)
{
GstCddaBaseSrc *cddasrc = GST_CDDA_BASE_SRC (obj);
GstAudioCdSrc *cddasrc = GST_AUDIO_CD_SRC (obj);
g_free (cddasrc->uri);
g_free (cddasrc->device);
@ -282,7 +282,7 @@ gst_cdda_base_src_finalize (GObject * obj)
}
static void
gst_cdda_base_src_set_device (GstCddaBaseSrc * src, const gchar * device)
gst_audio_cd_src_set_device (GstAudioCdSrc * src, const gchar * device)
{
if (src->device)
g_free (src->device);
@ -314,10 +314,10 @@ gst_cdda_base_src_set_device (GstCddaBaseSrc * src, const gchar * device)
}
static void
gst_cdda_base_src_set_property (GObject * object, guint prop_id,
gst_audio_cd_src_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (object);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (object);
GST_OBJECT_LOCK (src);
@ -329,7 +329,7 @@ gst_cdda_base_src_set_property (GObject * object, guint prop_id,
case ARG_DEVICE:{
const gchar *dev = g_value_get_string (value);
gst_cdda_base_src_set_device (src, dev);
gst_audio_cd_src_set_device (src, dev);
break;
}
case ARG_TRACK:{
@ -363,11 +363,11 @@ gst_cdda_base_src_set_property (GObject * object, guint prop_id,
}
static void
gst_cdda_base_src_get_property (GObject * object, guint prop_id,
gst_audio_cd_src_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
GstCddaBaseSrcClass *klass = GST_CDDA_BASE_SRC_GET_CLASS (object);
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (object);
GstAudioCdSrcClass *klass = GST_AUDIO_CD_SRC_GET_CLASS (object);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (object);
GST_OBJECT_LOCK (src);
@ -415,7 +415,7 @@ gst_cdda_base_src_get_property (GObject * object, guint prop_id,
}
static gint
gst_cdda_base_src_get_track_from_sector (GstCddaBaseSrc * src, gint sector)
gst_audio_cd_src_get_track_from_sector (GstAudioCdSrc * src, gint sector)
{
gint i;
@ -427,7 +427,7 @@ gst_cdda_base_src_get_track_from_sector (GstCddaBaseSrc * src, gint sector)
}
static gboolean
gst_cdda_base_src_convert (GstCddaBaseSrc * src, GstFormat src_format,
gst_audio_cd_src_convert (GstAudioCdSrc * src, GstFormat src_format,
gint64 src_val, GstFormat dest_format, gint64 * dest_val)
{
gboolean started;
@ -489,7 +489,7 @@ gst_cdda_base_src_convert (GstCddaBaseSrc * src, GstFormat src_format,
} else if (dest_format == track_format) {
if (!started)
goto not_started;
*dest_val = gst_cdda_base_src_get_track_from_sector (src, sector);
*dest_val = gst_audio_cd_src_get_track_from_sector (src, sector);
} else {
goto unknown_format;
}
@ -524,7 +524,7 @@ gst_cdda_base_src_convert (GstCddaBaseSrc * src, GstFormat src_format,
} else if (dest_format == track_format) {
if (!started)
goto not_started;
*dest_val = gst_cdda_base_src_get_track_from_sector (src, sector);
*dest_val = gst_audio_cd_src_get_track_from_sector (src, sector);
} else {
goto unknown_format;
}
@ -566,9 +566,9 @@ not_started:
}
static gboolean
gst_cdda_base_src_query (GstBaseSrc * basesrc, GstQuery * query)
gst_audio_cd_src_query (GstBaseSrc * basesrc, GstQuery * query)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (basesrc);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (basesrc);
gboolean started;
started = GST_OBJECT_FLAG_IS_SET (basesrc, GST_BASE_SRC_STARTED);
@ -598,7 +598,7 @@ gst_cdda_base_src_query (GstBaseSrc * basesrc, GstQuery * query)
if (src->cur_track < 0 || src->cur_track >= src->num_tracks)
return FALSE;
if (src->mode == GST_CDDA_BASE_SRC_MODE_NORMAL) {
if (src->mode == GST_AUDIO_CD_SRC_MODE_NORMAL) {
sectors = src->tracks[src->cur_track].end -
src->tracks[src->cur_track].start + 1;
} else {
@ -607,7 +607,7 @@ gst_cdda_base_src_query (GstBaseSrc * basesrc, GstQuery * query)
}
/* ... and convert into final format */
if (!gst_cdda_base_src_convert (src, sector_format, sectors,
if (!gst_audio_cd_src_convert (src, sector_format, sectors,
dest_format, &dest_val)) {
return FALSE;
}
@ -639,13 +639,13 @@ gst_cdda_base_src_query (GstBaseSrc * basesrc, GstQuery * query)
if (src->cur_track < 0 || src->cur_track >= src->num_tracks)
return FALSE;
if (src->mode == GST_CDDA_BASE_SRC_MODE_NORMAL) {
if (src->mode == GST_AUDIO_CD_SRC_MODE_NORMAL) {
pos_sector = src->cur_sector - src->tracks[src->cur_track].start;
} else {
pos_sector = src->cur_sector - src->tracks[0].start;
}
if (!gst_cdda_base_src_convert (src, sector_format, pos_sector,
if (!gst_audio_cd_src_convert (src, sector_format, pos_sector,
dest_format, &dest_val)) {
return FALSE;
}
@ -663,7 +663,7 @@ gst_cdda_base_src_query (GstBaseSrc * basesrc, GstQuery * query)
gst_query_parse_convert (query, &src_format, &src_val, &dest_format,
NULL);
if (!gst_cdda_base_src_convert (src, src_format, src_val, dest_format,
if (!gst_audio_cd_src_convert (src, src_format, src_val, dest_format,
&dest_val)) {
return FALSE;
}
@ -681,21 +681,21 @@ gst_cdda_base_src_query (GstBaseSrc * basesrc, GstQuery * query)
}
static gboolean
gst_cdda_base_src_is_seekable (GstBaseSrc * basesrc)
gst_audio_cd_src_is_seekable (GstBaseSrc * basesrc)
{
return TRUE;
}
static gboolean
gst_cdda_base_src_do_seek (GstBaseSrc * basesrc, GstSegment * segment)
gst_audio_cd_src_do_seek (GstBaseSrc * basesrc, GstSegment * segment)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (basesrc);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (basesrc);
gint64 seek_sector;
GST_DEBUG_OBJECT (src, "segment %" GST_TIME_FORMAT "-%" GST_TIME_FORMAT,
GST_TIME_ARGS (segment->start), GST_TIME_ARGS (segment->stop));
if (!gst_cdda_base_src_convert (src, GST_FORMAT_TIME, segment->start,
if (!gst_audio_cd_src_convert (src, GST_FORMAT_TIME, segment->start,
sector_format, &seek_sector)) {
GST_WARNING_OBJECT (src, "conversion failed");
return FALSE;
@ -705,10 +705,10 @@ gst_cdda_base_src_do_seek (GstBaseSrc * basesrc, GstSegment * segment)
g_assert (src->cur_track >= 0 && src->cur_track < src->num_tracks);
switch (src->mode) {
case GST_CDDA_BASE_SRC_MODE_NORMAL:
case GST_AUDIO_CD_SRC_MODE_NORMAL:
seek_sector += src->tracks[src->cur_track].start;
break;
case GST_CDDA_BASE_SRC_MODE_CONTINUOUS:
case GST_AUDIO_CD_SRC_MODE_CONTINUOUS:
seek_sector += src->tracks[0].start;
break;
default:
@ -723,7 +723,7 @@ gst_cdda_base_src_do_seek (GstBaseSrc * basesrc, GstSegment * segment)
}
static gboolean
gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
gst_audio_cd_src_handle_track_seek (GstAudioCdSrc * src, gdouble rate,
GstSeekFlags flags, GstSeekType start_type, gint64 start,
GstSeekType stop_type, gint64 stop)
{
@ -734,7 +734,7 @@ gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
gint64 start_time = -1;
gint64 stop_time = -1;
if (src->mode != GST_CDDA_BASE_SRC_MODE_CONTINUOUS) {
if (src->mode != GST_AUDIO_CD_SRC_MODE_CONTINUOUS) {
GST_DEBUG_OBJECT (src, "segment seek in track format is only "
"supported in CONTINUOUS mode, not in mode %d", src->mode);
return FALSE;
@ -742,7 +742,7 @@ gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
switch (start_type) {
case GST_SEEK_TYPE_SET:
if (!gst_cdda_base_src_convert (src, track_format, start,
if (!gst_audio_cd_src_convert (src, track_format, start,
GST_FORMAT_TIME, &start_time)) {
GST_DEBUG_OBJECT (src, "cannot convert track %d to time",
(gint) start);
@ -750,7 +750,7 @@ gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
}
break;
case GST_SEEK_TYPE_END:
if (!gst_cdda_base_src_convert (src, track_format,
if (!gst_audio_cd_src_convert (src, track_format,
src->num_tracks - start - 1, GST_FORMAT_TIME, &start_time)) {
GST_DEBUG_OBJECT (src, "cannot convert track %d to time",
(gint) start);
@ -767,7 +767,7 @@ gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
switch (stop_type) {
case GST_SEEK_TYPE_SET:
if (!gst_cdda_base_src_convert (src, track_format, stop,
if (!gst_audio_cd_src_convert (src, track_format, stop,
GST_FORMAT_TIME, &stop_time)) {
GST_DEBUG_OBJECT (src, "cannot convert track %d to time",
(gint) stop);
@ -775,7 +775,7 @@ gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
}
break;
case GST_SEEK_TYPE_END:
if (!gst_cdda_base_src_convert (src, track_format,
if (!gst_audio_cd_src_convert (src, track_format,
src->num_tracks - stop - 1, GST_FORMAT_TIME, &stop_time)) {
GST_DEBUG_OBJECT (src, "cannot convert track %d to time",
(gint) stop);
@ -828,7 +828,7 @@ gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
src->uri_track = -1;
src->prev_track = -1;
gst_cdda_base_src_update_duration (src);
gst_audio_cd_src_update_duration (src);
} else {
GST_DEBUG_OBJECT (src, "is current track, just seeking back to start");
}
@ -842,9 +842,9 @@ gst_cdda_base_src_handle_track_seek (GstCddaBaseSrc * src, gdouble rate,
}
static gboolean
gst_cdda_base_src_handle_event (GstBaseSrc * basesrc, GstEvent * event)
gst_audio_cd_src_handle_event (GstBaseSrc * basesrc, GstEvent * event)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (basesrc);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (basesrc);
gboolean ret = FALSE;
GST_LOG_OBJECT (src, "handling %s event", GST_EVENT_TYPE_NAME (event));
@ -871,7 +871,7 @@ gst_cdda_base_src_handle_event (GstBaseSrc * basesrc, GstEvent * event)
}
if (format == track_format) {
ret = gst_cdda_base_src_handle_track_seek (src, rate, flags,
ret = gst_audio_cd_src_handle_track_seek (src, rate, flags,
start_type, start, stop_type, stop);
} else {
GST_LOG_OBJECT (src, "let base class handle seek in %s format",
@ -892,13 +892,13 @@ gst_cdda_base_src_handle_event (GstBaseSrc * basesrc, GstEvent * event)
}
static GstURIType
gst_cdda_base_src_uri_get_type (GType type)
gst_audio_cd_src_uri_get_type (GType type)
{
return GST_URI_SRC;
}
static gchar **
gst_cdda_base_src_uri_get_protocols (GType type)
gst_audio_cd_src_uri_get_protocols (GType type)
{
static gchar *protocols[] = { (char *) "cdda", NULL };
@ -906,9 +906,9 @@ gst_cdda_base_src_uri_get_protocols (GType type)
}
static const gchar *
gst_cdda_base_src_uri_get_uri (GstURIHandler * handler)
gst_audio_cd_src_uri_get_uri (GstURIHandler * handler)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (handler);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (handler);
GST_OBJECT_LOCK (src);
@ -933,9 +933,9 @@ gst_cdda_base_src_uri_get_uri (GstURIHandler * handler)
/* We accept URIs of the format cdda://(device#track)|(track) */
static gboolean
gst_cdda_base_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
gst_audio_cd_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (handler);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (handler);
gchar *protocol;
const gchar *location;
gchar *track_number;
@ -961,7 +961,7 @@ gst_cdda_base_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
track_number = nuri + (track_number - uri);
*track_number = '\0';
device = gst_uri_get_location (nuri);
gst_cdda_base_src_set_device (src, device);
gst_audio_cd_src_set_device (src, device);
g_free (device);
src->uri_track = strtol (track_number + 1, NULL, 10);
g_free (nuri);
@ -1003,20 +1003,20 @@ failed:
}
static void
gst_cdda_base_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
gst_audio_cd_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
{
GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface;
iface->get_type = gst_cdda_base_src_uri_get_type;
iface->get_uri = gst_cdda_base_src_uri_get_uri;
iface->set_uri = gst_cdda_base_src_uri_set_uri;
iface->get_protocols = gst_cdda_base_src_uri_get_protocols;
iface->get_type = gst_audio_cd_src_uri_get_type;
iface->get_uri = gst_audio_cd_src_uri_get_uri;
iface->set_uri = gst_audio_cd_src_uri_set_uri;
iface->get_protocols = gst_audio_cd_src_uri_get_protocols;
}
/**
* gst_cdda_base_src_add_track:
* @src: a #GstCddaBaseSrc
* @track: address of #GstCddaBaseSrcTrack to add
* gst_audio_cd_src_add_track:
* @src: a #GstAudioCdSrc
* @track: address of #GstAudioCdSrcTrack to add
*
* CDDA sources use this function from their start vfunc to announce the
* available data and audio tracks to the base source class. The caller
@ -1027,9 +1027,9 @@ gst_cdda_base_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
*/
gboolean
gst_cdda_base_src_add_track (GstCddaBaseSrc * src, GstCddaBaseSrcTrack * track)
gst_audio_cd_src_add_track (GstAudioCdSrc * src, GstAudioCdSrcTrack * track)
{
g_return_val_if_fail (GST_IS_CDDA_BASE_SRC (src), FALSE);
g_return_val_if_fail (GST_IS_AUDIO_CD_SRC (src), FALSE);
g_return_val_if_fail (track != NULL, FALSE);
g_return_val_if_fail (track->num > 0, FALSE);
@ -1049,7 +1049,7 @@ gst_cdda_base_src_add_track (GstCddaBaseSrc * src, GstCddaBaseSrcTrack * track)
GST_OBJECT_LOCK (src);
++src->num_tracks;
src->tracks = g_renew (GstCddaBaseSrcTrack, src->tracks, src->num_tracks);
src->tracks = g_renew (GstAudioCdSrcTrack, src->tracks, src->num_tracks);
src->tracks[src->num_tracks - 1] = *track;
GST_OBJECT_UNLOCK (src);
@ -1058,7 +1058,7 @@ gst_cdda_base_src_add_track (GstCddaBaseSrc * src, GstCddaBaseSrcTrack * track)
}
static void
gst_cdda_base_src_update_duration (GstCddaBaseSrc * src)
gst_audio_cd_src_update_duration (GstAudioCdSrc * src)
{
GstBaseSrc *basesrc;
gint64 dur;
@ -1094,7 +1094,7 @@ cddb_sum (gint n)
}
static void
gst_cddabasesrc_calculate_musicbrainz_discid (GstCddaBaseSrc * src)
gst_audio_cd_src_calculate_musicbrainz_discid (GstAudioCdSrc * src)
{
GString *s;
GChecksum *sha;
@ -1190,7 +1190,7 @@ lba_to_msf (guint sector, guint * p_m, guint * p_s, guint * p_f, guint * p_secs)
}
static void
gst_cdda_base_src_calculate_cddb_id (GstCddaBaseSrc * src)
gst_audio_cd_src_calculate_cddb_id (GstAudioCdSrc * src)
{
GString *s;
guint first_sector = 0, last_sector = 0;
@ -1267,7 +1267,7 @@ gst_cdda_base_src_calculate_cddb_id (GstCddaBaseSrc * src)
}
static void
gst_cdda_base_src_add_tags (GstCddaBaseSrc * src)
gst_audio_cd_src_add_tags (GstAudioCdSrc * src)
{
gint i;
@ -1280,7 +1280,7 @@ gst_cdda_base_src_add_tags (GstCddaBaseSrc * src)
src->tracks[i].tags = gst_tag_list_new_empty ();
num_sectors = src->tracks[i].end - src->tracks[i].start + 1;
gst_cdda_base_src_convert (src, sector_format, num_sectors,
gst_audio_cd_src_convert (src, sector_format, num_sectors,
GST_FORMAT_TIME, &duration);
gst_tag_list_add (src->tracks[i].tags,
@ -1311,7 +1311,7 @@ gst_cdda_base_src_add_tags (GstCddaBaseSrc * src)
}
static void
gst_cdda_base_src_add_index_associations (GstCddaBaseSrc * src)
gst_audio_cd_src_add_index_associations (GstAudioCdSrc * src)
{
gint i;
@ -1329,9 +1329,9 @@ gst_cdda_base_src_add_index_associations (GstCddaBaseSrc * src)
}
static void
gst_cdda_base_src_set_index (GstElement * element, GstIndex * index)
gst_audio_cd_src_set_index (GstElement * element, GstIndex * index)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (element);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (element);
GstIndex *old;
GST_OBJECT_LOCK (element);
@ -1356,9 +1356,9 @@ gst_cdda_base_src_set_index (GstElement * element, GstIndex * index)
static GstIndex *
gst_cdda_base_src_get_index (GstElement * element)
gst_audio_cd_src_get_index (GstElement * element)
{
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (element);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (element);
GstIndex *index;
GST_OBJECT_LOCK (element);
@ -1370,11 +1370,11 @@ gst_cdda_base_src_get_index (GstElement * element)
}
static gint
gst_cdda_base_src_track_sort_func (gconstpointer a, gconstpointer b,
gst_audio_cd_src_track_sort_func (gconstpointer a, gconstpointer b,
gpointer foo)
{
GstCddaBaseSrcTrack *track_a = ((GstCddaBaseSrcTrack *) a);
GstCddaBaseSrcTrack *track_b = ((GstCddaBaseSrcTrack *) b);
GstAudioCdSrcTrack *track_a = ((GstAudioCdSrcTrack *) a);
GstAudioCdSrcTrack *track_b = ((GstAudioCdSrcTrack *) b);
/* sort data tracks to the end, and audio tracks by track number */
if (track_a->is_audio == track_b->is_audio)
@ -1388,10 +1388,10 @@ gst_cdda_base_src_track_sort_func (gconstpointer a, gconstpointer b,
}
static gboolean
gst_cdda_base_src_start (GstBaseSrc * basesrc)
gst_audio_cd_src_start (GstBaseSrc * basesrc)
{
GstCddaBaseSrcClass *klass = GST_CDDA_BASE_SRC_GET_CLASS (basesrc);
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (basesrc);
GstAudioCdSrcClass *klass = GST_AUDIO_CD_SRC_GET_CLASS (basesrc);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (basesrc);
gboolean ret;
gchar *device = NULL;
@ -1420,7 +1420,7 @@ gst_cdda_base_src_start (GstBaseSrc * basesrc)
if (!ret) {
GST_DEBUG_OBJECT (basesrc, "failed to open device");
/* subclass (should have) posted an error message with the details */
gst_cdda_base_src_stop (basesrc);
gst_audio_cd_src_stop (basesrc);
return FALSE;
}
@ -1428,13 +1428,13 @@ gst_cdda_base_src_start (GstBaseSrc * basesrc)
GST_DEBUG_OBJECT (src, "no tracks");
GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
(_("This CD has no audio tracks")), (NULL));
gst_cdda_base_src_stop (basesrc);
gst_audio_cd_src_stop (basesrc);
return FALSE;
}
/* need to calculate disc IDs before we ditch the data tracks */
gst_cdda_base_src_calculate_cddb_id (src);
gst_cddabasesrc_calculate_musicbrainz_discid (src);
gst_audio_cd_src_calculate_cddb_id (src);
gst_audio_cd_src_calculate_musicbrainz_discid (src);
#if 0
/* adjust sector offsets if necessary */
@ -1452,7 +1452,7 @@ gst_cdda_base_src_start (GstBaseSrc * basesrc)
src->num_all_tracks = src->num_tracks;
g_qsort_with_data (src->tracks, src->num_tracks,
sizeof (GstCddaBaseSrcTrack), gst_cdda_base_src_track_sort_func, NULL);
sizeof (GstAudioCdSrcTrack), gst_audio_cd_src_track_sort_func, NULL);
while (src->num_tracks > 0 && !src->tracks[src->num_tracks - 1].is_audio)
--src->num_tracks;
@ -1461,14 +1461,14 @@ gst_cdda_base_src_start (GstBaseSrc * basesrc)
GST_DEBUG_OBJECT (src, "no audio tracks");
GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
(_("This CD has no audio tracks")), (NULL));
gst_cdda_base_src_stop (basesrc);
gst_audio_cd_src_stop (basesrc);
return FALSE;
}
gst_cdda_base_src_add_tags (src);
gst_audio_cd_src_add_tags (src);
if (src->index && GST_INDEX_IS_WRITABLE (src->index))
gst_cdda_base_src_add_index_associations (src);
gst_audio_cd_src_add_index_associations (src);
src->cur_track = 0;
src->prev_track = -1;
@ -1477,19 +1477,19 @@ gst_cdda_base_src_start (GstBaseSrc * basesrc)
GST_LOG_OBJECT (src, "seek to track %d", src->uri_track);
src->cur_track = src->uri_track - 1;
src->uri_track = -1;
src->mode = GST_CDDA_BASE_SRC_MODE_NORMAL;
src->mode = GST_AUDIO_CD_SRC_MODE_NORMAL;
}
src->cur_sector = src->tracks[src->cur_track].start;
GST_LOG_OBJECT (src, "starting at sector %d", src->cur_sector);
gst_cdda_base_src_update_duration (src);
gst_audio_cd_src_update_duration (src);
return TRUE;
}
static void
gst_cdda_base_src_clear_tracks (GstCddaBaseSrc * src)
gst_audio_cd_src_clear_tracks (GstAudioCdSrc * src)
{
if (src->tracks != NULL) {
gint i;
@ -1507,16 +1507,16 @@ gst_cdda_base_src_clear_tracks (GstCddaBaseSrc * src)
}
static gboolean
gst_cdda_base_src_stop (GstBaseSrc * basesrc)
gst_audio_cd_src_stop (GstBaseSrc * basesrc)
{
GstCddaBaseSrcClass *klass = GST_CDDA_BASE_SRC_GET_CLASS (basesrc);
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (basesrc);
GstAudioCdSrcClass *klass = GST_AUDIO_CD_SRC_GET_CLASS (basesrc);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (basesrc);
g_assert (klass->close != NULL);
klass->close (src);
gst_cdda_base_src_clear_tracks (src);
gst_audio_cd_src_clear_tracks (src);
if (src->tags) {
gst_tag_list_free (src->tags);
@ -1531,10 +1531,10 @@ gst_cdda_base_src_stop (GstBaseSrc * basesrc)
static GstFlowReturn
gst_cdda_base_src_create (GstPushSrc * pushsrc, GstBuffer ** buffer)
gst_audio_cd_src_create (GstPushSrc * pushsrc, GstBuffer ** buffer)
{
GstCddaBaseSrcClass *klass = GST_CDDA_BASE_SRC_GET_CLASS (pushsrc);
GstCddaBaseSrc *src = GST_CDDA_BASE_SRC (pushsrc);
GstAudioCdSrcClass *klass = GST_AUDIO_CD_SRC_GET_CLASS (pushsrc);
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (pushsrc);
GstBuffer *buf;
gboolean eos;
@ -1545,12 +1545,12 @@ gst_cdda_base_src_create (GstPushSrc * pushsrc, GstBuffer ** buffer)
g_assert (klass->read_sector != NULL);
switch (src->mode) {
case GST_CDDA_BASE_SRC_MODE_NORMAL:
case GST_AUDIO_CD_SRC_MODE_NORMAL:
eos = (src->cur_sector > src->tracks[src->cur_track].end);
break;
case GST_CDDA_BASE_SRC_MODE_CONTINUOUS:
case GST_AUDIO_CD_SRC_MODE_CONTINUOUS:
eos = (src->cur_sector > src->tracks[src->num_tracks - 1].end);
src->cur_track = gst_cdda_base_src_get_track_from_sector (src,
src->cur_track = gst_audio_cd_src_get_track_from_sector (src,
src->cur_sector);
break;
default:
@ -1574,7 +1574,7 @@ gst_cdda_base_src_create (GstPushSrc * pushsrc, GstBuffer ** buffer)
gst_pad_push_event (GST_BASE_SRC_PAD (src), gst_event_new_tag (tags));
src->prev_track = src->cur_track;
gst_cdda_base_src_update_duration (src);
gst_audio_cd_src_update_duration (src);
g_object_notify (G_OBJECT (src), "track");
}

View file

@ -1,5 +1,4 @@
/* GStreamer
* Copyright (C) 1999 Erik Walthinsen <omega@cse.ogi.edu>
/* GStreamer Audio CD Source Base Class
* Copyright (C) 2005 Tim-Philipp Müller <tim centricular net>
*
* This library is free software; you can redistribute it and/or
@ -18,46 +17,42 @@
* Boston, MA 02111-1307, USA.
*/
#ifndef __GST_CDDA_BASE_SRC_H__
#define __GST_CDDA_BASE_SRC_H__
#ifndef __GST_AUDIO_CD_SRC_H__
#define __GST_AUDIO_CD_SRC_H__
#include <gst/gst.h>
#include <gst/base/gstpushsrc.h>
/* must include this for backwards-compatibility so the
* GST_TAG_CDDA_* defines are included. Remove in 0.11 */
#include <gst/tag/tag.h>
G_BEGIN_DECLS
#define GST_TYPE_CDDA_BASE_SRC (gst_cdda_base_src_get_type())
#define GST_CDDA_BASE_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_CDDA_BASE_SRC, GstCddaBaseSrc))
#define GST_CDDA_BASE_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_CDDA_BASE_SRC, GstCddaBaseSrcClass))
#define GST_IS_CDDA_BASE_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_CDDA_BASE_SRC))
#define GST_IS_CDDA_BASE_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_CDDA_BASE_SRC))
#define GST_CDDA_BASE_SRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_CDDA_BASE_SRC, GstCddaBaseSrcClass))
#define GST_TYPE_AUDIO_CD_SRC (gst_audio_cd_src_get_type())
#define GST_AUDIO_CD_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_AUDIO_CD_SRC, GstAudioCdSrc))
#define GST_AUDIO_CD_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_AUDIO_CD_SRC, GstAudioCdSrcClass))
#define GST_IS_AUDIO_CD_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_AUDIO_CD_SRC))
#define GST_IS_AUDIO_CD_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_AUDIO_CD_SRC))
#define GST_AUDIO_CD_SRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_AUDIO_CD_SRC, GstAudioCdSrcClass))
typedef struct _GstCddaBaseSrc GstCddaBaseSrc;
typedef struct _GstCddaBaseSrcClass GstCddaBaseSrcClass;
typedef struct _GstCddaBaseSrcTrack GstCddaBaseSrcTrack;
typedef struct _GstAudioCdSrc GstAudioCdSrc;
typedef struct _GstAudioCdSrcClass GstAudioCdSrcClass;
typedef struct _GstAudioCdSrcTrack GstAudioCdSrcTrack;
/**
* GstCddaBaseSrcMode:
* @GST_CDDA_BASE_SRC_MODE_NORMAL : each single track is a stream
* @GST_CDDA_BASE_SRC_MODE_CONTINUOUS : the entire disc is a single stream
* GstAudioCdSrcMode:
* @GST_AUDIO_CD_SRC_MODE_NORMAL : each single track is a stream
* @GST_AUDIO_CD_SRC_MODE_CONTINUOUS : the entire disc is a single stream
*
* Mode in which the CD audio source operates. Influences timestamping,
* EOS handling and seeking.
*/
typedef enum {
GST_CDDA_BASE_SRC_MODE_NORMAL, /* stream = one track */
GST_CDDA_BASE_SRC_MODE_CONTINUOUS /* stream = whole disc */
} GstCddaBaseSrcMode;
GST_AUDIO_CD_SRC_MODE_NORMAL, /* stream = one track */
GST_AUDIO_CD_SRC_MODE_CONTINUOUS /* stream = whole disc */
} GstAudioCdSrcMode;
#define GST_TYPE_CDDA_BASE_SRC_MODE (gst_cdda_base_src_mode_get_type ())
#define GST_TYPE_AUDIO_CD_SRC_MODE (gst_audio_cd_src_mode_get_type ())
/**
* GstCddaBaseSrcTrack:
* GstAudioCdSrcTrack:
* @is_audio: Whether this is an audio track
* @num: Track number in TOC (usually starts from 1, but not always)
* @start: The first sector of this track (LBA)
@ -66,7 +61,7 @@ typedef enum {
*
* CD track abstraction to communicate TOC entries to the base class.
*/
struct _GstCddaBaseSrcTrack {
struct _GstAudioCdSrcTrack {
gboolean is_audio; /* TRUE if this is an audio track */
guint num; /* real track number (usually starts from 1) */
guint start; /* first sector of track (LBA, not LSN!) */
@ -78,20 +73,20 @@ struct _GstCddaBaseSrcTrack {
gpointer _gst_reserved2[GST_PADDING/2];
};
struct _GstCddaBaseSrc {
struct _GstAudioCdSrc {
GstPushSrc pushsrc;
/*< protected >*/ /* for use by sub-classes only */
GstTagList *tags; /* tags that apply to all tracks */
/*< private >*/
GstCddaBaseSrcMode mode;
GstAudioCdSrcMode mode;
gchar *device;
guint num_tracks;
guint num_all_tracks;
GstCddaBaseSrcTrack *tracks;
GstAudioCdSrcTrack *tracks;
gint cur_track; /* current track (starting from 0) */
gint prev_track; /* current track last time */
@ -116,7 +111,7 @@ struct _GstCddaBaseSrc {
};
/**
* GstCddaBaseSrcClass:
* GstAudioCdSrcClass:
* @pushsrc_class: the parent class
* @open: opening the device
* @close: closing the device
@ -124,33 +119,34 @@ struct _GstCddaBaseSrc {
* @get_default_device: getting the default device
* @probe_devices: probing possible devices
*
* Cdda source base class.
* Audio CD source base class.
*/
struct _GstCddaBaseSrcClass {
struct _GstAudioCdSrcClass {
GstPushSrcClass pushsrc_class;
/* open/close the CD device */
gboolean (*open) (GstCddaBaseSrc *src, const gchar *device);
void (*close) (GstCddaBaseSrc *src);
gboolean (*open) (GstAudioCdSrc *src, const gchar *device);
void (*close) (GstAudioCdSrc *src);
/* read one sector (LBA) */
GstBuffer * (*read_sector) (GstCddaBaseSrc *src, gint sector);
GstBuffer * (*read_sector) (GstAudioCdSrc *src, gint sector);
/* return default device or NULL (optional) */
gchar * (*get_default_device) (GstCddaBaseSrc *src);
gchar * (*get_default_device) (GstAudioCdSrc *src);
/* return NULL-terminated string array of CD devices, or NULL (optional) */
gchar ** (*probe_devices) (GstCddaBaseSrc *src);
/* FIXME 0.11: reconsider for new probing/device discovery API, remove if in doubt */
gchar ** (*probe_devices) (GstAudioCdSrc *src);
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
GType gst_cdda_base_src_get_type (void);
GType gst_cdda_base_src_mode_get_type (void);
GType gst_audio_cd_src_get_type (void);
GType gst_audio_cd_src_mode_get_type (void);
gboolean gst_cdda_base_src_add_track (GstCddaBaseSrc * src,
GstCddaBaseSrcTrack * track);
gboolean gst_audio_cd_src_add_track (GstAudioCdSrc * src,
GstAudioCdSrcTrack * track);
#if 0
/*
@ -164,5 +160,5 @@ gboolean gst_cdda_base_src_add_track (GstCddaBaseSrc * src,
G_END_DECLS
#endif /* __GST_CDDA_BASE_SRC_H__ */
#endif /* __GST_AUDIO_CD_SRC_H__ */

View file

@ -1,71 +0,0 @@
lib_LTLIBRARIES = libgstcdda-@GST_MAJORMINOR@.la
libgstcdda_@GST_MAJORMINOR@_la_SOURCES = \
gstcddabasesrc.c
libgstcdda_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/cdda
libgstcdda_@GST_MAJORMINOR@include_HEADERS = \
gstcddabasesrc.h
libgstcdda_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \
$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la
libgstcdda_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
libgstcdda_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
# Disabled until this is fixed:
# http://bugzilla.gnome.org/show_bug.cgi?id=594209
if FALSE
if HAVE_INTROSPECTION
BUILT_GIRSOURCES = GstCdda-@GST_MAJORMINOR@.gir
gir_headers=$(patsubst %,$(srcdir)/%, $(libgstcdda_@GST_MAJORMINOR@include_HEADERS))
gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcdda_@GST_MAJORMINOR@_la_SOURCES))
gir_cincludes=$(patsubst %,--c-include='gst/cdda/%',$(libgstcdda_@GST_MAJORMINOR@include_HEADERS))
GstCdda-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstcdda-@GST_MAJORMINOR@.la
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
$(INTROSPECTION_SCANNER) -v --namespace GstCdda \
--nsversion=@GST_MAJORMINOR@ \
--strip-prefix=Gst \
$(gir_cincludes) \
-DGST_USE_UNSTABLE_API \
--add-include-path=$(builddir)/../tag \
--add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
--add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@` \
--library=libgstcdda-@GST_MAJORMINOR@.la \
--include=Gst-@GST_MAJORMINOR@ \
--include=GstBase-@GST_MAJORMINOR@ \
--include=GstTag-@GST_MAJORMINOR@ \
--libtool="$(top_builddir)/libtool" \
--pkg gstreamer-@GST_MAJORMINOR@ \
--pkg gstreamer-base-@GST_MAJORMINOR@ \
--pkg gstreamer-tag-@GST_MAJORMINOR@ \
--pkg-export gstreamer-cdda-@GST_MAJORMINOR@ \
--add-init-section="gst_init(NULL,NULL);" \
--output $@ \
$(gir_headers) \
$(gir_sources)
# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
# install anything - we need to install inside our prefix.
girdir = $(datadir)/gir-1.0
gir_DATA = $(BUILT_GIRSOURCES)
typelibsdir = $(libdir)/girepository-1.0/
typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
%.typelib: %.gir $(INTROSPECTION_COMPILER)
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
--includedir=$(builddir)/../tag \
--includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
--includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
endif
endif

View file

@ -85,7 +85,6 @@ rm -rf $RPM_BUILD_ROOT
# libraries
%{_libdir}/libgstaudio-%{majorminor}.so.*
%{_libdir}/libgstcdda-%{majorminor}.so*
%{_libdir}/libgstinterfaces-%{majorminor}.so.*
%{_libdir}/libgstpbutils-%{majorminor}.so*
%{_libdir}/libgstriff-%{majorminor}.so.*
@ -172,7 +171,7 @@ GStreamer Plugins Base library development and header files.
%{_includedir}/gstreamer-%{majorminor}/gst/tag/tag.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideofilter.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideosink.h
%{_includedir}/gstreamer-%{majorminor}/gst/cdda/gstcddabasesrc.h
%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiocdsrc.h
%{_includedir}/gstreamer-%{majorminor}/gst/audio/mixerutils.h
%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/videoorientation.h
%{_includedir}/gstreamer-%{majorminor}/gst/pbutils/descriptions.h
@ -230,13 +229,11 @@ GStreamer Plugins Base library development and header files.
%{_libdir}/libgstrtp-%{majorminor}.so
%{_libdir}/libgstinterfaces-%{majorminor}.so
%{_libdir}/libgstpbutils-%{majorminor}.so
%{_libdir}/libgstcdda-%{majorminor}.so
%{_libdir}/libgstapp-%{majorminor}.so
# pkg-config files
%{_libdir}/pkgconfig/gstreamer-plugins-base-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-audio-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-cdda-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-fft-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-interfaces-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-pbutils-%{majorminor}.pc

View file

@ -2,7 +2,6 @@
pcverfiles = \
gstreamer-audio-@GST_MAJORMINOR@.pc \
gstreamer-app-@GST_MAJORMINOR@.pc \
gstreamer-cdda-@GST_MAJORMINOR@.pc \
gstreamer-fft-@GST_MAJORMINOR@.pc \
gstreamer-interfaces-@GST_MAJORMINOR@.pc \
gstreamer-pbutils-@GST_MAJORMINOR@.pc \
@ -16,7 +15,6 @@ pcverfiles = \
pcverfiles_uninstalled = \
gstreamer-audio-@GST_MAJORMINOR@-uninstalled.pc \
gstreamer-app-@GST_MAJORMINOR@-uninstalled.pc \
gstreamer-cdda-@GST_MAJORMINOR@-uninstalled.pc \
gstreamer-fft-@GST_MAJORMINOR@-uninstalled.pc \
gstreamer-interfaces-@GST_MAJORMINOR@-uninstalled.pc \
gstreamer-pbutils-@GST_MAJORMINOR@-uninstalled.pc \
@ -47,7 +45,6 @@ CLEANFILES = $(pcverfiles) $(pcverfiles_uninstalled)
pcinfiles = \
gstreamer-audio.pc.in gstreamer-audio-uninstalled.pc.in \
gstreamer-app.pc.in gstreamer-app-uninstalled.pc.in \
gstreamer-cdda.pc.in gstreamer-cdda-uninstalled.pc.in \
gstreamer-fft.pc.in gstreamer-fft-uninstalled.pc.in \
gstreamer-interfaces.pc.in gstreamer-interfaces-uninstalled.pc.in \
gstreamer-pbutils.pc.in gstreamer-pbutils-uninstalled.pc.in \

View file

@ -1,16 +0,0 @@
# the standard variables don't make sense for an uninstalled copy
prefix=
exec_prefix=
libdir=
# includedir is builddir because it is used to find gstconfig.h in places
includedir=@abs_top_builddir@/gst-libs
girdir=@abs_top_builddir@/gst-libs/gst/cdda
typelibdir=@abs_top_builddir@/gst-libs/gst/cdda
Name: GStreamer CDDA Library, Uninstalled
Description: CDDA base classes, uninstalled
Version: @VERSION@
Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ gstreamer-tag-@GST_MAJORMINOR@
Libs: @abs_top_builddir@/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la
Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs

View file

@ -1,16 +0,0 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
datarootdir=${prefix}/share
datadir=${datarootdir}
girdir=${datadir}/gir-1.0
typelibdir=${libdir}/girepository-1.0
Name: GStreamer CDDA Library
Description: CDDA base classes
Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ gstreamer-tag-@GST_MAJORMINOR@
Version: @VERSION@
Libs: -L${libdir} -lgstcdda-@GST_MAJORMINOR@
Cflags: -I${includedir}

View file

@ -10,7 +10,7 @@ Name: GStreamer Base Plugins Libraries, Uninstalled
Description: Streaming media framework, base plugins libraries, uninstalled
Version: @VERSION@
Requires: gstreamer-@GST_MAJORMINOR@
Libs: -L@abs_top_builddir@/gst-libs/gst/audio -L@abs_top_builddir@/gst-libs/gst/cdda -L@abs_top_builddir@/gst-libs/gst/fft -L@abs_top_builddir@/gst-libs/gst/floatcast -L@abs_top_builddir@/gst-libs/gst/interfaces -L@abs_top_builddir@/gst-libs/gst/riff -L@abs_top_builddir@/gst-libs/gst/rtp -L@abs_top_builddir@/gst-libs/gst/rtsp -L@abs_top_builddir@/gst-libs/gst/sdp -L@abs_top_builddir@/gst-libs/gst/tag -L@abs_top_builddir@/gst-libs/gst/pbutils -L@abs_top_builddir@/gst-libs/gst/video -L@abs_top_builddir@/gst-libs/gst/app
Libs: -L@abs_top_builddir@/gst-libs/gst/audio -L@abs_top_builddir@/gst-libs/gst/fft -L@abs_top_builddir@/gst-libs/gst/interfaces -L@abs_top_builddir@/gst-libs/gst/riff -L@abs_top_builddir@/gst-libs/gst/rtp -L@abs_top_builddir@/gst-libs/gst/rtsp -L@abs_top_builddir@/gst-libs/gst/sdp -L@abs_top_builddir@/gst-libs/gst/tag -L@abs_top_builddir@/gst-libs/gst/pbutils -L@abs_top_builddir@/gst-libs/gst/video -L@abs_top_builddir@/gst-libs/gst/app
Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
libraries=app audio cdda fft floatcast interfaces riff rtp rtsp sdp tag pbutils video
libraries=app audio fft interfaces riff rtp rtsp sdp tag pbutils video

View file

@ -11,4 +11,4 @@ Version: @VERSION@
Libs: -L${libdir}
Cflags: -I${includedir}
libraries=audio cdda fft floatcast interfaces riff rtp tag pbutils video
libraries=audio fft interfaces riff rtp tag pbutils video

View file

@ -10,9 +10,9 @@ gst/playback/gsturidecodebin.c
gst/tcp/gsttcp.c
gst/tcp/gsttcpclientsink.c
gst/tcp/gsttcpclientsrc.c
gst-libs/gst/audio/gstaudiocdsrc.c
gst-libs/gst/audio/gstbaseaudiosrc.c
gst-libs/gst/tag/gsttagdemux.c
gst-libs/gst/tag/tags.c
gst-libs/gst/cdda/gstcddabasesrc.c
gst-libs/gst/pbutils/descriptions.c
gst-libs/gst/pbutils/missing-plugins.c

View file

@ -7,7 +7,6 @@ win32/common/interfaces-enumtypes.c
win32/common/interfaces-enumtypes.h
win32/common/libgstapp.def
win32/common/libgstaudio.def
win32/common/libgstcdda.def
win32/common/libgstinterfaces.def
win32/common/libgstpbutils.def
win32/common/libgstriff.def
@ -31,7 +30,6 @@ win32/vs6/libgstaudiorate.dsp
win32/vs6/libgstaudioresample.dsp
win32/vs6/libgstaudioscale.dsp
win32/vs6/libgstaudiotestsrc.dsp
win32/vs6/libgstcdda.dsp
win32/vs6/libgstdecodebin2.dsp
win32/vs6/libgstdecodebin.dsp
win32/vs6/libgstfft.dsp

View file

@ -1,4 +0,0 @@
EXPORTS
gst_cdda_base_src_add_track
gst_cdda_base_src_get_type
gst_cdda_base_src_mode_get_type

View file

@ -1,143 +0,0 @@
# Microsoft Developer Studio Project File - Name="libgstcdda" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=libgstcdda - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "libgstcdda.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "libgstcdda.mak" CFG="libgstcdda - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "libgstcdda - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "libgstcdda - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "libgstcdda - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTCDDA_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTCDDA_EXPORTS" /D "HAVE_CONFIG_H" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40c /d "NDEBUG"
# ADD RSC /l 0x40c /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgsttag-0.10.lib /nologo /dll /machine:I386 /out:"Release/libgstcdda-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"
# Begin Special Build Tool
TargetPath=.\Release\libgstcdda-0.10.dll
SOURCE="$(InputPath)"
PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin
# End Special Build Tool
!ELSEIF "$(CFG)" == "libgstcdda - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTCDDA_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTCDDA_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40c /d "_DEBUG"
# ADD RSC /l 0x40c /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgsttag-0.10.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstcdda-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"
# Begin Special Build Tool
TargetPath=.\Debug\libgstcdda-0.10.dll
SOURCE="$(InputPath)"
PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin
# End Special Build Tool
!ENDIF
# Begin Target
# Name "libgstcdda - Win32 Release"
# Name "libgstcdda - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE="..\..\gst-libs\gst\cdda\base64.c"
# End Source File
# Begin Source File
SOURCE="..\..\gst-libs\gst\cdda\gstcddabasesrc.c"
# End Source File
# Begin Source File
SOURCE=..\common\libgstcdda.def
# End Source File
# Begin Source File
SOURCE="..\..\gst-libs\gst\cdda\sha1.c"
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE="..\..\gst-libs\gst\cdda\base64.h"
# End Source File
# Begin Source File
SOURCE="..\..\gst-libs\gst\cdda\gstcddabasesrc.h"
# End Source File
# Begin Source File
SOURCE="..\..\gst-libs\gst\cdda\sha1.h"
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project