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

« back to all changes in this revision

Viewing changes to src/rygel/rygel-mp2ts-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-mp2ts-transcoder-bin.c generated by valac 0.14.1, the Vala compiler
 
2
 * generated from rygel-mp2ts-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_MP2_TS_TRANSCODER_BIN (rygel_mp2_ts_transcoder_bin_get_type ())
 
36
#define RYGEL_MP2_TS_TRANSCODER_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MP2_TS_TRANSCODER_BIN, RygelMP2TSTranscoderBin))
 
37
#define RYGEL_MP2_TS_TRANSCODER_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MP2_TS_TRANSCODER_BIN, RygelMP2TSTranscoderBinClass))
 
38
#define RYGEL_IS_MP2_TS_TRANSCODER_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MP2_TS_TRANSCODER_BIN))
 
39
#define RYGEL_IS_MP2_TS_TRANSCODER_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MP2_TS_TRANSCODER_BIN))
 
40
#define RYGEL_MP2_TS_TRANSCODER_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MP2_TS_TRANSCODER_BIN, RygelMP2TSTranscoderBinClass))
 
41
 
 
42
typedef struct _RygelMP2TSTranscoderBin RygelMP2TSTranscoderBin;
 
43
typedef struct _RygelMP2TSTranscoderBinClass RygelMP2TSTranscoderBinClass;
 
44
typedef struct _RygelMP2TSTranscoderBinPrivate RygelMP2TSTranscoderBinPrivate;
 
45
#define _gst_object_unref0(var) ((var == NULL) ? NULL : (var = (gst_object_unref (var), NULL)))
 
46
 
 
47
#define RYGEL_TYPE_MEDIA_OBJECT (rygel_media_object_get_type ())
 
48
#define RYGEL_MEDIA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MEDIA_OBJECT, RygelMediaObject))
 
49
#define RYGEL_MEDIA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MEDIA_OBJECT, RygelMediaObjectClass))
 
50
#define RYGEL_IS_MEDIA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MEDIA_OBJECT))
 
51
#define RYGEL_IS_MEDIA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MEDIA_OBJECT))
 
52
#define RYGEL_MEDIA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MEDIA_OBJECT, RygelMediaObjectClass))
 
53
 
 
54
typedef struct _RygelMediaObject RygelMediaObject;
 
55
typedef struct _RygelMediaObjectClass RygelMediaObjectClass;
 
56
 
 
57
#define RYGEL_TYPE_MEDIA_ITEM (rygel_media_item_get_type ())
 
58
#define RYGEL_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MEDIA_ITEM, RygelMediaItem))
 
59
#define RYGEL_MEDIA_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MEDIA_ITEM, RygelMediaItemClass))
 
60
#define RYGEL_IS_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MEDIA_ITEM))
 
61
#define RYGEL_IS_MEDIA_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MEDIA_ITEM))
 
62
#define RYGEL_MEDIA_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MEDIA_ITEM, RygelMediaItemClass))
 
63
 
 
64
typedef struct _RygelMediaItem RygelMediaItem;
 
65
typedef struct _RygelMediaItemClass RygelMediaItemClass;
 
66
 
 
67
#define RYGEL_TYPE_TRANSCODER (rygel_transcoder_get_type ())
 
68
#define RYGEL_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_TRANSCODER, RygelTranscoder))
 
69
#define RYGEL_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_TRANSCODER, RygelTranscoderClass))
 
70
#define RYGEL_IS_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_TRANSCODER))
 
71
#define RYGEL_IS_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_TRANSCODER))
 
72
#define RYGEL_TRANSCODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_TRANSCODER, RygelTranscoderClass))
 
73
 
 
74
typedef struct _RygelTranscoder RygelTranscoder;
 
75
typedef struct _RygelTranscoderClass RygelTranscoderClass;
 
76
 
 
77
#define RYGEL_TYPE_MP2_TS_TRANSCODER (rygel_mp2_ts_transcoder_get_type ())
 
78
#define RYGEL_MP2_TS_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MP2_TS_TRANSCODER, RygelMP2TSTranscoder))
 
79
#define RYGEL_MP2_TS_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MP2_TS_TRANSCODER, RygelMP2TSTranscoderClass))
 
80
#define RYGEL_IS_MP2_TS_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MP2_TS_TRANSCODER))
 
81
#define RYGEL_IS_MP2_TS_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MP2_TS_TRANSCODER))
 
82
#define RYGEL_MP2_TS_TRANSCODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MP2_TS_TRANSCODER, RygelMP2TSTranscoderClass))
 
83
 
 
84
typedef struct _RygelMP2TSTranscoder RygelMP2TSTranscoder;
 
85
typedef struct _RygelMP2TSTranscoderClass RygelMP2TSTranscoderClass;
 
86
 
 
87
#define RYGEL_TYPE_MP3_LAYER (rygel_mp3_layer_get_type ())
 
