~ubuntu-branches/ubuntu/trusty/rygel/trusty

« back to all changes in this revision

Viewing changes to src/rygel/rygel-mp3-transcoder-bin.c

  • Committer: Package Import Robot
  • Author(s): Andreas Henriksson
  • Date: 2011-12-16 15:21:25 UTC
  • mfrom: (14.1.2 sid)
  • Revision ID: package-import@ubuntu.com-20111216152125-qgn31dkfmhouhrf0
Upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* rygel-mp3-transcoder-bin.c generated by valac 0.14.1, the Vala compiler
 
2
 * generated from rygel-mp3-transcoder-bin.vala, do not modify */
 
3
 
 
4
/*
 
5
 * Copyright (C) 2009 Nokia Corporation.
 
6
 *
 
7
 * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
 
8
 *                               <zeeshan.ali@nokia.com>
 
9
 *
 
10
 * This file is part of Rygel.
 
11
 *
 
12
 * Rygel is free software; you can redistribute it and/or modify
 
13
 * it under the terms of the GNU Lesser General Public License as published by
 
14
 * the Free Software Foundation; either version 2 of the License, or
 
15
 * (at your option) any later version.
 
16
 *
 
17
 * Rygel is distributed in the hope that it will be useful,
 
18
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
19
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
20
 * GNU Lesser General Public License for more details.
 
21
 *
 
22
 * You should have received a copy of the GNU Lesser General Public License
 
23
 * along with this program; if not, write to the Free Software Foundation,
 
24
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
25
 */
 
26
 
 
27
#include <glib.h>
 
28
#include <glib-object.h>
 
29
#include <gst/gst.h>
 
30
#include <stdlib.h>
 
31
#include <string.h>
 
32
#include <glib/gi18n-lib.h>
 
33
 
 
34
 
 
35
#define RYGEL_TYPE_MP3_LAYER (rygel_mp3_layer_get_type ())
 
36
 
 
37
#define RYGEL_TYPE_MP3_TRANSCODER_BIN (rygel_mp3_transcoder_bin_get_type ())
 
38
#define RYGEL_MP3_TRANSCODER_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MP3_TRANSCODER_BIN, RygelMP3TranscoderBin))
 
39
#define RYGEL_MP3_TRANSCODER_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MP3_TRANSCODER_BIN, RygelMP3TranscoderBinClass))
 
40
#define RYGEL_IS_MP3_TRANSCODER_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MP3_TRANSCODER_BIN))
 
41
#define RYGEL_IS_MP3_TRANSCODER_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MP3_TRANSCODER_BIN))
 
42
#define RYGEL_MP3_TRANSCODER_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MP3_TRANSCODER_BIN, RygelMP3TranscoderBinClass))
 
43
 
 
44
typedef struct _RygelMP3TranscoderBin RygelMP3TranscoderBin;
 
45
typedef struct _RygelMP3TranscoderBinClass RygelMP3TranscoderBinClass;
 
46
typedef struct _RygelMP3TranscoderBinPrivate RygelMP3TranscoderBinPrivate;
 
47
#define _gst_object_unref0(var) ((var == NULL) ? NULL : (var = (gst_object_unref (var), NULL)))
 
48
 
 
49
#define RYGEL_TYPE_MEDIA_OBJECT (rygel_media_object_get_type ())
 
50
#define RYGEL_MEDIA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MEDIA_OBJECT, RygelMediaObject))
 
51
#define RYGEL_MEDIA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MEDIA_OBJECT, RygelMediaObjectClass))
 
52
#define RYGEL_IS_MEDIA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MEDIA_OBJECT))
 
53
#define RYGEL_IS_MEDIA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MEDIA_OBJECT))
 
54
#define RYGEL_MEDIA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MEDIA_OBJECT, RygelMediaObjectClass))
 
55
 
 
56
typedef struct _RygelMediaObject RygelMediaObject;
 
57
typedef struct _RygelMediaObjectClass RygelMediaObjectClass;
 
58
 
 
59
#define RYGEL_TYPE_MEDIA_ITEM (rygel_media_item_get_type ())
 
60
#define RYGEL_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MEDIA_ITEM, RygelMediaItem))
 
61
#define RYGEL_MEDIA_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MEDIA_ITEM, RygelMediaItemClass))
 
