Magellan Linux

Annotation of /trunk/gst-plugins-ugly/patches/gst-plugins-ugly-0.10.19-libcdio90.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2328 - (hide annotations) (download)
Tue Dec 3 12:35:17 2013 UTC (10 years, 5 months ago) by niro
File size: 6136 byte(s)
-added libcdio-0.90 patch
1 niro 2328 From 649bd92cd2600719862ad5189899212409dd0a67 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     Conflicts:
9    
10     ext/cdio/gstcdiocddasrc.c
11     ---
12     diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c
13     index 2f58d18..483ebf5 100644
14     --- a/ext/cdio/gstcdio.c
15     +++ b/ext/cdio/gstcdio.c
16     @@ -30,12 +30,16 @@
17     GST_DEBUG_CATEGORY (gst_cdio_debug);
18    
19     void
20     -gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext,
21     +gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track,
22     cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags)
23     {
24     const gchar *txt;
25    
26     +#if LIBCDIO_VERSION_NUM > 83
27     + txt = cdtext_get_const (cdtext, field, track);
28     +#else
29     txt = cdtext_get_const (field, cdtext);
30     +#endif
31     if (txt == NULL || *txt == '\0') {
32     GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag);
33     return;
34     @@ -57,6 +61,12 @@ gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext,
35     }
36    
37     GstTagList *
38     +#if LIBCDIO_VERSION_NUM > 83
39     +gst_cdio_get_cdtext (GstObject * src, cdtext_t * t, track_t track)
40     +{
41     + GstTagList *tags = NULL;
42     +
43     +#else
44     gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track)
45     {
46     GstTagList *tags = NULL;
47     @@ -67,14 +77,22 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track)
48     GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track);
49     return NULL;
50     }
51     +#endif
52    
53     - gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags);
54     - gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags);
55     + gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_PERFORMER,
56     + GST_TAG_ARTIST, &tags);
57     + gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_TITLE, GST_TAG_TITLE,
58     + &tags);
59    
60     return tags;
61     }
62    
63     void
64     +#if LIBCDIO_VERSION_NUM > 83
65     +gst_cdio_add_cdtext_album_tags (GstObject * src, cdtext_t * t,
66     + GstTagList * tags)
67     +{
68     +#else
69     gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags)
70     {
71     cdtext_t *t;
72     @@ -84,11 +102,14 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags)
73     GST_DEBUG_OBJECT (src, "no CD-TEXT for album");
74     return;
75     }
76     +#endif
77    
78     - /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */
79     - gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags);
80     - gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags);
81     -
82     + gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_PERFORMER,
83     + GST_TAG_ALBUM_ARTIST, &tags);
84     + gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_TITLE, GST_TAG_ALBUM,
85     + &tags);
86     + gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_GENRE, GST_TAG_GENRE,
87     + &tags);
88     GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags);
89     }
90    
91     diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h
92     index ef31ed0..c6da580 100644
93     --- a/ext/cdio/gstcdio.h
94     +++ b/ext/cdio/gstcdio.h
95     @@ -24,22 +24,38 @@
96     #include <gst/gst.h>
97     #include <cdio/cdio.h>
98     #include <cdio/cdtext.h>
99     +#include <cdio/version.h>
100     +
101     +#if LIBCDIO_VERSION_NUM <= 83
102     + #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER
103     + #define CDTEXT_FIELD_GENRE CDTEXT_GENRE
104     + #define CDTEXT_FIELD_TITLE CDTEXT_TITLE
105     +#endif
106    
107     GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug);
108     #define GST_CAT_DEFAULT gst_cdio_debug
109    
110     void gst_cdio_add_cdtext_field (GstObject * src,
111     cdtext_t * cdtext,
112     + track_t track,
113     cdtext_field_t field,
114     const gchar * gst_tag,
115     GstTagList ** p_tags);
116    
117     GstTagList * gst_cdio_get_cdtext (GstObject * src,
118     +#if LIBCDIO_VERSION_NUM > 83
119     + cdtext_t * t,
120     +#else
121     CdIo * cdio,
122     +#endif
123     track_t track);
124    
125     void gst_cdio_add_cdtext_album_tags (GstObject * src,
126     +#if LIBCDIO_VERSION_NUM > 83
127     + cdtext_t * t,
128     +#else
129     CdIo * cdio,
130     +#endif
131     GstTagList * tags);
132    
133     #endif /* __GST_CDIO_H__ */
134     diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c
135     index 615a0c8..830839e 100644
136     --- a/ext/cdio/gstcdiocddasrc.c
137     +++ b/ext/cdio/gstcdiocddasrc.c
138     @@ -206,6 +206,9 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device)
139     GstCdioCddaSrc *src;
140     discmode_t discmode;
141     gint first_track, num_tracks, i;
142     +#if LIBCDIO_VERSION_NUM > 83
143     + cdtext_t *cdtext;
144     +#endif
145    
146     src = GST_CDIO_CDDA_SRC (audiocdsrc);
147    
148     @@ -232,8 +235,18 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device)
149     if (src->read_speed != -1)
150     cdio_set_speed (src->cdio, src->read_speed);
151    
152     +#if LIBCDIO_VERSION_NUM > 83
153     + cdtext = cdio_get_cdtext (src->cdio);
154     +
155     + if (NULL == cdtext)
156     + GST_DEBUG_OBJECT (src, "no CD-TEXT on disc");
157     + else
158     + gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), cdtext,
159     + cddabasesrc->tags);
160     +#else
161     gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio,
162     cddabasesrc->tags);
163     +#endif
164    
165     GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track);
166    
167     @@ -250,8 +263,14 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device)
168     * the right thing here (for cddb id calculations etc. as well) */
169     track.start = cdio_get_track_lsn (src->cdio, i + first_track);
170     track.end = track.start + len_sectors - 1; /* -1? */
171     +#if LIBCDIO_VERSION_NUM > 83
172     + if (NULL != cdtext)
173     + track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), cdtext,
174     + i + first_track);
175     +#else
176     track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio,
177     i + first_track);
178     +#endif
179    
180     gst_audio_cd_src_add_track (GST_AUDIO_CD_SRC (src), &track);
181     }
182     --
183     cgit v0.9.0.2-2-gbebe