88
 
 
89
#define RYGEL_TYPE_MP3_TRANSCODER (rygel_mp3_transcoder_get_type ())
 
90
#define RYGEL_MP3_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MP3_TRANSCODER, RygelMP3Transcoder))
 
91
#define RYGEL_MP3_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MP3_TRANSCODER, RygelMP3TranscoderClass))
 
92
#define RYGEL_IS_MP3_TRANSCODER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MP3_TRANSCODER))
 
93
#define RYGEL_IS_MP3_TRANSCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MP3_TRANSCODER))
 
94
#define RYGEL_MP3_TRANSCODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MP3_TRANSCODER, RygelMP3TranscoderClass))
 
95
 
 
96
typedef struct _RygelMP3Transcoder RygelMP3Transcoder;
 
97
typedef struct _RygelMP3TranscoderClass RygelMP3TranscoderClass;
 
98
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 
99
#define _g_free0(var) (var = (g_free (var), NULL))
 
100
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 
101
 
 
102
struct _RygelMP2TSTranscoderBin {
 
103
        GstBin parent_instance;
 
104
        RygelMP2TSTranscoderBinPrivate * priv;
 
105
};
 
106
 
 
107
struct _RygelMP2TSTranscoderBinClass {
 
108
        GstBinClass parent_class;
 
109
};
 
110
 
 
111
struct _RygelMP2TSTranscoderBinPrivate {
 
112
        GstElement* audio_enc;
 
113
        GstElement* video_enc;
 
114
        GstElement* muxer;
 
115
};
 
116
 
 
117
typedef enum  {
 
118
        RYGEL_MP3_LAYER_TWO = 1,
 
119
        RYGEL_MP3_LAYER_THREE = 2
 
120
} RygelMP3Layer;
 
121
 
 
122
typedef enum  {
 
123
        RYGEL_GST_ERROR_MISSING_PLUGIN,
 
124
        RYGEL_GST_ERROR_LINK
 
125
} RygelGstError;
 
126
#define RYGEL_GST_ERROR rygel_gst_error_quark ()
 
127
 
 
128
static gpointer rygel_mp2_ts_transcoder_bin_parent_class = NULL;
 
129
 
 
130
GType rygel_mp2_ts_transcoder_bin_get_type (void) G_GNUC_CONST;
 
131
#define RYGEL_MP2_TS_TRANSCODER_BIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), RYGEL_TYPE_MP2_TS_TRANSCODER_BIN, RygelMP2TSTranscoderBinPrivate))
 
132
enum  {
 
133
        RYGEL_MP2_TS_TRANSCODER_BIN_DUMMY_PROPERTY
 
134
};
 
135
#define RYGEL_MP2_TS_TRANSCODER_BIN_DECODEBIN "decodebin2"
 
136
#define RYGEL_MP2_TS_TRANSCODER_BIN_MUXER "mpegtsmux"
 
137
#define RYGEL_MP2_TS_TRANSCODER_BIN_AUDIO_ENC_SINK "audio-enc-sink-pad"
 
138
#define RYGEL_MP2_TS_TRANSCODER_BIN_VIDEO_ENC_SINK "sink"
 
139
GType rygel_media_object_get_type (void) G_GNUC_CONST;
 
140
GType rygel_media_item_get_type (void) G_GNUC_CONST;
 
141
GType rygel_transcoder_get_type (void) G_GNUC_CONST;
 
142
GType rygel_mp2_ts_transcoder_get_type (void) G_GNUC_CONST;
 
143
RygelMP2TSTranscoderBin* rygel_mp2_ts_transcoder_bin_new (RygelMediaItem* item, GstElement* src, RygelMP2TSTranscoder* transcoder, GError** error);
 
144
RygelMP2TSTranscoderBin* rygel_mp2_ts_transcoder_bin_construct (GType object_type, RygelMediaItem* item, GstElement* src, RygelMP2TSTranscoder* transcoder, GError** error);
 
145
GstElement* rygel_gst_utils_create_element (const gchar* factoryname, const gchar* name, GError** error);
 
146
GType rygel_mp3_layer_get_type (void) G_GNUC_CONST;
 
147
RygelMP3Transcoder* rygel_mp3_transcoder_new (RygelMP3Layer layer);
 
148
RygelMP3Transcoder* rygel_mp3_transcoder_construct (GType object_type, RygelMP3Layer layer);
 
149
GType rygel_mp3_transcoder_get_type (void) G_GNUC_CONST;
 
150
GstElement* rygel_mp3_transcoder_create_encoder (RygelMP3Transcoder* self, RygelMediaItem* item, const gchar* src_pad_name, const gchar* sink_pad_name, GError** error);
 
151
GstElement* rygel_mp2_ts_transcoder_create_encoder (RygelMP2TSTranscoder* self, RygelMediaItem* item, const gchar* src_pad_name, const gchar* sink_pad_name, GError** error);
 