62
#define RYGEL_IS_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MEDIA_ITEM))
 
63
#define RYGEL_IS_MEDIA_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MEDIA_ITEM))
 
64
#define RYGEL_MEDIA_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MEDIA_ITEM, RygelMediaItemClass))
 
65
 
 
66
typedef struct _RygelMediaItem RygelMediaItem;
 
67
typedef struct _RygelMediaItemClass RygelMediaItemClass;
 
68
 
 
69
#define RYGEL_TYPE_TRANSCODER (rygel_transcoder_get_type ())
 
70
#define RYGEL_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_TRANSCODER, RygelTranscoder))
 
71
#define RYGEL_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_TRANSCODER, RygelTranscoderClass))
 
72
#define RYGEL_IS_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_TRANSCODER))
 
73
#define RYGEL_IS_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_TRANSCODER))
 
74
#define RYGEL_TRANSCODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_TRANSCODER, RygelTranscoderClass))
 
75
 
 
76
typedef struct _RygelTranscoder RygelTranscoder;
 
77
typedef struct _RygelTranscoderClass RygelTranscoderClass;
 
78
 
 
79
#define RYGEL_TYPE_MP3_TRANSCODER (rygel_mp3_transcoder_get_type ())
 
80
#define RYGEL_MP3_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MP3_TRANSCODER, RygelMP3Transcoder))
 
81
#define RYGEL_MP3_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MP3_TRANSCODER, RygelMP3TranscoderClass))
 
82
#define RYGEL_IS_MP3_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MP3_TRANSCODER))
 
83
#define RYGEL_IS_MP3_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MP3_TRANSCODER))
 
84
#define RYGEL_MP3_TRANSCODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MP3_TRANSCODER, RygelMP3TranscoderClass))
 
85
 
 
86
typedef struct _RygelMP3Transcoder RygelMP3Transcoder;
 
87
typedef struct _RygelMP3TranscoderClass RygelMP3TranscoderClass;
 
88
#define _g_free0(var) (var = (g_free (var), NULL))
 
89
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 
90
 
 
91
typedef enum  {
 
92
        RYGEL_MP3_LAYER_TWO = 1,
 
93
        RYGEL_MP3_LAYER_THREE = 2
 
94
} RygelMP3Layer;
 
95
 
 
96
struct _RygelMP3TranscoderBin {
 
97
        GstBin parent_instance;
 
98
        RygelMP3TranscoderBinPrivate * priv;
 
99
};
 
100
 
 
101
struct _RygelMP3TranscoderBinClass {
 
102
        GstBinClass parent_class;
 
103
};
 
104
 
 
105
struct _RygelMP3TranscoderBinPrivate {
 
106
        GstElement* audio_enc;
 
107
};
 
108
 
 
109
typedef enum  {
 
110
        RYGEL_GST_ERROR_MISSING_PLUGIN,
 
111
        RYGEL_GST_ERROR_LINK
 
112
} RygelGstError;
 
113
#define RYGEL_GST_ERROR rygel_gst_error_quark ()
 
114
 
 
115
static gpointer rygel_mp3_transcoder_bin_parent_class = NULL;
 
116
 
 
117
GType rygel_mp3_layer_get_type (void) G_GNUC_CONST;
 
118
GType rygel_mp3_transcoder_bin_get_type (void) G_GNUC_CONST;
 
119
#define RYGEL_MP3_TRANSCODER_BIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), RYGEL_TYPE_MP3_TRANSCODER_BIN, RygelMP3TranscoderBinPrivate))
 
120
enum  {
 
121
        RYGEL_MP3_TRANSCODER_BIN_DUMMY_PROPERTY
 
122
};
 
123
#define RYGEL_MP3_TRANSCODER_BIN_DECODEBIN "decodebin2"
 
124
#define RYGEL_MP3_TRANSCODER_BIN_AUDIO_SRC_PAD "audio-src-pad"
 
125
#define RYGEL_MP3_TRANSCODER_BIN_AUDIO_SINK_PAD "audio-sink-pad"
 
126
GType rygel_media_object_get_type (void) G_GNUC_CONST;
 
127
GType rygel_media_item_get_type (void) G_GNUC_CONST;
 
128
GType rygel_transcoder_get_type (void) G_GNUC_CONST;
 
