/[packages]/cauldron/gstreamer0.10-plugins-ugly/current/SOURCES/gstreamer-plugins-ugly-0.10.19-cdio-0.90.patch
ViewVC logotype

Contents of /cauldron/gstreamer0.10-plugins-ugly/current/SOURCES/gstreamer-plugins-ugly-0.10.19-cdio-0.90.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 473993 - (show annotations) (download)
Sun Sep 1 13:05:53 2013 UTC (10 years, 7 months ago) by fwang
File size: 6130 byte(s)
fix build with latest cdio
1 From 6700410efb1786e5a40f45515574a1bf713ba011 Mon Sep 17 00:00:00 2001
2 From: Leon Merten Lohse <leon@green-side.de>
3 Date: Thu, 03 May 2012 22:50:30 +0000
4 Subject: cdio: compensate for libcdio's recent cd-text api changes
5
6 https://bugzilla.gnome.org/show_bug.cgi?id=675112
7 ---
8 (limited to 'ext/cdio')
9
10 diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c
11 index 8940112..7b59030 100644
12 --- a/ext/cdio/gstcdio.c
13 +++ b/ext/cdio/gstcdio.c
14 @@ -30,12 +30,16 @@
15 GST_DEBUG_CATEGORY (gst_cdio_debug);
16
17 void
18 -gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext,
19 +gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track,
20 cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags)
21 {
22 const gchar *txt;
23
24 +#if LIBCDIO_VERSION_NUM > 83
25 + txt = cdtext_get_const (cdtext, field, track);
26 +#else
27 txt = cdtext_get_const (field, cdtext);
28 +#endif
29 if (txt == NULL || *txt == '\0') {
30 GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag);
31 return;
32 @@ -57,6 +61,12 @@ gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext,
33 }
34
35 GstTagList *
36 +#if LIBCDIO_VERSION_NUM > 83
37 +gst_cdio_get_cdtext (GstObject * src, cdtext_t * t, track_t track)
38 +{
39 + GstTagList *tags = NULL;
40 +
41 +#else
42 gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track)
43 {
44 GstTagList *tags = NULL;
45 @@ -67,14 +77,22 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track)
46 GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track);
47 return NULL;
48 }
49 +#endif
50
51 - gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags);
52 - gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags);
53 + gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_PERFORMER,
54 + GST_TAG_ARTIST, &tags);
55 + gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_TITLE, GST_TAG_TITLE,
56 + &tags);
57
58 return tags;
59 }
60
61 void
62 +#if LIBCDIO_VERSION_NUM > 83
63 +gst_cdio_add_cdtext_album_tags (GstObject * src, cdtext_t * t,
64 + GstTagList * tags)
65 +{
66 +#else
67 gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags)
68 {
69 cdtext_t *t;
70 @@ -84,11 +102,14 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags)
71 GST_DEBUG_OBJECT (src, "no CD-TEXT for album");
72 return;
73 }
74 +#endif
75
76 - /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */
77 - gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags);
78 - gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags);
79 -
80 + gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_PERFORMER,
81 + GST_TAG_ALBUM_ARTIST, &tags);
82 + gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_TITLE, GST_TAG_ALBUM,
83 + &tags);
84 + gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_GENRE, GST_TAG_GENRE,
85 + &tags);
86 GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags);
87 }
88
89 diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h
90 index ef31ed0..c6da580 100644
91 --- a/ext/cdio/gstcdio.h
92 +++ b/ext/cdio/gstcdio.h
93 @@ -24,22 +24,38 @@
94 #include <gst/gst.h>
95 #include <cdio/cdio.h>
96 #include <cdio/cdtext.h>
97 +#include <cdio/version.h>
98 +
99 +#if LIBCDIO_VERSION_NUM <= 83
100 + #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER
101 + #define CDTEXT_FIELD_GENRE CDTEXT_GENRE
102 + #define CDTEXT_FIELD_TITLE CDTEXT_TITLE
103 +#endif
104
105 GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug);
106 #define GST_CAT_DEFAULT gst_cdio_debug
107
108 void gst_cdio_add_cdtext_field (GstObject * src,
109 cdtext_t * cdtext,
110 + track_t track,
111 cdtext_field_t field,
112 const gchar * gst_tag,
113 GstTagList ** p_tags);
114
115 GstTagList * gst_cdio_get_cdtext (GstObject * src,
116 +#if LIBCDIO_VERSION_NUM > 83
117 + cdtext_t * t,
118 +#else
119 CdIo * cdio,
120 +#endif
121 track_t track);
122
123 void gst_cdio_add_cdtext_album_tags (GstObject * src,
124 +#if LIBCDIO_VERSION_NUM > 83
125 + cdtext_t * t,
126 +#else
127 CdIo * cdio,
128 +#endif
129 GstTagList * tags);
130
131 #endif /* __GST_CDIO_H__ */
132 diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c
133 index f57e368..88cf0c3 100644
134 --- a/ext/cdio/gstcdiocddasrc.c
135 +++ b/ext/cdio/gstcdiocddasrc.c
136 @@ -218,6 +218,9 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device)
137 GstCdioCddaSrc *src;
138 discmode_t discmode;
139 gint first_track, num_tracks, i;
140 +#if LIBCDIO_VERSION_NUM > 83
141 + cdtext_t *cdtext;
142 +#endif
143
144 src = GST_CDIO_CDDA_SRC (cddabasesrc);
145
146 @@ -244,8 +247,18 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device)
147 if (src->read_speed != -1)
148 cdio_set_speed (src->cdio, src->read_speed);
149
150 +#if LIBCDIO_VERSION_NUM > 83
151 + cdtext = cdio_get_cdtext (src->cdio);
152 +
153 + if (NULL == cdtext)
154 + GST_DEBUG_OBJECT (src, "no CD-TEXT on disc");
155 + else
156 + gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), cdtext,
157 + cddabasesrc->tags);
158 +#else
159 gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio,
160 cddabasesrc->tags);
161 +#endif
162
163 GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track);
164
165 @@ -262,8 +275,14 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device)
166 * the right thing here (for cddb id calculations etc. as well) */
167 track.start = cdio_get_track_lsn (src->cdio, i + first_track);
168 track.end = track.start + len_sectors - 1; /* -1? */
169 +#if LIBCDIO_VERSION_NUM > 83
170 + if (NULL != cdtext)
171 + track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), cdtext,
172 + i + first_track);
173 +#else
174 track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio,
175 i + first_track);
176 +#endif
177
178 gst_cdda_base_src_add_track (GST_CDDA_BASE_SRC (src), &track);
179 }
180 --
181 cgit v0.9.0.2-2-gbebe

  ViewVC Help
Powered by ViewVC 1.1.30