152
static void rygel_mp2_ts_transcoder_bin_decodebin_pad_added (RygelMP2TSTranscoderBin* self, GstElement* decodebin, GstPad* new_pad);
 
153
static void _rygel_mp2_ts_transcoder_bin_decodebin_pad_added_gst_element_pad_added (GstElement* _sender, GstPad* pad, gpointer self);
 
154
static gboolean rygel_mp2_ts_transcoder_bin_autoplug_continue (RygelMP2TSTranscoderBin* self, GstElement* decodebin, GstPad* new_pad, GstCaps* caps);
 
155
static gboolean _rygel_mp2_ts_transcoder_bin_autoplug_continue_dynamic_autoplug_continue0_ (GstElement* _sender, GstPad* new_pad, GstCaps* caps, gpointer self);
 
156
static void g_cclosure_user_marshal_BOOLEAN__OBJECT_GST_CAPS (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
 
157
void _dynamic_autoplug_continue1_connect (gpointer obj, const char * signal_name, GCallback handler, gpointer data);
 
158
GQuark rygel_gst_error_quark (void);
 
159
void rygel_gst_utils_post_error (GstElement* dest, GError* _error_);
 
160
static void rygel_mp2_ts_transcoder_bin_finalize (GObject* obj);
 
161
 
 
162
 
 
163
static gpointer _gst_object_ref0 (gpointer self) {
 
164
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
165
        return self ? gst_object_ref (self) : NULL;
 
166
#line 167 "rygel-mp2ts-transcoder-bin.c"
 
167
}
 
168
 
 
169
 
 
170
static void _rygel_mp2_ts_transcoder_bin_decodebin_pad_added_gst_element_pad_added (GstElement* _sender, GstPad* pad, gpointer self) {
 
171
#line 65 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
172
        rygel_mp2_ts_transcoder_bin_decodebin_pad_added (self, _sender, pad);
 
173
#line 174 "rygel-mp2ts-transcoder-bin.c"
 
174
}
 
175
 
 
176
 
 
177
static gboolean _rygel_mp2_ts_transcoder_bin_autoplug_continue_dynamic_autoplug_continue0_ (GstElement* _sender, GstPad* new_pad, GstCaps* caps, gpointer self) {
 
178
        gboolean result;
 
179
        result = rygel_mp2_ts_transcoder_bin_autoplug_continue (self, _sender, new_pad, caps);
 
180
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
181
        return result;
 
182
#line 183 "rygel-mp2ts-transcoder-bin.c"
 
183
}
 
184
 
 
185
 
 
186
static void g_cclosure_user_marshal_BOOLEAN__OBJECT_GST_CAPS (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
 
187
        typedef gboolean (*GMarshalFunc_BOOLEAN__OBJECT_GST_CAPS) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
 
188
        register GMarshalFunc_BOOLEAN__OBJECT_GST_CAPS callback;
 
189
        register GCClosure * cc;
 
190
        register gpointer data1;
 
191
        register gpointer data2;
 
192
        gboolean v_return;
 
193
        cc = (GCClosure *) closure;
 
194
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
195
        g_return_if_fail (return_value != NULL);
 
196
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
197
        g_return_if_fail (n_param_values == 3);
 
198
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
199
        if (G_CCLOSURE_SWAP_DATA (closure)) {
 
200
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
201
                data1 = closure->data;
 
202
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
203
                data2 = param_values->data[0].v_pointer;
 
204
#line 205 "rygel-mp2ts-transcoder-bin.c"
 
205
        } else {
 
206
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
207
                data1 = param_values->data[0].v_pointer;
 
208
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
209
                data2 = closure->data;
 
210
#line 211 "rygel-mp2ts-transcoder-bin.c"
 
211
        }
 
212
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
213
        callback = (GMarshalFunc_BOOLEAN__OBJECT_GST_CAPS) (marshal_data ? marshal_data : cc->callback);
 
214
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
215
        v_return = callback (data1, g_value_get_object (param_values + 1), gst_value_get_caps (param_values + 2), data2);
 
216
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
217
        g_value_set_boolean (return_value, v_return);
 
218
#line 219 "rygel-mp2ts-transcoder-bin.c"
 
219
}
 
220
 
 
221
 
 
222
void _dynamic_autoplug_continue1_connect (gpointer obj, const char * signal_name, GCallback handler, gpointer data) {
 
223
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
224
        g_signal_connect_object (obj, signal_name, handler, data, 0);
 
225
#line 226 "rygel-mp2ts-transcoder-bin.c"
 
226
}
 
227
 
 
228
 
 
229
RygelMP2TSTranscoderBin* rygel_mp2_ts_transcoder_bin_construct (GType object_type, RygelMediaItem* item, GstElement* src, RygelMP2TSTranscoder* transcoder, GError** error) {
 
230
        RygelMP2TSTranscoderBin * self = NULL;
 
231
        GstElement* _tmp0_ = NULL;
 
232
        GstElement* decodebin;
 
233
        RygelMP3Transcoder* _tmp1_;
 
234
        RygelMP3Transcoder* mp3_transcoder;
 
235
        RygelMP3Transcoder* _tmp2_;
 
236
        RygelMediaItem* _tmp3_;
 
237
        GstElement* _tmp4_ = NULL;
 
238
        GstElement* _tmp5_;
 
239
        RygelMP2TSTranscoder* _tmp6_;
 
240
        RygelMediaItem* _tmp7_;
 
241
        GstElement* _tmp8_ = NULL;
 
242
        GstElement* _tmp9_;
 
243
        GstElement* _tmp10_ = NULL;
 
244
        GstElement* _tmp11_;
 
245
        GstElement* _tmp12_;
 
246
        GstElement* _tmp13_;
 
247
        GstElement* _tmp14_;
 
248
        GstElement* _tmp15_;
 
249
        GstElement* _tmp16_;
 
250
        GstElement* _tmp17_;
 
251
        GstElement* _tmp18_;
 
252
        GstElement* _tmp19_;
 
253
        GstElement* _tmp20_;
 
254
        GstElement* _tmp21_;
 
255
        GstElement* _tmp22_;
 
256
        GstElement* _tmp23_;
 
257
        GstElement* _tmp24_;
 
258
        GstPad* _tmp25_ = NULL;
 
259
        GstPad* src_pad;
 
260
        GstPad* _tmp26_;
 
261
        GstGhostPad* _tmp27_;
 
262
        GstGhostPad* ghost;
 
263
        GstGhostPad* _tmp28_;
 
264
        GstPad* _tmp29_;
 
265
        GstElement* _tmp30_;
 
266
        GstElement* _tmp31_;
 
267
        GError * _inner_error_ = NULL;
 
268
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
269
        g_return_val_if_fail (item != NULL, NULL);
 
270
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
271
        g_return_val_if_fail (src != NULL, NULL);
 
272
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
273
        g_return_val_if_fail (transcoder != NULL, NULL);
 
274
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
275
        self = (RygelMP2TSTranscoderBin*) g_object_new (object_type, NULL);
 
276
#line 45 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
277
        _tmp0_ = rygel_gst_utils_create_element (RYGEL_MP2_TS_TRANSCODER_BIN_DECODEBIN, RYGEL_MP2_TS_TRANSCODER_BIN_DECODEBIN, &_inner_error_);
 
278
#line 45 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
279
        decodebin = _tmp0_;
 
280
#line 45 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
281
        if (_inner_error_ != NULL) {
 
282
#line 45 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
283
                g_propagate_error (error, _inner_error_);
 
284
#line 45 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
285
                _gst_object_unref0 (self);
 
286
#line 45 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
287
                return NULL;
 
288
#line 289 "rygel-mp2ts-transcoder-bin.c"
 
289
        }
 
290
#line 47 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
291
        _tmp1_ = rygel_mp3_transcoder_new (RYGEL_MP3_LAYER_TWO);
 
292
#line 47 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
293
        mp3_transcoder = _tmp1_;
 
294
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
295
        _tmp2_ = mp3_transcoder;
 
296
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
297
        _tmp3_ = item;
 
298
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
299
        _tmp4_ = rygel_mp3_transcoder_create_encoder (_tmp2_, _tmp3_, NULL, RYGEL_MP2_TS_TRANSCODER_BIN_AUDIO_ENC_SINK, &_inner_error_);
 
300
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
301
        _tmp5_ = _tmp4_;
 
302
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
303
        if (_inner_error_ != NULL) {
 
304
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
305
                g_propagate_error (error, _inner_error_);
 
306
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
307
                _g_object_unref0 (mp3_transcoder);
 
308
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
309
                _gst_object_unref0 (decodebin);
 
310
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
311
                _gst_object_unref0 (self);
 
312
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
313
                return NULL;
 
314
#line 315 "rygel-mp2ts-transcoder-bin.c"
 
315
        }
 
316
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
317
        _gst_object_unref0 (self->priv->audio_enc);
 
318
#line 48 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
319
        self->priv->audio_enc = _tmp5_;
 
320
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
321
        _tmp6_ = transcoder;
 
322
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
323
        _tmp7_ = item;
 
324
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
325
        _tmp8_ = rygel_mp2_ts_transcoder_create_encoder (_tmp6_, _tmp7_, NULL, RYGEL_MP2_TS_TRANSCODER_BIN_VIDEO_ENC_SINK, &_inner_error_);
 
326
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
327
        _tmp9_ = _tmp8_;
 
328
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
329
        if (_inner_error_ != NULL) {
 
330
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
331
                g_propagate_error (error, _inner_error_);
 
332
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
333
                _g_object_unref0 (mp3_transcoder);
 
334
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
335
                _gst_object_unref0 (decodebin);
 
336
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
337
                _gst_object_unref0 (self);
 
338
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
339
                return NULL;
 
340
#line 341 "rygel-mp2ts-transcoder-bin.c"
 
341
        }
 
342
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
343
        _gst_object_unref0 (self->priv->video_enc);
 
344
#line 51 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
345
        self->priv->video_enc = _tmp9_;
 
346
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
347
        _tmp10_ = rygel_gst_utils_create_element (RYGEL_MP2_TS_TRANSCODER_BIN_MUXER, RYGEL_MP2_TS_TRANSCODER_BIN_MUXER, &_inner_error_);
 
348
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
349
        _tmp11_ = _tmp10_;
 
350
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
351
        if (_inner_error_ != NULL) {
 
352
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
353
                g_propagate_error (error, _inner_error_);
 
354
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
355
                _g_object_unref0 (mp3_transcoder);
 
356
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
357
                _gst_object_unref0 (decodebin);
 
358
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
359
                _gst_object_unref0 (self);
 
360
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
361
                return NULL;
 
362
#line 363 "rygel-mp2ts-transcoder-bin.c"
 
363
        }
 
364
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
365
        _gst_object_unref0 (self->priv->muxer);
 
366
#line 52 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
367
        self->priv->muxer = _tmp11_;
 
368
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
369
        _tmp12_ = src;
 
370
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
371
        _tmp13_ = _gst_object_ref0 (_tmp12_);
 
372
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
373
        _tmp14_ = decodebin;
 
374
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
375
        _tmp15_ = _gst_object_ref0 (_tmp14_);
 
376
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
377
        _tmp16_ = self->priv->audio_enc;
 
378
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
379
        _tmp17_ = _gst_object_ref0 (_tmp16_);
 
380
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
381
        _tmp18_ = self->priv->video_enc;
 
382
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
383
        _tmp19_ = _gst_object_ref0 (_tmp18_);
 
384
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
385
        _tmp20_ = self->priv->muxer;
 
386
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
387
        _tmp21_ = _gst_object_ref0 (_tmp20_);
 
388
#line 54 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
389
        gst_bin_add_many ((GstBin*) self, _tmp13_, _tmp15_, _tmp17_, _tmp19_, _tmp21_, NULL);
 
390
#line 59 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
391
        _tmp22_ = src;
 
392
#line 59 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
393
        _tmp23_ = decodebin;
 
394
#line 59 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
395
        gst_element_link (_tmp22_, _tmp23_);
 
396
#line 61 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
397
        _tmp24_ = self->priv->muxer;
 
398
#line 61 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
399
        _tmp25_ = gst_element_get_static_pad (_tmp24_, "src");
 
400
#line 61 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
401
        src_pad = _tmp25_;
 
402
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
403
        _tmp26_ = src_pad;
 
404
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
405
        _tmp27_ = (GstGhostPad*) gst_ghost_pad_new (NULL, _tmp26_);
 
406
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
407
        gst_object_ref_sink (_tmp27_);
 
408
#line 62 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
409
        ghost = _tmp27_;
 
410
#line 63 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
411
        _tmp28_ = ghost;
 
412
#line 63 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
413
        _tmp29_ = _gst_object_ref0 ((GstPad*) _tmp28_);
 
414
#line 63 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
415
        gst_element_add_pad ((GstElement*) self, _tmp29_);
 
416
#line 65 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
417
        _tmp30_ = decodebin;
 
418
#line 65 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
419
        g_signal_connect_object (_tmp30_, "pad-added", (GCallback) _rygel_mp2_ts_transcoder_bin_decodebin_pad_added_gst_element_pad_added, self, 0);
 
420
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
421
        _tmp31_ = decodebin;
 
422
#line 66 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
423
        _dynamic_autoplug_continue1_connect (_tmp31_, "autoplug_continue", (GCallback) _rygel_mp2_ts_transcoder_bin_autoplug_continue_dynamic_autoplug_continue0_, self);
 
424
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
425
        _gst_object_unref0 (ghost);
 
426
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
427
        _gst_object_unref0 (src_pad);
 
428
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
429
        _g_object_unref0 (mp3_transcoder);
 
430
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
431
        _gst_object_unref0 (decodebin);
 
432
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
433
        return self;
 
434
#line 435 "rygel-mp2ts-transcoder-bin.c"
 
435
}
 
436
 
 
437
 
 
438
RygelMP2TSTranscoderBin* rygel_mp2_ts_transcoder_bin_new (RygelMediaItem* item, GstElement* src, RygelMP2TSTranscoder* transcoder, GError** error) {
 
439
#line 41 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
440
        return rygel_mp2_ts_transcoder_bin_construct (RYGEL_TYPE_MP2_TS_TRANSCODER_BIN, item, src, transcoder, error);
 
441
#line 442 "rygel-mp2ts-transcoder-bin.c"
 
442
}
 
443
 
 
444
 
 
445
static gboolean rygel_mp2_ts_transcoder_bin_autoplug_continue (RygelMP2TSTranscoderBin* self, GstElement* decodebin, GstPad* new_pad, GstCaps* caps) {
 
446
        gboolean result = FALSE;
 
447
        GstElement* _tmp0_;
 
448
        GstPad* _tmp1_;
 
449
        GstPad* _tmp2_ = NULL;
 
450
        GstPad* muxer_pad;
 
451
        GstPad* _tmp3_;
 
452
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
453
        g_return_val_if_fail (self != NULL, FALSE);
 
454
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
455
        g_return_val_if_fail (decodebin != NULL, FALSE);
 
456
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
457
        g_return_val_if_fail (new_pad != NULL, FALSE);
 
458
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
459
        g_return_val_if_fail (caps != NULL, FALSE);
 
460
#line 72 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
461
        _tmp0_ = self->priv->muxer;
 
462
#line 72 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
463
        _tmp1_ = new_pad;
 
464
#line 72 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
465
        _tmp2_ = gst_element_get_compatible_pad (_tmp0_, _tmp1_, NULL);
 
466
#line 72 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
467
        muxer_pad = _tmp2_;
 
468
#line 74 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
469
        _tmp3_ = muxer_pad;
 
470
#line 74 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
471
        if (_tmp3_ == NULL) {
 
472
#line 75 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
473
                result = TRUE;
 
474
#line 75 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
475
                _gst_object_unref0 (muxer_pad);
 
476
#line 75 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
477
                return result;
 
478
#line 479 "rygel-mp2ts-transcoder-bin.c"
 
479
        } else {
 
480
                GstPad* _tmp4_;
 
481
                GstPad* _tmp5_;
 
482
                GstPadLinkReturn _tmp6_ = 0;
 
483
#line 77 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
484
                _tmp4_ = new_pad;
 
485
#line 77 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
486
                _tmp5_ = muxer_pad;
 
487
#line 77 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
488
                _tmp6_ = gst_pad_link (_tmp4_, _tmp5_);
 
489
#line 77 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
490
                result = _tmp6_ != GST_PAD_LINK_OK;
 
491
#line 77 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
492
                _gst_object_unref0 (muxer_pad);
 
493
#line 77 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
494
                return result;
 
495
#line 496 "rygel-mp2ts-transcoder-bin.c"
 
496
        }
 
497
#line 69 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
498
        _gst_object_unref0 (muxer_pad);
 
499
#line 500 "rygel-mp2ts-transcoder-bin.c"
 
500
}
 
501
 
 
502
 
 
503
static void rygel_mp2_ts_transcoder_bin_decodebin_pad_added (RygelMP2TSTranscoderBin* self, GstElement* decodebin, GstPad* new_pad) {
 
504
        GstElement* encoder = NULL;
 
505
        GstPad* enc_pad = NULL;
 
506
        GstElement* _tmp0_;
 
507
        GstPad* _tmp1_ = NULL;
 
508
        GstPad* audio_enc_pad;
 
509
        GstElement* _tmp2_;
 
510
        GstPad* _tmp3_ = NULL;
 
511
        GstPad* video_enc_pad;
 
512
        GstPad* _tmp4_;
 
513
        GstPad* _tmp5_;
 
514
        gboolean _tmp6_ = FALSE;
 
515
        GstElement* _tmp18_;
 
516
        GstElement* _tmp19_;
 
517
        GstPad* _tmp20_;
 
518
        GstPad* _tmp21_;
 
519
        GstPadLinkReturn _tmp22_ = 0;
 
520
#line 81 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
521
        g_return_if_fail (self != NULL);
 
522
#line 81 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
523
        g_return_if_fail (decodebin != NULL);
 
524
#line 81 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
525
        g_return_if_fail (new_pad != NULL);
 
526
#line 85 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
527
        _tmp0_ = self->priv->audio_enc;
 
528
#line 85 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
529
        _tmp1_ = gst_element_get_pad (_tmp0_, RYGEL_MP2_TS_TRANSCODER_BIN_AUDIO_ENC_SINK);
 
530
#line 85 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
531
        audio_enc_pad = _tmp1_;
 
532
#line 86 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
533
        _tmp2_ = self->priv->video_enc;
 
534
#line 86 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
535
        _tmp3_ = gst_element_get_pad (_tmp2_, RYGEL_MP2_TS_TRANSCODER_BIN_VIDEO_ENC_SINK);
 
536
#line 86 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
537
        video_enc_pad = _tmp3_;
 
538
#line 89 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
539
        _tmp4_ = new_pad;
 
540
#line 89 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
541
        _tmp5_ = audio_enc_pad;
 
542
#line 89 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
543
        _tmp6_ = gst_pad_can_link (_tmp4_, _tmp5_);
 
544
#line 89 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
545
        if (_tmp6_) {
 
546
#line 547 "rygel-mp2ts-transcoder-bin.c"
 
547
                GstElement* _tmp7_;
 
548
                GstElement* _tmp8_;
 
549
                GstPad* _tmp9_;
 
550
                GstPad* _tmp10_;
 
551
#line 90 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
552
                _tmp7_ = self->priv->audio_enc;
 
553
#line 90 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
554
                _tmp8_ = _gst_object_ref0 (_tmp7_);
 
555
#line 90 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
556
                _gst_object_unref0 (encoder);
 
557
#line 90 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
558
                encoder = _tmp8_;
 
559
#line 91 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
560
                _tmp9_ = audio_enc_pad;
 
561
#line 91 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
562
                _tmp10_ = _gst_object_ref0 (_tmp9_);
 
563
#line 91 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
564
                _gst_object_unref0 (enc_pad);
 
565
#line 91 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
566
                enc_pad = _tmp10_;
 
567
#line 568 "rygel-mp2ts-transcoder-bin.c"
 
568
        } else {
 
569
                GstPad* _tmp11_;
 
570
                GstPad* _tmp12_;
 
571
                gboolean _tmp13_ = FALSE;
 
572
#line 92 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
573
                _tmp11_ = new_pad;
 
574
#line 92 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
575
                _tmp12_ = video_enc_pad;
 
576
#line 92 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
577
                _tmp13_ = gst_pad_can_link (_tmp11_, _tmp12_);
 
578
#line 92 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
579
                if (_tmp13_) {
 
580
#line 581 "rygel-mp2ts-transcoder-bin.c"
 
581
                        GstElement* _tmp14_;
 
582
                        GstElement* _tmp15_;
 
583
                        GstPad* _tmp16_;
 
584
                        GstPad* _tmp17_;
 
585
#line 93 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
586
                        _tmp14_ = self->priv->video_enc;
 
587
#line 93 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
588
                        _tmp15_ = _gst_object_ref0 (_tmp14_);
 
589
#line 93 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
590
                        _gst_object_unref0 (encoder);
 
591
#line 93 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
592
                        encoder = _tmp15_;
 
593
#line 94 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
594
                        _tmp16_ = video_enc_pad;
 
595
#line 94 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
596
                        _tmp17_ = _gst_object_ref0 (_tmp16_);
 
597
#line 94 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
598
                        _gst_object_unref0 (enc_pad);
 
599
#line 94 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
600
                        enc_pad = _tmp17_;
 
601
#line 602 "rygel-mp2ts-transcoder-bin.c"
 
602
                } else {
 
603
#line 96 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
604
                        _gst_object_unref0 (video_enc_pad);
 
605
#line 96 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
606
                        _gst_object_unref0 (audio_enc_pad);
 
607
#line 96 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
608
                        _gst_object_unref0 (enc_pad);
 
609
#line 96 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
610
                        _gst_object_unref0 (encoder);
 
611
#line 96 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
612
                        return;
 
613
#line 614 "rygel-mp2ts-transcoder-bin.c"
 
614
                }
 
615
        }
 
616
#line 99 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
617
        _tmp18_ = encoder;
 
618
#line 99 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
619
        _tmp19_ = self->priv->muxer;
 
620
#line 99 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
621
        gst_element_link (_tmp18_, _tmp19_);
 
622
#line 101 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
623
        _tmp20_ = new_pad;
 
624
#line 101 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
625
        _tmp21_ = enc_pad;
 
626
#line 101 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
627
        _tmp22_ = gst_pad_link (_tmp20_, _tmp21_);
 
628
#line 101 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
629
        if (_tmp22_ != GST_PAD_LINK_OK) {
 
630
#line 631 "rygel-mp2ts-transcoder-bin.c"
 
631
                const gchar* _tmp23_ = NULL;
 
632
                GstPad* _tmp24_;
 
633
                gchar* _tmp25_;
 
634
                gchar* _tmp26_;
 
635
                gchar* _tmp27_;
 
636
                GstPad* _tmp28_;
 
637
                gchar* _tmp29_;
 
638
                gchar* _tmp30_;
 
639
                gchar* _tmp31_;
 
640
                GError* _tmp32_;
 
641
                GError* _tmp33_;
 
642
                GError* _error_;
 
643
                GError* _tmp34_;
 
644
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
645
                _tmp23_ = _ ("Failed to link pad %s to %s");
 
646
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
647
                _tmp24_ = new_pad;
 
648
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
649
                _tmp25_ = gst_object_get_name ((GstObject*) _tmp24_);
 
650
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
651
                _tmp26_ = _tmp25_;
 
652
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
653
                _tmp27_ = _tmp26_;
 
654
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
655
                _tmp28_ = enc_pad;
 
656
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
657
                _tmp29_ = gst_object_get_name ((GstObject*) _tmp28_);
 
658
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
659
                _tmp30_ = _tmp29_;
 
660
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
661
                _tmp31_ = _tmp30_;
 
662
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
663
                _tmp32_ = g_error_new (RYGEL_GST_ERROR, RYGEL_GST_ERROR_LINK, _tmp23_, _tmp27_, _tmp31_);
 
664
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
665
                _tmp33_ = _tmp32_;
 
666
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
667
                _g_free0 (_tmp31_);
 
668
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
669
                _g_free0 (_tmp27_);
 
670
#line 102 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
671
                _error_ = _tmp33_;
 
672
#line 105 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
673
                _tmp34_ = _error_;
 
674
#line 105 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
675
                rygel_gst_utils_post_error ((GstElement*) self, _tmp34_);
 
676
#line 101 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
677
                _g_error_free0 (_error_);
 
678
#line 679 "rygel-mp2ts-transcoder-bin.c"
 
679
        }
 
680
#line 81 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
681
        _gst_object_unref0 (video_enc_pad);
 
682
#line 81 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
683
        _gst_object_unref0 (audio_enc_pad);
 
684
#line 81 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
685
        _gst_object_unref0 (enc_pad);
 
686
#line 81 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
687
        _gst_object_unref0 (encoder);
 
688
#line 689 "rygel-mp2ts-transcoder-bin.c"
 
689
}
 
690
 
 
691
 
 
692
static void rygel_mp2_ts_transcoder_bin_class_init (RygelMP2TSTranscoderBinClass * klass) {
 
693
#line 30 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
694
        rygel_mp2_ts_transcoder_bin_parent_class = g_type_class_peek_parent (klass);
 
695
#line 30 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
696
        g_type_class_add_private (klass, sizeof (RygelMP2TSTranscoderBinPrivate));
 
697
#line 30 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
698
        G_OBJECT_CLASS (klass)->finalize = rygel_mp2_ts_transcoder_bin_finalize;
 
699
#line 700 "rygel-mp2ts-transcoder-bin.c"
 
700
}
 
701
 
 
702
 
 
703
static void rygel_mp2_ts_transcoder_bin_instance_init (RygelMP2TSTranscoderBin * self) {
 
704
#line 30 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
705
        self->priv = RYGEL_MP2_TS_TRANSCODER_BIN_GET_PRIVATE (self);
 
706
#line 707 "rygel-mp2ts-transcoder-bin.c"
 
707
}
 
708
 
 
709
 
 
710
static void rygel_mp2_ts_transcoder_bin_finalize (GObject* obj) {
 
711
        RygelMP2TSTranscoderBin * self;
 
712
#line 30 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
713
        self = RYGEL_MP2_TS_TRANSCODER_BIN (obj);
 
714
#line 37 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
715
        _gst_object_unref0 (self->priv->audio_enc);
 
716
#line 38 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
717
        _gst_object_unref0 (self->priv->video_enc);
 
718
#line 39 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
719
        _gst_object_unref0 (self->priv->muxer);
 
720
#line 30 "/home/jens/Source/rygel/src/rygel/rygel-mp2ts-transcoder-bin.vala"
 
721
        G_OBJECT_CLASS (rygel_mp2_ts_transcoder_bin_parent_class)->finalize (obj);
 
722
#line 723 "rygel-mp2ts-transcoder-bin.c"
 
723
}
 
724
 
 
725
 
 
726
/**
 
727
 * A Gst.Bin derivative that implements transcoding of any type of media (using
 
728
 * decodebin2) to mpeg transport stream containing mpeg 2 video and mp2 audio.
 
729
 */
 
730
GType rygel_mp2_ts_transcoder_bin_get_type (void) {
 
731
        static volatile gsize rygel_mp2_ts_transcoder_bin_type_id__volatile = 0;
 
732
        if (g_once_init_enter (&rygel_mp2_ts_transcoder_bin_type_id__volatile)) {
 
733
                static const GTypeInfo g_define_type_info = { sizeof (RygelMP2TSTranscoderBinClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rygel_mp2_ts_transcoder_bin_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RygelMP2TSTranscoderBin), 0, (GInstanceInitFunc) rygel_mp2_ts_transcoder_bin_instance_init, NULL };
 
734
                GType rygel_mp2_ts_transcoder_bin_type_id;
 
735
                rygel_mp2_ts_transcoder_bin_type_id = g_type_register_static (GST_TYPE_BIN, "RygelMP2TSTranscoderBin", &g_define_type_info, 0);
 
736
                g_once_init_leave (&rygel_mp2_ts_transcoder_bin_type_id__volatile, rygel_mp2_ts_transcoder_bin_type_id);
 
737
        }
 
738
        return rygel_mp2_ts_transcoder_bin_type_id__volatile;
 
739
}
 
740
 
 
741
 
 
742