129
GType rygel_mp3_transcoder_get_type (void) G_GNUC_CONST;
 
130
RygelMP3TranscoderBin* rygel_mp3_transcoder_bin_new (RygelMediaItem* item, GstElement* src, RygelMP3Transcoder* transcoder, GError** error);
 
131
RygelMP3TranscoderBin* rygel_mp3_transcoder_bin_construct (GType object_type, RygelMediaItem* item, GstElement* src, RygelMP3Transcoder* transcoder, GError** error);
 
132
GstElement* rygel_gst_utils_create_element (const gchar* factoryname, const gchar* name, GError** error);
 
133
GstElement* rygel_mp3_transcoder_create_encoder (RygelMP3Transcoder* self, RygelMediaItem* item, const gchar* src_pad_name, const gchar* sink_pad_name, GError** error);
 
134
static void rygel_mp3_transcoder_bin_decodebin_pad_added (RygelMP3TranscoderBin* self, GstElement* decodebin, GstPad* new_pad);
 
135
static void _rygel_mp3_transcoder_bin_decodebin_pad_added_gst_element_pad_added (GstElement* _sender, GstPad* pad, gpointer self);
 
136
GQuark rygel_gst_error_quark (void);
 
137
void rygel_gst_utils_post_error (GstElement* dest, GError* _error_);
 
138
static void rygel_mp3_transcoder_bin_finalize (GObject* obj);
 
139
 
 
140
 
 
141
GType rygel_mp3_layer_get_type (void) {
 
142
        static volatile gsize rygel_mp3_layer_type_id__volatile = 0;
 
143
        if (g_once_init_enter (&rygel_mp3_layer_type_id__volatile)) {
 
144
                static const GEnumValue values[] = {{RYGEL_MP3_LAYER_TWO, "RYGEL_MP3_LAYER_TWO", "two"}, {RYGEL_MP3_LAYER_THREE, "RYGEL_MP3_LAYER_THREE", "three"}, {0, NULL, NULL}};
 
145
                GType rygel_mp3_layer_type_id;
 
146
                rygel_mp3_layer_type_id = g_enum_register_static ("RygelMP3Layer", values);
 
147
                g_once_init_leave (&rygel_mp3_layer_type_id__volatile, rygel_mp3_layer_type_id);
 
148
        }
 
149
        return rygel_mp3_layer_type_id__volatile;
 
150
}
 
151
 
 
152
 
 
153
static gpointer _gst_object_ref0 (gpointer self) {
 
154
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
155
        return self ? gst_object_ref (self) : NULL;
 
156
#line 157 "rygel-mp3-transcoder-bin.c"
 
157
}
 
158
 
 
159
 
 
160
static void _rygel_mp3_transcoder_bin_decodebin_pad_added_gst_element_pad_added (GstElement* _sender, GstPad* pad, gpointer self) {
 
161
#line 59 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
162
        rygel_mp3_transcoder_bin_decodebin_pad_added (self, _sender, pad);
 
163
#line 164 "rygel-mp3-transcoder-bin.c"
 
164
}
 
