diff options
author | Jan Schmidt <thaytan@mad.scientist.com> | 2008-08-12 09:22:29 +0000 |
---|---|---|
committer | Jan Schmidt <thaytan@mad.scientist.com> | 2008-08-12 09:22:29 +0000 |
commit | 0551a8b21218c7a81fd17242274ace66c3c056f1 (patch) | |
tree | 52092c763a9b0de818f86589c58ddecdba309211 /ext | |
parent | 925d6f34e104ac8e64306b1e91f25ca13ced4ba0 (diff) |
Pull changes from 0.10.9.2 pre-release branch moving the libcdio
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/inspect/plugin-cdio.xml:
* ext/Makefile.am:
* ext/cdio/Makefile.am:
* ext/cdio/gstcdio.c:
* ext/cdio/gstcdio.h:
* ext/cdio/gstcdiocddasrc.c:
* ext/cdio/gstcdiocddasrc.h:
Pull changes from 0.10.9.2 pre-release branch moving the libcdio
CDDA source to -ugly.
* po/LINGUAS:
* po/POTFILES.in:
* po/id.po:
Pull in new translation from 0.10.9.2 release branch.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/Makefile.am | 8 | ||||
-rw-r--r-- | ext/cdio/Makefile.am | 22 | ||||
-rw-r--r-- | ext/cdio/gstcdio.c | 124 | ||||
-rw-r--r-- | ext/cdio/gstcdio.h | 46 | ||||
-rw-r--r-- | ext/cdio/gstcdiocddasrc.c | 386 | ||||
-rw-r--r-- | ext/cdio/gstcdiocddasrc.h | 52 |
6 files changed, 0 insertions, 638 deletions
diff --git a/ext/Makefile.am b/ext/Makefile.am index 36b37716..206d5237 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -16,12 +16,6 @@ else CAIRO_DIR = endif -if USE_CDIO -CDIO_DIR = cdio -else -CDIO_DIR = -endif - if USE_ESD ESD_DIR = esd else @@ -135,7 +129,6 @@ SUBDIRS = \ $(AALIB_DIR) \ $(ANNODEX_DIR) \ $(CAIRO_DIR) \ - $(CDIO_DIR) \ $(DV1394_DIR) \ $(ESD_DIR) \ $(FLAC_DIR) \ @@ -159,7 +152,6 @@ DIST_SUBDIRS = \ aalib \ annodex \ cairo \ - cdio \ dv \ esd \ flac \ diff --git a/ext/cdio/Makefile.am b/ext/cdio/Makefile.am deleted file mode 100644 index 01092c71..00000000 --- a/ext/cdio/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -plugin_LTLIBRARIES = libgstcdio.la - -libgstcdio_la_SOURCES = \ - gstcdio.c \ - gstcdiocddasrc.c - -libgstcdio_la_CFLAGS = \ - $(GST_PLUGINS_BASE_CFLAGS) \ - $(GST_BASE_CFLAGS) \ - $(GST_CFLAGS) \ - $(CDIO_CFLAGS) - -libgstcdio_la_LIBADD = \ - $(GST_PLUGINS_BASE_LIBS) -lgstcdda-$(GST_MAJORMINOR) \ - $(GST_BASE_LIBS) \ - $(CDIO_LIBS) - -libgstcdio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) - -noinst_HEADERS = \ - gstcdio.h \ - gstcdiocddasrc.h diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c deleted file mode 100644 index a18d350f..00000000 --- a/ext/cdio/gstcdio.c +++ /dev/null @@ -1,124 +0,0 @@ -/* GStreamer - * Copyright (C) 1999 Erik Walthinsen <omega@cse.ogi.edu> - * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "gstcdio.h" -#include "gstcdiocddasrc.h" - -#include <cdio/logging.h> - -GST_DEBUG_CATEGORY (gst_cdio_debug); - -void -gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, - cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags) -{ - const gchar *txt; - - txt = cdtext_get_const (field, cdtext); - if (txt == NULL || *txt == '\0') { - GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag); - return; - } - - /* FIXME: beautify strings (they might be all uppercase for example)? */ - /* FIXME: what encoding are these strings in? Let's hope ASCII or UTF-8 */ - if (!g_utf8_validate (txt, -1, NULL)) { - GST_WARNING_OBJECT (src, "CD-TEXT string is not UTF-8! (%s)", gst_tag); - return; - } - - if (*p_tags == NULL) - *p_tags = gst_tag_list_new (); - - gst_tag_list_add (*p_tags, GST_TAG_MERGE_REPLACE, gst_tag, txt, NULL); - - GST_DEBUG_OBJECT (src, "CD-TEXT: %s = %s", gst_tag, txt); -} - -GstTagList * -gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) -{ - GstTagList *tags = NULL; - cdtext_t *t; - - t = cdio_get_cdtext (cdio, track); - if (t == NULL) { - GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track); - return NULL; - } - - gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags); - gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags); - - return tags; -} - -void -gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) -{ - cdtext_t *t; - - t = cdio_get_cdtext (cdio, 0); - if (t == NULL) { - GST_DEBUG_OBJECT (src, "no CD-TEXT for album %u"); - return; - } - - /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */ - gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags); - gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags); - - GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags); -} - -static void -gst_cdio_log_handler (cdio_log_level_t level, const char *msg) -{ - const gchar *level_str[] = { "DEBUG", "INFO", "WARN", "ERROR", "ASSERT" }; - const gchar *s; - - s = level_str[CLAMP (level, 1, G_N_ELEMENTS (level_str)) - 1]; - GST_DEBUG ("CDIO-%s: %s", s, GST_STR_NULL (msg)); -} - -static gboolean -plugin_init (GstPlugin * plugin) -{ - if (!gst_element_register (plugin, "cdiocddasrc", GST_RANK_SECONDARY - 1, - GST_TYPE_CDIO_CDDA_SRC)) - return FALSE; - - cdio_log_set_handler (gst_cdio_log_handler); - - GST_DEBUG_CATEGORY_INIT (gst_cdio_debug, "cdio", 0, "libcdio elements"); - - return TRUE; -} - - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "cdio", - "Read audio from audio CDs", - plugin_init, VERSION, "GPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h deleted file mode 100644 index ef31ed0f..00000000 --- a/ext/cdio/gstcdio.h +++ /dev/null @@ -1,46 +0,0 @@ -/* GStreamer - * Copyright (C) 1999 Erik Walthinsen <omega@cse.ogi.edu> - * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_CDIO_H__ -#define __GST_CDIO_H__ - -#include <gst/gst.h> -#include <cdio/cdio.h> -#include <cdio/cdtext.h> - -GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug); -#define GST_CAT_DEFAULT gst_cdio_debug - -void gst_cdio_add_cdtext_field (GstObject * src, - cdtext_t * cdtext, - cdtext_field_t field, - const gchar * gst_tag, - GstTagList ** p_tags); - -GstTagList * gst_cdio_get_cdtext (GstObject * src, - CdIo * cdio, - track_t track); - -void gst_cdio_add_cdtext_album_tags (GstObject * src, - CdIo * cdio, - GstTagList * tags); - -#endif /* __GST_CDIO_H__ */ - diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c deleted file mode 100644 index d4a6a54d..00000000 --- a/ext/cdio/gstcdiocddasrc.c +++ /dev/null @@ -1,386 +0,0 @@ -/* GStreamer - * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/** - * SECTION:element-cdiocddasrc - * @short_description: Reads raw audio from an Audio CD - * @see_also: GstCdParanoiaSrc, GstCddaBaseSrc - * - * <refsect2> - * <para> - * cdiocddasrc reads and extracts raw audio from Audio CDs. It can operate - * in one of two modes: - * <itemizedlist> - * <listitem><para> - * treat each track as a separate stream, counting time from the start - * of the track to the end of the track and posting EOS at the end of - * a track, or - * </para></listitem> - * <listitem><para> - * treat the entire disc as one stream, counting time from the start of - * the first track to the end of the last track, posting EOS only at - * the end of the last track. - * </para></listitem> - * </itemizedlist> - * </para> - * <para> - * With a recent-enough version of libcdio, the element will extract - * CD-TEXT if this is supported by the CD-drive and CD-TEXT information - * is available on the CD. The information will be posted on the bus in - * form of a tag message. - * </para> - * <para> - * When opened, the element will also calculate a CDDB disc ID and a - * MusicBrainz disc ID, which applications can use to query online - * databases for artist/title information. These disc IDs will also be - * posted on the bus as part of the tag messages. - * </para> - * <para> - * cdiocddasrc supports the GstUriHandler interface, so applications can use - * playbin with cdda://<track-number> URIs for playback (they will have - * to connect to playbin's notify::source signal and set the device on the - * cd source in the notify callback if they want to set the device property). - * Applications should use seeks in "track" format to switch between different - * tracks of the same CD (passing a new cdda:// URI to playbin involves opening - * and closing the CD device, which is much slower). - * </para> - * <title>Example launch line</title> - * <para> - * <programlisting> - * gst-launch cdiocddasrc track=5 device=/dev/cdrom ! audioconvert ! vorbisenc ! oggmux ! filesink location=track5.ogg - * </programlisting> - * This pipeline extracts track 5 of the audio CD and encodes it into an - * Ogg/Vorbis file. - * </para> - * </refsect2> - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "gstcdio.h" -#include "gstcdiocddasrc.h" - -#include <gst/gst.h> -#include "gst/gst-i18n-plugin.h" - -#include <sys/types.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -#define DEFAULT_READ_SPEED -1 - -enum -{ - PROP_0 = 0, - PROP_READ_SPEED -}; - -static const GstElementDetails gst_cdio_cdda_src_details = -GST_ELEMENT_DETAILS ("CD audio source (CDDA)", - "Source/File", - "Read audio from CD using libcdio", - "Tim-Philipp Müller <tim centricular net>"); - -GST_BOILERPLATE (GstCdioCddaSrc, gst_cdio_cdda_src, GstCddaBaseSrc, - GST_TYPE_CDDA_BASE_SRC); - -static void gst_cdio_cdda_src_finalize (GObject * obj); -static void gst_cdio_cdda_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_cdio_cdda_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -static gchar *gst_cdio_cdda_src_get_default_device (GstCddaBaseSrc * src); -static GstBuffer *gst_cdio_cdda_src_read_sector (GstCddaBaseSrc * src, - gint sector); -static gboolean gst_cdio_cdda_src_open (GstCddaBaseSrc * src, - const gchar * device); -static void gst_cdio_cdda_src_close (GstCddaBaseSrc * src); - -static void -gst_cdio_cdda_src_base_init (gpointer g_class) -{ - GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - - gst_element_class_set_details (element_class, &gst_cdio_cdda_src_details); -} - -static gchar * -gst_cdio_cdda_src_get_default_device (GstCddaBaseSrc * cddabasesrc) -{ - GstCdioCddaSrc *src; - gchar *default_device, *ret; - - src = GST_CDIO_CDDA_SRC (cddabasesrc); - - /* src->cdio may be NULL here */ - default_device = cdio_get_default_device (src->cdio); - - ret = g_strdup (default_device); - free (default_device); - - GST_LOG_OBJECT (src, "returning default device: %s", GST_STR_NULL (ret)); - - return ret; -} - -static gchar ** -gst_cdio_cdda_src_probe_devices (GstCddaBaseSrc * cddabasesrc) -{ - char **devices, **ret, **d; - - /* FIXME: might return the same hardware device twice, e.g. - * as /dev/cdrom and /dev/dvd - gotta do something more sophisticated */ - devices = cdio_get_devices (DRIVER_DEVICE); - - if (devices == NULL) - goto no_devices; - - if (*devices == NULL) - goto empty_devices; - - ret = g_strdupv (devices); - for (d = devices; *d != NULL; ++d) { - GST_DEBUG_OBJECT (cddabasesrc, "device: %s", GST_STR_NULL (*d)); - free (*d); - } - free (devices); - - return ret; - - /* ERRORS */ -no_devices: - { - GST_DEBUG_OBJECT (cddabasesrc, "no devices found"); - return NULL; - } -empty_devices: - { - GST_DEBUG_OBJECT (cddabasesrc, "empty device list found"); - free (devices); - return NULL; - } -} - -static GstBuffer * -gst_cdio_cdda_src_read_sector (GstCddaBaseSrc * cddabasesrc, gint sector) -{ - GstCdioCddaSrc *src; - GstBuffer *buf; - - src = GST_CDIO_CDDA_SRC (cddabasesrc); - - /* can't use pad_alloc because we can't return the GstFlowReturn */ - buf = gst_buffer_new_and_alloc (CDIO_CD_FRAMESIZE_RAW); - - if (cdio_read_audio_sector (src->cdio, GST_BUFFER_DATA (buf), sector) != 0) - goto read_failed; - - return buf; - - /* ERRORS */ -read_failed: - { - GST_WARNING_OBJECT (src, "read at sector %d failed!", sector); - GST_ELEMENT_ERROR (src, RESOURCE, READ, - (_("Could not read from CD.")), - ("cdio_read_audio_sector at %d failed: %s", sector, - g_strerror (errno))); - gst_buffer_unref (buf); - return NULL; - } -} - -static gboolean -notcdio_track_is_audio_track (const CdIo * p_cdio, track_t i_track) -{ - return (cdio_get_track_format (p_cdio, i_track) == TRACK_FORMAT_AUDIO); -} - -static gboolean -gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device) -{ - GstCdioCddaSrc *src; - discmode_t discmode; - gint first_track, num_tracks, i; - - src = GST_CDIO_CDDA_SRC (cddabasesrc); - - g_assert (device != NULL); - g_assert (src->cdio == NULL); - - GST_LOG_OBJECT (src, "trying to open device %s", device); - - if (!(src->cdio = cdio_open (device, DRIVER_UNKNOWN))) - goto open_failed; - - discmode = cdio_get_discmode (src->cdio); - GST_LOG_OBJECT (src, "discmode: %d", (gint) discmode); - - if (discmode != CDIO_DISC_MODE_CD_DA && discmode != CDIO_DISC_MODE_CD_MIXED) - goto not_audio; - - first_track = cdio_get_first_track_num (src->cdio); - num_tracks = cdio_get_num_tracks (src->cdio); - - if (num_tracks <= 0 || first_track < 0) - return TRUE; /* base class will generate 'has no tracks' error */ - - if (src->read_speed != -1) - cdio_set_speed (src->cdio, src->read_speed); - - gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio, - cddabasesrc->tags); - - GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track); - - for (i = 0; i < num_tracks; ++i) { - GstCddaBaseSrcTrack track = { 0, }; - gint len_sectors; - - len_sectors = cdio_get_track_sec_count (src->cdio, i + first_track); - - track.num = i + first_track; - track.is_audio = notcdio_track_is_audio_track (src->cdio, i + first_track); - - /* Note: LSN/LBA confusion all around us; in any case, this does - * the right thing here (for cddb id calculations etc. as well) */ - track.start = cdio_get_track_lsn (src->cdio, i + first_track); - track.end = track.start + len_sectors - 1; /* -1? */ - track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio, - i + first_track); - - gst_cdda_base_src_add_track (GST_CDDA_BASE_SRC (src), &track); - } - return TRUE; - - /* ERRORS */ -open_failed: - { - GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, - (_("Could not open CD device for reading.")), - ("cdio_open() failed: %s", g_strerror (errno))); - return FALSE; - } -not_audio: - { - GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, - (_("Disc is not an Audio CD.")), ("discmode: %d", (gint) discmode)); - - cdio_destroy (src->cdio); - src->cdio = NULL; - return FALSE; - } -} - -static void -gst_cdio_cdda_src_close (GstCddaBaseSrc * cddabasesrc) -{ - GstCdioCddaSrc *src = GST_CDIO_CDDA_SRC (cddabasesrc); - - if (src->cdio) { - cdio_destroy (src->cdio); - src->cdio = NULL; - } -} - -static void -gst_cdio_cdda_src_init (GstCdioCddaSrc * src, GstCdioCddaSrcClass * klass) -{ - src->read_speed = DEFAULT_READ_SPEED; /* don't need atomic access here */ - src->cdio = NULL; -} - -static void -gst_cdio_cdda_src_finalize (GObject * obj) -{ - GstCdioCddaSrc *src = GST_CDIO_CDDA_SRC (obj); - - if (src->cdio) { - cdio_destroy (src->cdio); - src->cdio = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - -static void -gst_cdio_cdda_src_class_init (GstCdioCddaSrcClass * klass) -{ - GstCddaBaseSrcClass *cddabasesrc_class = GST_CDDA_BASE_SRC_CLASS (klass); - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - - gobject_class->set_property = gst_cdio_cdda_src_set_property; - gobject_class->get_property = gst_cdio_cdda_src_get_property; - gobject_class->finalize = gst_cdio_cdda_src_finalize; - - cddabasesrc_class->open = gst_cdio_cdda_src_open; - cddabasesrc_class->close = gst_cdio_cdda_src_close; - cddabasesrc_class->read_sector = gst_cdio_cdda_src_read_sector; - cddabasesrc_class->probe_devices = gst_cdio_cdda_src_probe_devices; - cddabasesrc_class->get_default_device = gst_cdio_cdda_src_get_default_device; - - g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_READ_SPEED, - g_param_spec_int ("read-speed", "Read speed", - "Read from device at the specified speed (-1 = default)", -1, 100, - DEFAULT_READ_SPEED, G_PARAM_READWRITE)); -} - -static void -gst_cdio_cdda_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstCdioCddaSrc *src = GST_CDIO_CDDA_SRC (object); - - switch (prop_id) { - case PROP_READ_SPEED:{ - gint speed; - - speed = g_value_get_int (value); - g_atomic_int_set (&src->read_speed, speed); - break; - } - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_cdio_cdda_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstCdioCddaSrc *src = GST_CDIO_CDDA_SRC (object); - - switch (prop_id) { - case PROP_READ_SPEED:{ - gint speed; - - speed = g_atomic_int_get (&src->read_speed); - g_value_set_int (value, speed); - break; - } - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} diff --git a/ext/cdio/gstcdiocddasrc.h b/ext/cdio/gstcdiocddasrc.h deleted file mode 100644 index 4aa9f97b..00000000 --- a/ext/cdio/gstcdiocddasrc.h +++ /dev/null @@ -1,52 +0,0 @@ -/* GStreamer - * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_CDIO_CDDA_SRC_H__ -#define __GST_CDIO_CDDA_SRC_H__ - -#include <gst/cdda/gstcddabasesrc.h> -#include <cdio/cdio.h> - -#define GST_TYPE_CDIO_CDDA_SRC (gst_cdio_cdda_src_get_type ()) -#define GST_CDIO_CDDA_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_CDIO_CDDA_SRC, GstCdioCddaSrc)) -#define GST_CDIO_CDDA_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_CDIO_CDDA_SRC, GstCdioCddaSrcClass)) -#define GST_IS_CDIO_CDDA_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_CDIO_CDDA_SRC)) -#define GST_IS_CDIO_CDDA_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_CDIO_CDDA_SRC)) - -typedef struct _GstCdioCddaSrc GstCdioCddaSrc; -typedef struct _GstCdioCddaSrcClass GstCdioCddaSrcClass; - -struct _GstCdioCddaSrc -{ - GstCddaBaseSrc cddabasesrc; - - gint read_speed; /* ATOMIC */ - - CdIo *cdio; /* NULL if not open */ -}; - -struct _GstCdioCddaSrcClass -{ - GstCddaBaseSrcClass cddabasesrc_class; -}; - -GType gst_cdio_cdda_src_get_type (); - -#endif /* __GST_CDIO_CDDA_SRC_H__ */ - |