Lines Matching refs:ebin
140 GstEncodeBaseBin *ebin; member
247 gst_encode_base_bin_set_profile (GstEncodeBaseBin * ebin,
249 static void gst_encode_base_bin_tear_down_profile (GstEncodeBaseBin * ebin);
250 static gboolean gst_encode_base_bin_setup_profile (GstEncodeBaseBin * ebin,
253 static StreamGroup *_create_stream_group (GstEncodeBaseBin * ebin,
256 static void stream_group_remove (GstEncodeBaseBin * ebin, StreamGroup * sgroup);
257 static void stream_group_free (GstEncodeBaseBin * ebin, StreamGroup * sgroup);
263 static inline GstElement *_get_formatter (GstEncodeBaseBin * ebin,
265 static void _post_missing_plugin_message (GstEncodeBaseBin * ebin,
403 GstEncodeBaseBin *ebin = (GstEncodeBaseBin *) object; in gst_encode_base_bin_dispose() local
405 if (ebin->muxers) in gst_encode_base_bin_dispose()
406 gst_plugin_feature_list_free (ebin->muxers); in gst_encode_base_bin_dispose()
407 ebin->muxers = NULL; in gst_encode_base_bin_dispose()
409 if (ebin->formatters) in gst_encode_base_bin_dispose()
410 gst_plugin_feature_list_free (ebin->formatters); in gst_encode_base_bin_dispose()
411 ebin->formatters = NULL; in gst_encode_base_bin_dispose()
413 if (ebin->encoders) in gst_encode_base_bin_dispose()
414 gst_plugin_feature_list_free (ebin->encoders); in gst_encode_base_bin_dispose()
415 ebin->encoders = NULL; in gst_encode_base_bin_dispose()
417 if (ebin->parsers) in gst_encode_base_bin_dispose()
418 gst_plugin_feature_list_free (ebin->parsers); in gst_encode_base_bin_dispose()
419 ebin->parsers = NULL; in gst_encode_base_bin_dispose()
421 gst_encode_base_bin_tear_down_profile (ebin); in gst_encode_base_bin_dispose()
423 if (ebin->raw_video_caps) in gst_encode_base_bin_dispose()
424 gst_caps_unref (ebin->raw_video_caps); in gst_encode_base_bin_dispose()
425 ebin->raw_video_caps = NULL; in gst_encode_base_bin_dispose()
426 if (ebin->raw_audio_caps) in gst_encode_base_bin_dispose()
427 gst_caps_unref (ebin->raw_audio_caps); in gst_encode_base_bin_dispose()
428 ebin->raw_audio_caps = NULL; in gst_encode_base_bin_dispose()
471 GstEncodeBaseBin *ebin = (GstEncodeBaseBin *) object; in gst_encode_base_bin_set_property() local
475 gst_encode_base_bin_set_profile (ebin, in gst_encode_base_bin_set_property()
479 ebin->queue_buffers_max = g_value_get_uint (value); in gst_encode_base_bin_set_property()
482 ebin->queue_bytes_max = g_value_get_uint (value); in gst_encode_base_bin_set_property()
485 ebin->queue_time_max = g_value_get_uint64 (value); in gst_encode_base_bin_set_property()
488 ebin->tolerance = g_value_get_uint64 (value); in gst_encode_base_bin_set_property()
492 gboolean avoided_reencoding = ebin->avoid_reencoding; in gst_encode_base_bin_set_property()
493 ebin->avoid_reencoding = g_value_get_boolean (value); in gst_encode_base_bin_set_property()
494 if (ebin->avoid_reencoding != avoided_reencoding && ebin->profile) in gst_encode_base_bin_set_property()
495 gst_encode_base_bin_set_profile (ebin, gst_object_ref (ebin->profile)); in gst_encode_base_bin_set_property()
500 ebin->flags = g_value_get_flags (value); in gst_encode_base_bin_set_property()
512 GstEncodeBaseBin *ebin = (GstEncodeBaseBin *) object; in gst_encode_base_bin_get_property() local
516 g_value_set_object (value, (GObject *) ebin->profile); in gst_encode_base_bin_get_property()
519 g_value_set_uint (value, ebin->queue_buffers_max); in gst_encode_base_bin_get_property()
522 g_value_set_uint (value, ebin->queue_bytes_max); in gst_encode_base_bin_get_property()
525 g_value_set_uint64 (value, ebin->queue_time_max); in gst_encode_base_bin_get_property()
528 g_value_set_uint64 (value, ebin->tolerance); in gst_encode_base_bin_get_property()
531 g_value_set_boolean (value, ebin->avoid_reencoding); in gst_encode_base_bin_get_property()
534 g_value_set_flags (value, ebin->flags); in gst_encode_base_bin_get_property()
555 stream_profile_used_count (GstEncodeBaseBin * ebin, GstEncodingProfile * sprof) in stream_profile_used_count() argument
560 for (tmp = ebin->streams; tmp; tmp = tmp->next) { in stream_profile_used_count()
571 next_unused_stream_profile (GstEncodeBaseBin * ebin, GType ptype, in next_unused_stream_profile() argument
574 GST_DEBUG_OBJECT (ebin, "ptype:%s, caps:%" GST_PTR_FORMAT, in next_unused_stream_profile()
579 if (gst_caps_can_intersect (ebin->raw_video_caps, caps)) in next_unused_stream_profile()
581 else if (gst_caps_can_intersect (ebin->raw_audio_caps, caps)) in next_unused_stream_profile()
585 GST_DEBUG_OBJECT (ebin, "Detected profile type as being %s", in next_unused_stream_profile()
589 if (GST_IS_ENCODING_CONTAINER_PROFILE (ebin->profile)) { in next_unused_stream_profile()
596 (GST_ENCODING_CONTAINER_PROFILE (ebin->profile)); in next_unused_stream_profile()
608 GST_INFO_OBJECT (ebin, "%p is disabled, not using it", sprof); in next_unused_stream_profile()
614 || presence > stream_profile_used_count (ebin, sprof)) in next_unused_stream_profile()
627 (GST_ENCODING_CONTAINER_PROFILE (ebin->profile)); tmp; in next_unused_stream_profile()
639 GST_INFO_OBJECT (ebin, "%p is disabled, not using it", sprof); in next_unused_stream_profile()
641 || (presence > stream_profile_used_count (ebin, sprof))) { in next_unused_stream_profile()
728 GstEncodeBaseBin *ebin = (GstEncodeBaseBin *) element; in gst_encode_base_bin_request_new_pad() local
735 res = request_pad_for_stream (ebin, G_TYPE_NONE, name, (GstCaps *) caps); in gst_encode_base_bin_request_new_pad()
753 res = request_pad_for_stream (ebin, ptype, name, NULL); in gst_encode_base_bin_request_new_pad()
779 find_stream_group_from_pad (GstEncodeBaseBin * ebin, GstPad * pad) in find_stream_group_from_pad() argument
783 for (tmp = ebin->streams; tmp; tmp = tmp->next) { in find_stream_group_from_pad()
795 GstEncodeBaseBin *ebin = (GstEncodeBaseBin *) element; in gst_encode_base_bin_release_pad() local
800 sgroup = find_stream_group_from_pad (ebin, pad); in gst_encode_base_bin_release_pad()
805 stream_group_remove (ebin, sgroup); in gst_encode_base_bin_release_pad()
811 GST_WARNING_OBJECT (ebin, "Couldn't find corresponding StreamGroup"); in gst_encode_base_bin_release_pad()
818 _get_parser (GstEncodeBaseBin * ebin, GstEncodingProfile * sprof, in _get_parser() argument
843 gst_element_factory_list_filter (ebin->parsers, format, in _get_parser()
989 _get_encoder (GstEncodeBaseBin * ebin, GstEncodingProfile * sprof) in _get_encoder() argument
1008 gst_element_factory_list_filter (ebin->encoders, format, in _get_encoder()
1011 if (G_UNLIKELY (encoders == NULL) && sprof == ebin->profile) { in _get_encoder()
1015 encoders = gst_element_factory_list_filter (ebin->muxers, format, in _get_encoder()
1088 get_compatible_muxer_sink_pad (GstEncodeBaseBin * ebin, in get_compatible_muxer_sink_pad() argument
1094 GST_DEBUG_OBJECT (ebin, "Finding muxer pad for caps: %" GST_PTR_FORMAT, in get_compatible_muxer_sink_pad()
1096 padl = gst_element_get_pad_template_list (ebin->muxer); in get_compatible_muxer_sink_pad()
1135 sinkpad = gst_element_get_pad_from_template (ebin->muxer, padl->data); in get_compatible_muxer_sink_pad()
1142 GST_DEBUG_OBJECT (ebin, "Returning pad: %" GST_PTR_FORMAT, sinkpad); in get_compatible_muxer_sink_pad()
1148 GST_WARNING_OBJECT (ebin, "No compatible pad available on muxer"); in get_compatible_muxer_sink_pad()
1268 _post_missing_plugin_message (GstEncodeBaseBin * ebin, in _post_missing_plugin_message() argument
1274 GST_ERROR_OBJECT (ebin, in _post_missing_plugin_message()
1281 gst_element_post_message (GST_ELEMENT_CAST (ebin), in _post_missing_plugin_message()
1282 gst_missing_encoder_message_new (GST_ELEMENT_CAST (ebin), format)); in _post_missing_plugin_message()
1283 GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN, in _post_missing_plugin_message()
1293 GstEncodeBaseBin *ebin = sgroup->ebin; in _missing_plugin_probe() local
1295 _post_missing_plugin_message (ebin, sgroup->profile); in _missing_plugin_probe()
1301 _set_up_fake_encoder_pad_probe (GstEncodeBaseBin * ebin, StreamGroup * sgroup) in _set_up_fake_encoder_pad_probe() argument
1312 setup_smart_encoder (GstEncodeBaseBin * ebin, GstEncodingProfile * sprof, in setup_smart_encoder() argument
1324 ! !(ebin->flags & GST_ENCODEBIN_FLAG_NO_VIDEO_CONVERSION); in setup_smart_encoder()
1329 GST_DEBUG_OBJECT (ebin, in setup_smart_encoder()
1335 sinkelement = encoder = _get_encoder (ebin, sprof); in setup_smart_encoder()
1337 GST_INFO_OBJECT (ebin, "No encoder found... not using smart rendering"); in setup_smart_encoder()
1341 parser = _get_parser (ebin, sprof, encoder); in setup_smart_encoder()
1377 GST_ERROR_OBJECT (ebin, "`videoconvert` element missing"); in setup_smart_encoder()
1383 GST_ERROR_OBJECT (ebin, "Can not link `videoconvert` to %" GST_PTR_FORMAT, in setup_smart_encoder()
1393 GST_ERROR_OBJECT (ebin, "Can not link smart encoding elements"); in setup_smart_encoder()
1399 GST_ERROR_OBJECT (ebin, "Can add smart encoding bin `srcpad`"); in setup_smart_encoder()
1405 GST_ERROR_OBJECT (ebin, "Could not ghost smart encoder bin" in setup_smart_encoder()
1422 GST_ERROR_OBJECT (ebin, "Could not set encoder to the smart encoder," in setup_smart_encoder()
1453 _create_stream_group (GstEncodeBaseBin * ebin, GstEncodingProfile * sprof, in _create_stream_group() argument
1470 GST_DEBUG ("avoid_reencoding:%d", ebin->avoid_reencoding); in _create_stream_group()
1473 sgroup->ebin = ebin; in _create_stream_group()
1488 sgroup->encoder = _get_encoder (ebin, sprof); in _create_stream_group()
1493 _post_missing_plugin_message (ebin, sprof); in _create_stream_group()
1505 if (ebin->muxer) { in _create_stream_group()
1506 muxerpad = get_compatible_muxer_sink_pad (ebin, sprof, format); in _create_stream_group()
1520 gst_bin_add (GST_BIN (ebin), sgroup->outqueue); in _create_stream_group()
1529 gst_ghost_pad_set_target (GST_GHOST_PAD (ebin->srcpad), srcpad); in _create_stream_group()
1538 if (!ebin->muxer || (!GST_IS_TAG_SETTER (ebin->muxer) in _create_stream_group()
1539 && !_has_class (ebin->muxer, "Formatter"))) { in _create_stream_group()
1540 sgroup->formatter = _get_formatter (ebin, sprof); in _create_stream_group()
1544 gst_bin_add (GST_BIN (ebin), sgroup->formatter); in _create_stream_group()
1559 gst_bin_add (GST_BIN (ebin), sgroup->outfilter); in _create_stream_group()
1565 sgroup->parser = _get_parser (ebin, sgroup->profile, sgroup->encoder); in _create_stream_group()
1568 gst_bin_add (GST_BIN (ebin), sgroup->parser); in _create_stream_group()
1578 gst_bin_add (GST_BIN (ebin), sgroup->combiner); in _create_stream_group()
1587 gst_bin_add (GST_BIN (ebin), sgroup->splitter); in _create_stream_group()
1592 if (!ebin->avoid_reencoding) { in _create_stream_group()
1595 gst_bin_add (GST_BIN (ebin), sgroup->identity); in _create_stream_group()
1598 GST_INFO_OBJECT (ebin, "Single segment is not supported when avoiding" in _create_stream_group()
1607 (guint) ebin->queue_buffers_max, "max-size-bytes", in _create_stream_group()
1608 (guint) ebin->queue_bytes_max, "max-size-time", in _create_stream_group()
1609 (guint64) ebin->queue_time_max, "silent", TRUE, NULL); in _create_stream_group()
1611 gst_bin_add (GST_BIN (ebin), sgroup->inqueue); in _create_stream_group()
1621 ebin->last_pad_id++); in _create_stream_group()
1644 if (ebin->avoid_reencoding) { in _create_stream_group()
1646 sgroup->smartencoder = setup_smart_encoder (ebin, sprof, sgroup); in _create_stream_group()
1648 gst_bin_add ((GstBin *) ebin, sgroup->smartencoder); in _create_stream_group()
1675 gst_bin_add ((GstBin *) ebin, sgroup->encoder); in _create_stream_group()
1709 gst_bin_add ((GstBin *) ebin, sgroup->capsfilter); in _create_stream_group()
1717 gst_bin_add (GST_BIN_CAST (ebin), sgroup->fakesink); in _create_stream_group()
1721 _set_up_fake_encoder_pad_probe (ebin, sgroup); in _create_stream_group()
1733 ! !(ebin->flags & GST_ENCODEBIN_FLAG_NO_VIDEO_CONVERSION); in _create_stream_group()
1754 gst_bin_add_many ((GstBin *) ebin, cspace, scale, cspace2, NULL); in _create_stream_group()
1777 gst_bin_add ((GstBin *) ebin, vrate); in _create_stream_group()
1796 && !(ebin->flags & GST_ENCODEBIN_FLAG_NO_AUDIO_CONVERSION)) { in _create_stream_group()
1806 g_object_set (arate, "tolerance", (guint64) ebin->tolerance, NULL); in _create_stream_group()
1821 gst_bin_add_many ((GstBin *) ebin, arate, aconv, ares, aconv2, NULL); in _create_stream_group()
1861 gst_element_add_pad ((GstElement *) ebin, sgroup->ghostpad); in _create_stream_group()
1868 ebin->streams = g_list_prepend (ebin->streams, sgroup); in _create_stream_group()
1878 GST_ERROR_OBJECT (ebin, "Error linking splitter to encoding stream"); in _create_stream_group()
1882 GST_ERROR_OBJECT (ebin, in _create_stream_group()
1887 gst_element_post_message (GST_ELEMENT_CAST (ebin), in _create_stream_group()
1888 gst_missing_element_message_new (GST_ELEMENT_CAST (ebin), in _create_stream_group()
1890 GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN, in _create_stream_group()
1896 GST_ERROR_OBJECT (ebin, "Failed to link the encoder"); in _create_stream_group()
1900 GST_ERROR_OBJECT (ebin, "Couldn't link encoder to muxer"); in _create_stream_group()
1904 GST_ERROR_OBJECT (ebin, "Couldn't link output filter to output queue"); in _create_stream_group()
1908 GST_ERROR_OBJECT (ebin, in _create_stream_group()
1913 GST_ERROR_OBJECT (ebin, "Failed linking splitter in passthrough mode"); in _create_stream_group()
1917 GST_ERROR_OBJECT (ebin, "Couldn't get a source pad from the splitter"); in _create_stream_group()
1921 GST_ERROR_OBJECT (ebin, "Couldn't get a sink pad from the combiner"); in _create_stream_group()
1925 GST_ERROR_OBJECT (ebin, "Failure linking to the splitter"); in _create_stream_group()
1929 GST_ERROR_OBJECT (ebin, "Failure linking to the inqueue"); in _create_stream_group()
1933 GST_ERROR_OBJECT (ebin, "Failure linking to the combiner"); in _create_stream_group()
1937 GST_ERROR_OBJECT (ebin, "Failure linking the parser"); in _create_stream_group()
1941 GST_ERROR_OBJECT (ebin, "Failure linking the video converters"); in _create_stream_group()
1952 stream_group_free (ebin, sgroup); in _create_stream_group()
2024 _get_formatter (GstEncodeBaseBin * ebin, GstEncodingProfile * sprof) in _get_formatter() argument
2035 gst_element_factory_list_filter (ebin->formatters, format, GST_PAD_SRC, in _get_formatter()
2045 GST_DEBUG_OBJECT (ebin, "Trying formatter %s", in _get_formatter()
2087 _get_muxer (GstEncodeBaseBin * ebin) in _get_muxer() argument
2096 format = gst_encoding_profile_get_format (ebin->profile); in _get_muxer()
2097 preset_name = gst_encoding_profile_get_preset_name (ebin->profile); in _get_muxer()
2099 GST_DEBUG_OBJECT (ebin, "Getting list of muxers for format %" GST_PTR_FORMAT, in _get_muxer()
2112 gst_element_factory_list_filter (ebin->muxers, format, GST_PAD_SRC, in _get_muxer()
2118 gst_element_factory_list_filter (ebin->formatters, format, GST_PAD_SRC, in _get_muxer()
2135 (GST_ENCODING_CONTAINER_PROFILE (ebin->profile)); in _get_muxer()
2139 GST_DEBUG_OBJECT (ebin, "Trying muxer %s", GST_OBJECT_NAME (muxerfact)); in _get_muxer()
2161 _create_element_and_set_preset (muxerfact, ebin->profile, "muxer"))) in _get_muxer()
2174 create_elements_and_pads (GstEncodeBaseBin * ebin) in create_elements_and_pads() argument
2183 gst_encoding_profile_get_name (ebin->profile)); in create_elements_and_pads()
2185 if (GST_IS_ENCODING_CONTAINER_PROFILE (ebin->profile)) { in create_elements_and_pads()
2187 muxer = _get_muxer (ebin); in create_elements_and_pads()
2192 ebin->muxer = muxer; in create_elements_and_pads()
2193 gst_bin_add ((GstBin *) ebin, muxer); in create_elements_and_pads()
2201 if (ebin->srcpad) { in create_elements_and_pads()
2204 if (!gst_ghost_pad_set_target (GST_GHOST_PAD (ebin->srcpad), muxerpad)) in create_elements_and_pads()
2210 gst_element_get_pad_template (GST_ELEMENT (ebin), "src_%u"); in create_elements_and_pads()
2214 GST_OBJECT_LOCK (ebin); in create_elements_and_pads()
2215 name = g_strdup_printf ("src_%u", GST_ELEMENT (ebin)->numsrcpads); in create_elements_and_pads()
2216 GST_OBJECT_UNLOCK (ebin); in create_elements_and_pads()
2223 gst_element_add_pad (GST_ELEMENT (ebin), pad); in create_elements_and_pads()
2229 (GST_ENCODING_CONTAINER_PROFILE (ebin->profile)); in create_elements_and_pads()
2238 if (G_UNLIKELY (_create_stream_group (ebin, sprof, NULL, NULL, in create_elements_and_pads()
2245 if (G_UNLIKELY (_create_stream_group (ebin, ebin->profile, NULL, in create_elements_and_pads()
2254 GstCaps *format = gst_encoding_profile_get_format (ebin->profile); in create_elements_and_pads()
2258 gst_element_post_message (GST_ELEMENT_CAST (ebin), in create_elements_and_pads()
2259 gst_missing_encoder_message_new (GST_ELEMENT_CAST (ebin), format)); in create_elements_and_pads()
2260 GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN, in create_elements_and_pads()
2271 gst_bin_remove (GST_BIN (ebin), muxer); in create_elements_and_pads()
2279 gst_bin_remove (GST_BIN (ebin), muxer); in create_elements_and_pads()
2288 gst_bin_remove (GST_BIN (ebin), muxer); in create_elements_and_pads()
2289 ebin->muxer = NULL; in create_elements_and_pads()
2316 stream_group_free (GstEncodeBaseBin * ebin, StreamGroup * sgroup) in stream_group_free() argument
2322 GST_DEBUG_OBJECT (ebin, "Freeing StreamGroup %p", sgroup); in stream_group_free()
2328 if (ebin->muxer) { in stream_group_free()
2338 gst_element_release_request_pad (ebin->muxer, pad); in stream_group_free()
2360 gst_bin_remove (GST_BIN (ebin), sgroup->outqueue); in stream_group_free()
2368 gst_bin_remove ((GstBin *) ebin, sgroup->parser); in stream_group_free()
2374 gst_element_remove_pad (GST_ELEMENT_CAST (ebin), sgroup->ghostpad); in stream_group_free()
2409 gst_bin_remove ((GstBin *) ebin, sgroup->capsfilter); in stream_group_free()
2416 gst_bin_remove ((GstBin *) ebin, elt); in stream_group_free()
2433 gst_bin_remove ((GstBin *) ebin, sgroup->combiner); in stream_group_free()
2448 gst_bin_remove ((GstBin *) ebin, sgroup->splitter); in stream_group_free()
2452 gst_bin_remove ((GstBin *) ebin, sgroup->inqueue); in stream_group_free()
2455 gst_bin_remove ((GstBin *) ebin, sgroup->encoder); in stream_group_free()
2458 gst_bin_remove ((GstBin *) ebin, sgroup->fakesink); in stream_group_free()
2461 gst_bin_remove ((GstBin *) ebin, sgroup->smartencoder); in stream_group_free()
2464 gst_bin_remove ((GstBin *) ebin, sgroup->outfilter); in stream_group_free()
2470 stream_group_remove (GstEncodeBaseBin * ebin, StreamGroup * sgroup) in stream_group_remove() argument
2472 ebin->streams = g_list_remove (ebin->streams, sgroup); in stream_group_remove()
2474 stream_group_free (ebin, sgroup); in stream_group_remove()
2478 gst_encode_base_bin_tear_down_profile (GstEncodeBaseBin * ebin) in gst_encode_base_bin_tear_down_profile() argument
2480 GstElement *element = GST_ELEMENT (ebin); in gst_encode_base_bin_tear_down_profile()
2482 if (G_UNLIKELY (ebin->profile == NULL)) in gst_encode_base_bin_tear_down_profile()
2486 gst_encoding_profile_get_name (ebin->profile)); in gst_encode_base_bin_tear_down_profile()
2488 while (ebin->streams) in gst_encode_base_bin_tear_down_profile()
2489 stream_group_remove (ebin, (StreamGroup *) ebin->streams->data); in gst_encode_base_bin_tear_down_profile()
2491 if (ebin->srcpad) { in gst_encode_base_bin_tear_down_profile()
2493 gst_ghost_pad_set_target (GST_GHOST_PAD (ebin->srcpad), NULL); in gst_encode_base_bin_tear_down_profile()
2497 if (ebin->muxer) { in gst_encode_base_bin_tear_down_profile()
2498 g_signal_handlers_disconnect_by_func (ebin->profile, in gst_encode_base_bin_tear_down_profile()
2499 set_element_properties_from_encoding_profile, ebin->muxer); in gst_encode_base_bin_tear_down_profile()
2500 gst_element_set_state (ebin->muxer, GST_STATE_NULL); in gst_encode_base_bin_tear_down_profile()
2501 gst_bin_remove (GST_BIN (ebin), ebin->muxer); in gst_encode_base_bin_tear_down_profile()
2502 ebin->muxer = NULL; in gst_encode_base_bin_tear_down_profile()
2511 gst_encoding_profile_unref (ebin->profile); in gst_encode_base_bin_tear_down_profile()
2512 ebin->profile = NULL; in gst_encode_base_bin_tear_down_profile()
2516 gst_encode_base_bin_setup_profile (GstEncodeBaseBin * ebin, in gst_encode_base_bin_setup_profile() argument
2521 g_return_val_if_fail (ebin->profile == NULL, FALSE); in gst_encode_base_bin_setup_profile()
2527 ebin->profile = profile; in gst_encode_base_bin_setup_profile()
2528 gst_object_ref (ebin->profile); in gst_encode_base_bin_setup_profile()
2531 res = create_elements_and_pads (ebin); in gst_encode_base_bin_setup_profile()
2533 gst_encode_base_bin_tear_down_profile (ebin); in gst_encode_base_bin_setup_profile()
2539 gst_encode_base_bin_set_profile (GstEncodeBaseBin * ebin, in gst_encode_base_bin_set_profile() argument
2544 GST_DEBUG_OBJECT (ebin, "profile (%p) : %s", profile, in gst_encode_base_bin_set_profile()
2547 if (G_UNLIKELY (ebin->active)) { in gst_encode_base_bin_set_profile()
2548 GST_WARNING_OBJECT (ebin, "Element already active, can't change profile"); in gst_encode_base_bin_set_profile()
2553 if (ebin->profile) { in gst_encode_base_bin_set_profile()
2554 gst_encode_base_bin_tear_down_profile (ebin); in gst_encode_base_bin_set_profile()
2557 return gst_encode_base_bin_setup_profile (ebin, profile); in gst_encode_base_bin_set_profile()
2561 gst_encode_base_bin_activate (GstEncodeBaseBin * ebin) in gst_encode_base_bin_activate() argument
2563 ebin->active = ebin->profile != NULL; in gst_encode_base_bin_activate()
2564 return ebin->active; in gst_encode_base_bin_activate()
2568 gst_encode_base_bin_deactivate (GstEncodeBaseBin * ebin) in gst_encode_base_bin_deactivate() argument
2572 for (tmp = ebin->streams; tmp; tmp = tmp->next) { in gst_encode_base_bin_deactivate()
2582 ebin->active = FALSE; in gst_encode_base_bin_deactivate()
2590 GstEncodeBaseBin *ebin = (GstEncodeBaseBin *) element; in gst_encode_base_bin_change_state() local
2595 if (!gst_encode_base_bin_activate (ebin)) { in gst_encode_base_bin_change_state()
2612 gst_encode_base_bin_deactivate (ebin); in gst_encode_base_bin_change_state()