165
 
 
166
 
 
167
RygelMP3TranscoderBin* rygel_mp3_transcoder_bin_construct (GType object_type, RygelMediaItem* item, GstElement* src, RygelMP3Transcoder* transcoder, GError** error) {
 
168
        RygelMP3TranscoderBin * self = NULL;
 
169
        GstElement* _tmp0_ = NULL;
 
170
        GstElement* decodebin;
 
171
        RygelMP3Transcoder* _tmp1_;
 
172
        RygelMediaItem* _tmp2_;
 
173
        GstElement* _tmp3_ = NULL;
 
174
        GstElement* _tmp4_;
 
175
        GstElement* _tmp5_;
 
176
        GstElement* _tmp6_;
 
177
        GstElement* _tmp7_;
 
178
        GstElement* _tmp8_;
 
179
        GstElement* _tmp9_;
 
180
        GstElement* _tmp10_;
 
181
        GstElement* _tmp11_;
 
182
        GstElement* _tmp12_;
 
183
        GstElement* _tmp13_;
 
184
        GstPad* _tmp14_ = NULL;
 
185
        GstPad* src_pad;
 
186
        GstPad* _tmp15_;
 
187
        GstGhostPad* _tmp16_;
 
188
        GstGhostPad* ghost;
 
189
        GstGhostPad* _tmp17_;
 
190
        GstPad* _tmp18_;
 
191
        GstElement* _tmp19_;
 
192
        GError * _inner_error_ = NULL;
 
193
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
194
        g_return_val_if_fail (item != NULL, NULL);
 
195
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
196
        g_return_val_if_fail (src != NULL, NULL);
 
197
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
198
        g_return_val_if_fail (transcoder != NULL, NULL);
 
199
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
200
        self = (RygelMP3TranscoderBin*) g_object_new (object_type, NULL);
 
201
#line 46 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
202
        _tmp0_ = rygel_gst_utils_create_element (RYGEL_MP3_TRANSCODER_BIN_DECODEBIN, RYGEL_MP3_TRANSCODER_BIN_DECODEBIN, &_inner_error_);
 
203
#line 46 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
204
        decodebin = _tmp0_;
 
205
#line 46 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
206
        if (_inner_error_ != NULL) {
 
207
#line 46 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
208
                g_propagate_error (error, _inner_error_);
 
209
#line 46 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
210
                _gst_object_unref0 (self);
 
211
#line 46 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
212
                return NULL;
 
213
#line 214 "rygel-mp3-transcoder-bin.c"
 
214
        }
 
215
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
216
        _tmp1_ = transcoder;
 
217
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
218
        _tmp2_ = item;
 
219
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
220
        _tmp3_ = rygel_mp3_transcoder_create_encoder (_tmp1_, _tmp2_, RYGEL_MP3_TRANSCODER_BIN_AUDIO_SRC_PAD, RYGEL_MP3_TRANSCODER_BIN_AUDIO_SINK_PAD, &_inner_error_);
 
221
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
222
        _tmp4_ = _tmp3_;
 
223
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
224
        if (_inner_error_ != NULL) {
 
225
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
226
                g_propagate_error (error, _inner_error_);
 
227
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
228
                _gst_object_unref0 (decodebin);
 
229
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
230
                _gst_object_unref0 (self);
 
231
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
232
                return NULL;
 
233
#line 234 "rygel-mp3-transcoder-bin.c"
 
234
        }
 
235
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
236
        _gst_object_unref0 (self->priv->audio_enc);
 
237
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
238
        self->priv->audio_enc = _tmp4_;
 
239
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
240
        _tmp5_ = src;
 
241
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
242
        _tmp6_ = _gst_object_ref0 (_tmp5_);
 
243
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
244
        _tmp7_ = decodebin;
 
245
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
246
        _tmp8_ = _gst_object_ref0 (_tmp7_);
 
247
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
248
        _tmp9_ = self->priv->audio_enc;
 
249
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
250
        _tmp10_ = _gst_object_ref0 (_tmp9_);
 
251
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
252
        gst_bin_add_many ((GstBin*) self, _tmp6_, _tmp8_, _tmp10_, NULL);
 
253
#line 53 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
254
        _tmp11_ = src;
 
255
#line 53 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
256
        _tmp12_ = decodebin;
 
257
#line 53 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
258
        gst_element_link (_tmp11_, _tmp12_);
 
259
#line 55 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
260
        _tmp13_ = self->priv->audio_enc;
 
261
#line 55 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
262
        _tmp14_ = gst_element_get_static_pad (_tmp13_, RYGEL_MP3_TRANSCODER_BIN_AUDIO_SRC_PAD);
 
263
#line 55 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
264
        src_pad = _tmp14_;
 
265
#line 56 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
266
        _tmp15_ = src_pad;
 
267
#line 56 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
268
        _tmp16_ = (GstGhostPad*) gst_ghost_pad_new (NULL, _tmp15_);
 
269
#line 56 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
270
        gst_object_ref_sink (_tmp16_);
 
271
#line 56 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
272
        ghost = _tmp16_;
 
273
#line 57 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
274
        _tmp17_ = ghost;
 
275
#line 57 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
276
        _tmp18_ = _gst_object_ref0 ((GstPad*) _tmp17_);
 
277
#line 57 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
278
        gst_element_add_pad ((GstElement*) self, _tmp18_);
 
279
#line 59 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
280
        _tmp19_ = decodebin;
 
281
#line 59 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
282
        g_signal_connect_object (_tmp19_, "pad-added", (GCallback) _rygel_mp3_transcoder_bin_decodebin_pad_added_gst_element_pad_added, self, 0);
 
283
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
284
        _gst_object_unref0 (ghost);
 
285
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
286
        _gst_object_unref0 (src_pad);
 
287
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
288
        _gst_object_unref0 (decodebin);
 
289
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
290
        return self;
 
291
#line 292 "rygel-mp3-transcoder-bin.c"
 
292
}
 
