return TRUE;
}
- started = GST_OBJECT_FLAG_IS_SET (GST_BASE_SRC (src), GST_BASE_SRC_STARTED);
+ started =
+ GST_OBJECT_FLAG_IS_SET (GST_BASE_SRC (src), GST_BASE_SRC_FLAG_STARTED);
if (src_format == track_format) {
if (!started)
GstAudioCdSrc *src = GST_AUDIO_CD_SRC (basesrc);
gboolean started;
- started = GST_OBJECT_FLAG_IS_SET (basesrc, GST_BASE_SRC_STARTED);
+ started = GST_OBJECT_FLAG_IS_SET (basesrc, GST_BASE_SRC_FLAG_STARTED);
GST_LOG_OBJECT (src, "handling %s query",
gst_query_type_get_name (GST_QUERY_TYPE (query)));
gdouble rate;
gint64 start, stop;
- if (!GST_OBJECT_FLAG_IS_SET (basesrc, GST_BASE_SRC_STARTED)) {
+ if (!GST_OBJECT_FLAG_IS_SET (basesrc, GST_BASE_SRC_FLAG_STARTED)) {
GST_DEBUG_OBJECT (src, "seek failed: device not open");
break;
}
* existing URI perhaps? */
g_free (src->uri);
- if (GST_OBJECT_FLAG_IS_SET (GST_BASE_SRC (src), GST_BASE_SRC_STARTED)) {
+ if (GST_OBJECT_FLAG_IS_SET (GST_BASE_SRC (src), GST_BASE_SRC_FLAG_STARTED)) {
src->uri =
g_strdup_printf ("cdda://%s#%d", src->device,
(src->uri_track > 0) ? src->uri_track : 1);
g_free (device);
device = NULL;
- if (!ret) {
- GST_DEBUG_OBJECT (basesrc, "failed to open device");
- /* subclass (should have) posted an error message with the details */
- gst_audio_cd_src_stop (basesrc);
- return FALSE;
- }
+ if (!ret)
+ goto open_failed;
- if (src->num_tracks == 0 || src->tracks == NULL) {
- GST_DEBUG_OBJECT (src, "no tracks");
- GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
- (_("This CD has no audio tracks")), (NULL));
- gst_audio_cd_src_stop (basesrc);
- return FALSE;
- }
+ if (src->num_tracks == 0 || src->tracks == NULL)
+ goto no_tracks;
/* need to calculate disc IDs before we ditch the data tracks */
gst_audio_cd_src_calculate_cddb_id (src);
while (src->num_tracks > 0 && !src->tracks[src->num_tracks - 1].is_audio)
--src->num_tracks;
- if (src->num_tracks == 0) {
- GST_DEBUG_OBJECT (src, "no audio tracks");
- GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
- (_("This CD has no audio tracks")), (NULL));
- gst_audio_cd_src_stop (basesrc);
- return FALSE;
- }
+ if (src->num_tracks == 0)
+ goto no_tracks;
gst_audio_cd_src_add_tags (src);
gst_audio_cd_src_update_duration (src);
return TRUE;
+
+ /* ERRORS */
+open_failed:
+ {
+ GST_DEBUG_OBJECT (basesrc, "failed to open device");
+ /* subclass (should have) posted an error message with the details */
+ gst_audio_cd_src_stop (basesrc);
+ return FALSE;
+ }
+no_tracks:
+ {
+ GST_DEBUG_OBJECT (src, "no audio tracks");
+ GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
+ (_("This CD has no audio tracks")), (NULL));
+ gst_audio_cd_src_stop (basesrc);
+ return FALSE;
+ }
}
static void