293
 
 
294
 
 
295
RygelMP3TranscoderBin* rygel_mp3_transcoder_bin_new (RygelMediaItem* item, GstElement* src, RygelMP3Transcoder* transcoder, GError** error) {
 
296
#line 43 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
297
        return rygel_mp3_transcoder_bin_construct (RYGEL_TYPE_MP3_TRANSCODER_BIN, item, src, transcoder, error);
 
298
#line 299 "rygel-mp3-transcoder-bin.c"
 
299
}
 
300
 
 
301
 
 
302
static void rygel_mp3_transcoder_bin_decodebin_pad_added (RygelMP3TranscoderBin* self, GstElement* decodebin, GstPad* new_pad) {
 
303
        GstElement* _tmp0_;
 
304
        GstPad* _tmp1_ = NULL;
 
305
        GstPad* enc_pad;
 
306
        GstPad* _tmp2_;
 
307
        GstPad* _tmp3_;
 
308
        gboolean _tmp4_ = FALSE;
 
309
        GstPad* _tmp5_;
 
310
        GstPad* _tmp6_;
 
311
        GstPadLinkReturn _tmp7_ = 0;
 
312
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
313
        g_return_if_fail (self != NULL);
 
314
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
315
        g_return_if_fail (decodebin != NULL);
 
316
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
317
        g_return_if_fail (new_pad != NULL);
 
318
#line 63 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
319
        _tmp0_ = self->priv->audio_enc;
 
320
#line 63 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
321
        _tmp1_ = gst_element_get_pad (_tmp0_, RYGEL_MP3_TRANSCODER_BIN_AUDIO_SINK_PAD);
 
322
#line 63 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
323
        enc_pad = _tmp1_;
 
324
#line 64 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
325
        _tmp2_ = new_pad;
 
326
#line 64 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
327
        _tmp3_ = enc_pad;
 
328
#line 64 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
329
        _tmp4_ = gst_pad_can_link (_tmp2_, _tmp3_);
 
330
#line 64 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
331
        if (!_tmp4_) {
 
332
#line 65 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
333
                _gst_object_unref0 (enc_pad);
 
334
#line 65 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
335
                return;
 
336
#line 337 "rygel-mp3-transcoder-bin.c"
 
337
        }
 
338
#line 68 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
339
        _tmp5_ = new_pad;
 
340
#line 68 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
341
        _tmp6_ = enc_pad;
 
342
#line 68 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
343
        _tmp7_ = gst_pad_link (_tmp5_, _tmp6_);
 
344
#line 68 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
345
        if (_tmp7_ != GST_PAD_LINK_OK) {
 
346
#line 347 "rygel-mp3-transcoder-bin.c"
 
347
                const gchar* _tmp8_ = NULL;
 
348
                GstPad* _tmp9_;
 
349
                gchar* _tmp10_;
 
350
                gchar* _tmp11_;
 
351
                gchar* _tmp12_;
 
352
                GstPad* _tmp13_;
 
353
                gchar* _tmp14_;
 
354
                gchar* _tmp15_;
 
355
                gchar* _tmp16_;
 
356
                GError* _tmp17_;
 
357
                GError* _tmp18_;
 
358
                GError* _error_;
 
359
                GError* _tmp19_;
 
360
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
361
                _tmp8_ = _ ("Failed to link pad %s to %s");
 
362
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
363
                _tmp9_ = new_pad;
 
364
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
365
                _tmp10_ = gst_object_get_name ((GstObject*) _tmp9_);
 
366
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
367
                _tmp11_ = _tmp10_;
 
368
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
369
                _tmp12_ = _tmp11_;
 
370
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
371
                _tmp13_ = enc_pad;
 
372
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
373
                _tmp14_ = gst_object_get_name ((GstObject*) _tmp13_);
 
374
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
375
                _tmp15_ = _tmp14_;
 
376
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
377
                _tmp16_ = _tmp15_;
 
378
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
379
                _tmp17_ = g_error_new (RYGEL_GST_ERROR, RYGEL_GST_ERROR_LINK, _tmp8_, _tmp12_, _tmp16_);
 
380
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
381
                _tmp18_ = _tmp17_;
 
382
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
383
                _g_free0 (_tmp16_);
 
384
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
385
                _g_free0 (_tmp12_);
 
386
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
387
                _error_ = _tmp18_;
 
388
#line 72 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
389
                _tmp19_ = _error_;
 
390
#line 72 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
391
                rygel_gst_utils_post_error ((GstElement*) self, _tmp19_);
 
392
#line 74 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
393
                _g_error_free0 (_error_);
 
394
#line 74 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
395
                _gst_object_unref0 (enc_pad);
 
396
#line 74 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
397
                return;
 
398
#line 399 "rygel-mp3-transcoder-bin.c"
 
399
        }
 
400
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
401
        _gst_object_unref0 (enc_pad);
 
402
#line 403 "rygel-mp3-transcoder-bin.c"
 
403
}
 
404
 
 
405
 
 
406
static void rygel_mp3_transcoder_bin_class_init (RygelMP3TranscoderBinClass * klass) {
 
407
#line 35 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
408
        rygel_mp3_transcoder_bin_parent_class = g_type_class_peek_parent (klass);
 
409
#line 35 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
410
        g_type_class_add_private (klass, sizeof (RygelMP3TranscoderBinPrivate));
 
411
#line 35 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
412
        G_OBJECT_CLASS (klass)->finalize = rygel_mp3_transcoder_bin_finalize;
 
413
#line 414 "rygel-mp3-transcoder-bin.c"
 
414
}
 
415
 
 
416
 
 
417
static void rygel_mp3_transcoder_bin_instance_init (RygelMP3TranscoderBin * self) {
 
418
#line 35 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
419
        self->priv = RYGEL_MP3_TRANSCODER_BIN_GET_PRIVATE (self);
 
420
#line 421 "rygel-mp3-transcoder-bin.c"
 
421
}
 
422
 
 
423
 
 
424
static void rygel_mp3_transcoder_bin_finalize (GObject* obj) {
 
425
        RygelMP3TranscoderBin * self;
 
426
#line 35 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
427
        self = RYGEL_MP3_TRANSCODER_BIN (obj);
 
428
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
429
        _gst_object_unref0 (self->priv->audio_enc);
 
430
#line 35 "/home/jens/Source/rygel/src/rygel/rygel-mp3-transcoder-bin.vala"
 
431
        G_OBJECT_CLASS (rygel_mp3_transcoder_bin_parent_class)->finalize (obj);
 
432
#line 433 "rygel-mp3-transcoder-bin.c"
 
433
}
 
434
 
 
435
 
 
436
/**
 
437
 * A Gst.Bin derivative that implements transcoding of any type of media (using
 
438
 * decodebin2) to mpeg 1 layer 2 and 3 format.
 
439
 */
 
440
GType rygel_mp3_transcoder_bin_get_type (void) {
 
441
        static volatile gsize rygel_mp3_transcoder_bin_type_id__volatile = 0;
 
442
        if (g_once_init_enter (&rygel_mp3_transcoder_bin_type_id__volatile)) {
 
443
                static const GTypeInfo g_define_type_info = { sizeof (RygelMP3TranscoderBinClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rygel_mp3_transcoder_bin_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RygelMP3TranscoderBin), 0, (GInstanceInitFunc) rygel_mp3_transcoder_bin_instance_init, NULL };
 
444
                GType rygel_mp3_transcoder_bin_type_id;
 
445
                rygel_mp3_transcoder_bin_type_id = g_type_register_static (GST_TYPE_BIN, "RygelMP3TranscoderBin", &g_define_type_info, 0);
 
446
                g_once_init_leave (&rygel_mp3_transcoder_bin_type_id__volatile, rygel_mp3_transcoder_bin_type_id);
 
447
        }
 
448
        return rygel_mp3_transcoder_bin_type_id__volatile;
 
449
}
 
450
 
 
451
 
 
452