本文整理汇总了C++中GST_OBJECT_PARENT函数的典型用法代码示例。如果您正苦于以下问题:C++ GST_OBJECT_PARENT函数的具体用法?C++ GST_OBJECT_PARENT怎么用?C++ GST_OBJECT_PARENT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GST_OBJECT_PARENT函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: g_free
/* free the buffer */
g_free (buf->memory);
buf->memory = NULL;
return TRUE;
}
static gboolean
gst_jack_ring_buffer_start (GstAudioRingBuffer * buf)
{
GstJackAudioSink *sink;
sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (sink, "start");
if (sink->transport & GST_JACK_TRANSPORT_MASTER) {
jack_client_t *client;
client = gst_jack_audio_client_get_client (sink->client);
jack_transport_start (client);
}
return TRUE;
}
static gboolean
gst_jack_ring_buffer_pause (GstAudioRingBuffer * buf)
{
GstJackAudioSink *sink;
sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (sink, "pause");
if (sink->transport & GST_JACK_TRANSPORT_MASTER) {
jack_client_t *client;
client = gst_jack_audio_client_get_client (sink->client);
jack_transport_stop (client);
}
return TRUE;
}
static gboolean
gst_jack_ring_buffer_stop (GstAudioRingBuffer * buf)
{
GstJackAudioSink *sink;
sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (sink, "stop");
if (sink->transport & GST_JACK_TRANSPORT_MASTER) {
jack_client_t *client;
client = gst_jack_audio_client_get_client (sink->client);
jack_transport_stop (client);
}
return TRUE;
}
#if defined (HAVE_JACK_0_120_1) || defined(HAVE_JACK_1_9_7)
static guint
gst_jack_ring_buffer_delay (GstAudioRingBuffer * buf)
{
GstJackAudioSink *sink;
guint i, res = 0;
jack_latency_range_t range;
sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf));
for (i = 0; i < sink->port_count; i++) {
jack_port_get_latency_range (sink->ports[i], JackPlaybackLatency, &range);
if (range.max > res)
res = range.max;
}
GST_LOG_OBJECT (sink, "delay %u", res);
return res;
}
#else /* !(defined (HAVE_JACK_0_120_1) || defined(HAVE_JACK_1_9_7)) */
static guint
gst_jack_ring_buffer_delay (GstAudioRingBuffer * buf)
{
GstJackAudioSink *sink;
guint i, res = 0;
guint latency;
jack_client_t *client;
sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf));
client = gst_jack_audio_client_get_client (sink->client);
for (i = 0; i < sink->port_count; i++) {
latency = jack_port_get_total_latency (client, sink->ports[i]);
if (latency > res)
res = latency;
//.........这里部分代码省略.........
开发者ID:PeterXu,项目名称:gst-mobile,代码行数:101,代码来源:gstjackaudiosink.c
示例2: appsink_handle_many
static GstFlowReturn
appsink_handle_many (GstElement * appsink, gpointer data)
{
int *count = g_object_get_data (G_OBJECT (appsink), COUNT_KEY);
GstSample *sample;
if (count == NULL) {
count = g_malloc0 (sizeof (int));
g_object_set_data_full (G_OBJECT (appsink), COUNT_KEY, count, g_free);
}
g_signal_emit_by_name (appsink, "pull-sample", &sample);
gst_sample_unref (sample);
if (g_atomic_int_add (count, 1) == 40) {
GST_DEBUG_OBJECT (appsink, "Terminatig");
g_idle_add (check_pipeline_termination, GST_OBJECT_PARENT (appsink));
}
return GST_FLOW_OK;
}
开发者ID:KurentoLegacy,项目名称:gst-kurento-plugins,代码行数:21,代码来源:agnosticbin.c
示例3: remove_on_unlinked_blocked
static GstPadProbeReturn
remove_on_unlinked_blocked (GstPad * pad, GstPadProbeInfo * info, gpointer elem)
{
KmsAgnosticBin2 *self;
GstPad *sink;
if (elem == NULL) {
return GST_PAD_PROBE_REMOVE;
}
GST_DEBUG_OBJECT (pad, "Unlinking pad");
GST_OBJECT_LOCK (pad);
if (g_object_get_qdata (G_OBJECT (pad), unlinking_data_quark ())) {
GST_OBJECT_UNLOCK (pad);
if (GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_QUERY_BOTH) {
/* Queries must be answered */
return GST_PAD_PROBE_PASS;
} else {
return GST_PAD_PROBE_DROP;
}
}
g_object_set_qdata (G_OBJECT (pad), unlinking_data_quark (),
GINT_TO_POINTER (TRUE));
GST_OBJECT_UNLOCK (pad);
sink = gst_pad_get_peer (pad);
if (sink != NULL) {
gst_pad_unlink (pad, sink);
g_object_unref (sink);
}
self = KMS_AGNOSTIC_BIN2 (GST_OBJECT_PARENT (elem));
g_thread_pool_push (self->priv->remove_pool, g_object_ref (elem), NULL);
return GST_PAD_PROBE_PASS;
}
开发者ID:nubomedia,项目名称:kms-core,代码行数:40,代码来源:kmsagnosticbin.c
示例4: input_bin_src_caps_probe
static GstPadProbeReturn
input_bin_src_caps_probe (GstPad * pad, GstPadProbeInfo * info, gpointer bin)
{
KmsAgnosticBin2 *self = KMS_AGNOSTIC_BIN2 (GST_OBJECT_PARENT (bin));
GstEvent *event = gst_pad_probe_info_get_event (info);
GstCaps *current_caps;
if (self == NULL) {
GST_WARNING_OBJECT (bin, "Parent agnosticbin seems to be released");
return GST_PAD_PROBE_OK;
}
GST_TRACE_OBJECT (self, "Event in parser pad: %" GST_PTR_FORMAT, event);
if (GST_EVENT_TYPE (event) != GST_EVENT_CAPS) {
return GST_PAD_PROBE_OK;
}
KMS_AGNOSTIC_BIN2_LOCK (self);
self->priv->started = TRUE;
if (self->priv->input_bin_src_caps != NULL) {
gst_caps_unref (self->priv->input_bin_src_caps);
}
gst_event_parse_caps (event, ¤t_caps);
self->priv->input_bin_src_caps = gst_caps_copy (current_caps);
kms_agnostic_bin2_insert_bin (self, GST_BIN (bin));
GST_INFO_OBJECT (self, "Setting current caps to: %" GST_PTR_FORMAT,
current_caps);
kms_element_for_each_src_pad (GST_ELEMENT (self),
(KmsPadIterationAction) add_linked_pads, self);
KMS_AGNOSTIC_BIN2_UNLOCK (self);
return GST_PAD_PROBE_REMOVE;
}
开发者ID:shelsonjava,项目名称:kms-core,代码行数:39,代码来源:kmsagnosticbin.c
示例5: gst_vaapidecode_set_caps
static gboolean
gst_vaapidecode_set_caps(GstPad *pad, GstCaps *caps)
{
GstVaapiDecode * const decode = GST_VAAPIDECODE(GST_OBJECT_PARENT(pad));
g_return_val_if_fail(pad == decode->sinkpad, FALSE);
if (!gst_vaapidecode_update_sink_caps(decode, caps))
return FALSE;
if (!gst_vaapidecode_update_src_caps(decode, caps))
return FALSE;
if (!gst_vaapidecode_reset(decode, decode->sinkpad_caps))
return FALSE;
/* Propagate NEWSEGMENT event downstream, now that pads are linked */
if (decode->delayed_new_seg) {
if (gst_pad_push_event(decode->srcpad, decode->delayed_new_seg))
gst_event_unref(decode->delayed_new_seg);
decode->delayed_new_seg = NULL;
}
return TRUE;
}
开发者ID:cbetz421,项目名称:gst-vaapi,代码行数:22,代码来源:gstvaapidecode.c
示例6: jack_sample_rate_cb
/* we error out */
static int
jack_sample_rate_cb (jack_nframes_t nframes, void *arg)
{
GstJackAudioSink *sink;
GstJackRingBuffer *abuf;
abuf = GST_JACK_RING_BUFFER_CAST (arg);
sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (arg));
if (abuf->sample_rate != -1 && abuf->sample_rate != nframes)
goto not_supported;
return 0;
/* ERRORS */
not_supported:
{
GST_ELEMENT_ERROR (sink, RESOURCE, SETTINGS,
(NULL), ("Jack changed the sample rate, which is not supported"));
return 1;
}
}
开发者ID:matsu,项目名称:gst-plugins-good,代码行数:23,代码来源:gstjackaudiosink.c
示例7: gst_buffer_unref
/* free the buffer */
gst_buffer_unref (buf->data);
buf->data = NULL;
return TRUE;
}
static gboolean
gst_jack_ring_buffer_start (GstRingBuffer * buf)
{
GstJackAudioSrc *src;
src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (src, "start");
if (src->transport & GST_JACK_TRANSPORT_MASTER) {
jack_client_t *client;
client = gst_jack_audio_client_get_client (src->client);
jack_transport_start (client);
}
return TRUE;
}
static gboolean
gst_jack_ring_buffer_pause (GstRingBuffer * buf)
{
GstJackAudioSrc *src;
src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (src, "pause");
if (src->transport & GST_JACK_TRANSPORT_MASTER) {
jack_client_t *client;
client = gst_jack_audio_client_get_client (src->client);
jack_transport_stop (client);
}
return TRUE;
}
static gboolean
gst_jack_ring_buffer_stop (GstRingBuffer * buf)
{
GstJackAudioSrc *src;
src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (src, "stop");
if (src->transport & GST_JACK_TRANSPORT_MASTER) {
jack_client_t *client;
client = gst_jack_audio_client_get_client (src->client);
jack_transport_stop (client);
}
return TRUE;
}
#if defined (HAVE_JACK_0_120_1) || defined(HAVE_JACK_1_9_7)
static guint
gst_jack_ring_buffer_delay (GstRingBuffer * buf)
{
GstJackAudioSrc *src;
guint i, res = 0;
jack_latency_range_t range;
src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (buf));
for (i = 0; i < src->port_count; i++) {
jack_port_get_latency_range (src->ports[i], JackCaptureLatency, &range);
if (range.max > res)
res = range.max;
}
GST_DEBUG_OBJECT (src, "delay %u", res);
return res;
}
#else /* !(defined (HAVE_JACK_0_120_1) || defined(HAVE_JACK_1_9_7)) */
static guint
gst_jack_ring_buffer_delay (GstRingBuffer * buf)
{
GstJackAudioSrc *src;
guint i, res = 0;
guint latency;
jack_client_t *client;
src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (buf));
client = gst_jack_audio_client_get_client (src->client);
for (i = 0; i < src->port_count; i++) {
latency = jack_port_get_total_latency (client, src->ports[i]);
if (latency > res)
//.........这里部分代码省略.........
开发者ID:matsu,项目名称:gst-plugins-good,代码行数:101,代码来源:gstjackaudiosrc.c
示例8: jack_buffer_size_cb
/* we error out */
static int
jack_buffer_size_cb (jack_nframes_t nframes, void *arg)
{
GstJackAudioSrc *src;
GstJackRingBuffer *abuf;
abuf = GST_JACK_RING_BUFFER_CAST (arg);
src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (arg));
if (abuf->buffer_size != -1 && abuf->buffer_size != nframes)
goto not_supported;
return 0;
/* ERRORS */
not_supported:
{
GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS,
(NULL), ("Jack changed the buffer size, which is not supported"));
return 1;
}
}
开发者ID:prajnashi,项目名称:gst-plugins-bad,代码行数:23,代码来源:gstjackaudiosrc.c
示例9: gst_jack_ring_buffer_open_device
/* the _open_device method should make a connection with the server
*/
static gboolean
gst_jack_ring_buffer_open_device (GstRingBuffer * buf)
{
GstJackAudioSrc *src;
jack_status_t status = 0;
const gchar *name;
src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (src, "open");
name = g_get_application_name ();
if (!name)
name = "GStreamer";
src->client = gst_jack_audio_client_new (name, src->server,
GST_JACK_CLIENT_SOURCE,
jack_shutdown_cb,
jack_process_cb, jack_buffer_size_cb, jack_sample_rate_cb, buf, &status);
if (src->client == NULL)
goto could_not_open;
GST_DEBUG_OBJECT (src, "opened");
return TRUE;
/* ERRORS */
could_not_open:
{
if (status & JackServerFailed) {
GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND,
(NULL), ("Cannot connect to the Jack server (status %d)", status));
} else {
GST_ELEMENT_ERROR (src, RESOURCE, OPEN_WRITE,
(NULL), ("Jack client open error (status %d)", status));
}
return FALSE;
}
}
开发者ID:prajnashi,项目名称:gst-plugins-bad,代码行数:41,代码来源:gstjackaudiosrc.c
示例10: gst_faceblur_chain
/* chain function
* this function does the actual processing
*/
static GstFlowReturn
gst_faceblur_chain (GstPad * pad, GstBuffer * buf)
{
Gstfaceblur *filter;
CvSeq *faces;
int i;
filter = GST_FACEBLUR (GST_OBJECT_PARENT (pad));
filter->cvImage->imageData = (char *) GST_BUFFER_DATA (buf);
cvCvtColor (filter->cvImage, filter->cvGray, CV_RGB2GRAY);
cvClearMemStorage (filter->cvStorage);
if (filter->cvCascade) {
faces =
cvHaarDetectObjects (filter->cvGray, filter->cvCascade,
filter->cvStorage, 1.1, 2, 0, cvSize (30, 30)
#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
, cvSize (32, 32)
#endif
);
if (faces && faces->total > 0) {
buf = gst_buffer_make_writable (buf);
}
for (i = 0; i < (faces ? faces->total : 0); i++) {
CvRect *r = (CvRect *) cvGetSeqElem (faces, i);
cvSetImageROI (filter->cvImage, *r);
cvSmooth (filter->cvImage, filter->cvImage, CV_BLUR, 11, 11, 0, 0);
cvSmooth (filter->cvImage, filter->cvImage, CV_GAUSSIAN, 11, 11, 0, 0);
cvResetImageROI (filter->cvImage);
}
}
/* these filters operate in place, so we push the same buffer */
return gst_pad_push (filter->srcpad, buf);
}
开发者ID:neduartes,项目名称:gst-plugins-bad,代码行数:42,代码来源:gstfaceblur.c
示例11: proxy_src_pad_query_function
static gboolean
proxy_src_pad_query_function (GstPad * pad, GstObject * parent,
GstQuery * query)
{
gboolean ret = gst_pad_query_default (pad, parent, query);
if (!ret) {
return ret;
}
if (GST_QUERY_TYPE (query) == GST_QUERY_ACCEPT_CAPS) {
gboolean accepted;
gst_query_parse_accept_caps_result (query, &accepted);
if (!accepted) {
GstProxyPad *gp = gst_proxy_pad_get_internal (GST_PROXY_PAD (pad));
KmsAgnosticBin2 *self = NULL;
GST_ERROR_OBJECT (pad, "Caps not accepted: %" GST_PTR_FORMAT, query);
if (gp) {
self = KMS_AGNOSTIC_BIN2 (GST_OBJECT_PARENT (gp));
}
if (self) {
KMS_AGNOSTIC_BIN2_LOCK (self);
remove_target_pad (GST_PAD_CAST (gp));
kms_agnostic_bin2_process_pad (self, GST_PAD_CAST (gp));
KMS_AGNOSTIC_BIN2_UNLOCK (self);
}
g_object_unref (gp);
}
}
return ret;
}
开发者ID:ArenaCloud,项目名称:kms-core,代码行数:38,代码来源:kmsagnosticbin.c
示例12: _owr_deep_notify
void _owr_deep_notify(GObject *object, GstObject *orig,
GParamSpec *pspec, gpointer user_data)
{
GValue value = G_VALUE_INIT;
gchar *str = NULL;
GstObject *it;
gchar *prevpath, *path;
OWR_UNUSED(user_data);
OWR_UNUSED(object);
path = g_strdup("");
for (it = orig; GST_IS_OBJECT(it); it = GST_OBJECT_PARENT(it)) {
prevpath = path;
path = g_strjoin("/", GST_OBJECT_NAME(it), prevpath, NULL);
g_free(prevpath);
}
if (pspec->flags & G_PARAM_READABLE) {
g_value_init(&value, pspec->value_type);
g_object_get_property(G_OBJECT(orig), pspec->name, &value);
if (G_VALUE_TYPE(&value) == GST_TYPE_CAPS)
str = gst_caps_to_string(gst_value_get_caps(&value));
else if (G_VALUE_HOLDS_STRING(&value))
str = g_value_dup_string(&value);
else
str = gst_value_serialize(&value);
GST_INFO_OBJECT(object, "%s%s = %s\n", path, pspec->name, str);
g_free(str);
g_value_unset(&value);
} else
GST_INFO_OBJECT(object, "Parameter %s not readable in %s.", pspec->name, path);
g_free(path);
}
开发者ID:AIMA2015,项目名称:openwebrtc,代码行数:38,代码来源:owr_utils.c
示例13: gst_tee_set_property
static void
gst_tee_set_property (GObject * object, guint prop_id, const GValue * value,
GParamSpec * pspec)
{
GstTee *tee = GST_TEE (object);
GST_OBJECT_LOCK (tee);
switch (prop_id) {
case PROP_HAS_CHAIN:
tee->has_chain = g_value_get_boolean (value);
break;
case PROP_SILENT:
tee->silent = g_value_get_boolean (value);
break;
case PROP_PULL_MODE:
tee->pull_mode = (GstTeePullMode) g_value_get_enum (value);
break;
case PROP_ALLOC_PAD:
{
GstPad *pad = g_value_get_object (value);
GST_OBJECT_LOCK (pad);
if (GST_OBJECT_PARENT (pad) == GST_OBJECT_CAST (object))
tee->allocpad = pad;
else
GST_WARNING_OBJECT (object, "Tried to set alloc pad %s which"
" is not my pad", GST_OBJECT_NAME (pad));
GST_OBJECT_UNLOCK (pad);
break;
}
case PROP_ALLOW_NOT_LINKED:
tee->allow_not_linked = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
GST_OBJECT_UNLOCK (tee);
}
开发者ID:freedesktop-unofficial-mirror,项目名称:gstreamer__gstreamer,代码行数:38,代码来源:gsttee.c
示例14: gst_audioringbuffer_close_device
static gboolean
gst_audioringbuffer_close_device (GstRingBuffer * buf)
{
GstAudioSrc *src;
GstAudioSrcClass *csrc;
gboolean result = TRUE;
src = GST_AUDIO_SRC (GST_OBJECT_PARENT (buf));
csrc = GST_AUDIO_SRC_GET_CLASS (src);
if (csrc->close)
result = csrc->close (src);
if (!result)
goto could_not_open;
return result;
could_not_open:
{
return FALSE;
}
}
开发者ID:adenexter,项目名称:gst-plugins-base,代码行数:23,代码来源:gstaudiosrc.c
示例15: gst_shout2send_setcaps
static gboolean
gst_shout2send_setcaps (GstPad * pad, GstCaps * caps)
{
const gchar *mimetype;
GstShout2send *shout2send;
gboolean ret = TRUE;
shout2send = GST_SHOUT2SEND (GST_OBJECT_PARENT (pad));
mimetype = gst_structure_get_name (gst_caps_get_structure (caps, 0));
GST_DEBUG_OBJECT (shout2send, "mimetype of caps given is: %s", mimetype);
if (!strcmp (mimetype, "audio/mpeg")) {
shout2send->audio_format = SHOUT_FORMAT_MP3;
} else if (!strcmp (mimetype, "application/ogg")) {
shout2send->audio_format = SHOUT_FORMAT_VORBIS;
} else {
ret = FALSE;
}
return ret;
}
开发者ID:TheBigW,项目名称:gst-plugins-good,代码行数:23,代码来源:gstshout2.c
示例16: _audio_stream_hardware_changed_listener
static OSStatus
_audio_stream_hardware_changed_listener (AudioObjectID inObjectID,
UInt32 inNumberAddresses,
const AudioObjectPropertyAddress inAddresses[], void *inClientData)
{
OSStatus status = noErr;
guint i;
GstCoreAudio *core_audio = inClientData;
for (i = 0; i < inNumberAddresses; i++) {
if (inAddresses[i].mSelector == kAudioDevicePropertyDeviceHasChanged) {
if (!gst_core_audio_audio_device_is_spdif_avail (core_audio->device_id)) {
GstOsxAudioSink *sink =
GST_OSX_AUDIO_SINK (GST_OBJECT_PARENT (core_audio->osxbuf));
GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
("SPDIF output no longer available"),
("Audio device is reporting that SPDIF output isn't available"));
}
break;
}
}
return (status);
}
开发者ID:Distrotech,项目名称:gst-plugins-good,代码行数:23,代码来源:gstosxcoreaudiohal.c
示例17: gst_audioringbuffer_stop
static gboolean
gst_audioringbuffer_stop (GstRingBuffer * buf)
{
GstAudioSrc *src;
GstAudioSrcClass *csrc;
src = GST_AUDIO_SRC (GST_OBJECT_PARENT (buf));
csrc = GST_AUDIO_SRC_GET_CLASS (src);
/* unblock any pending writes to the audio device */
if (csrc->reset) {
GST_DEBUG ("reset...");
csrc->reset (src);
GST_DEBUG ("reset done");
}
#if 0
GST_DEBUG ("stop, waiting...");
GST_AUDIORING_BUFFER_WAIT (buf);
GST_DEBUG ("stoped");
#endif
return TRUE;
}
开发者ID:adenexter,项目名称:gst-plugins-base,代码行数:23,代码来源:gstaudiosrc.c
示例18: pad_event
static gboolean
pad_event (GstPad *pad, GstEvent *event)
{
GstOmxBaseVfpc2 *self;
GstOmxBaseFilter2 *omx_base;
self = GST_OMX_BASE_VFPC2 (GST_OBJECT_PARENT (pad));
omx_base = GST_OMX_BASE_FILTER2 (self);
GST_INFO_OBJECT (self, "begin: event=%s", GST_EVENT_TYPE_NAME (event));
switch (GST_EVENT_TYPE (event))
{
case GST_EVENT_CROP:
{
gst_event_parse_crop (event, &self->top, &self->left, NULL, NULL);
return TRUE;
}
default:
{
return parent_class->pad_event (pad, event);
}
}
}
开发者ID:andreimironenko,项目名称:gst-openmax,代码行数:24,代码来源:gstomx_base_vfpc2.c
示例19: gst_droid_cam_src_vfsrc_getcaps
static GstCaps *
gst_droid_cam_src_vfsrc_getcaps (GstPad * pad)
{
GstDroidCamSrc *src = GST_DROID_CAM_SRC (GST_OBJECT_PARENT (pad));
GstCaps *caps = NULL;
GST_DEBUG_OBJECT (src, "vfsrc getcaps");
GST_OBJECT_LOCK (src);
if (src->camera_params) {
int x;
uint len;
caps = camera_params_get_viewfinder_caps (src->camera_params);
len = gst_caps_get_size (caps);
GST_CAMERA_BUFFER_POOL_LOCK (src->pool);
for (x = 0; x < len; x++) {
GstStructure *s = gst_caps_get_structure (caps, x);
gst_structure_set (s, "orientation-angle", G_TYPE_INT,
src->pool->orientation, NULL);
}
GST_CAMERA_BUFFER_POOL_UNLOCK (src->pool);
} else {
caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
}
GST_OBJECT_UNLOCK (src);
GST_LOG_OBJECT (src, "returning %" GST_PTR_FORMAT, caps);
return caps;
}
开发者ID:sailfishos,项目名称:gst-droidcamsrc,代码行数:36,代码来源:gstvfsrcpad.c
示例20: gst_ogg_avi_parse_event
static gboolean
gst_ogg_avi_parse_event (GstPad * pad, GstEvent * event)
{
GstOggAviParse *ogg;
gboolean ret;
ogg = GST_OGG_AVI_PARSE (GST_OBJECT_PARENT (pad));
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_START:
ret = gst_pad_push_event (ogg->srcpad, event);
break;
case GST_EVENT_FLUSH_STOP:
ogg_sync_reset (&ogg->sync);
ogg_stream_reset (&ogg->stream);
ogg->discont = TRUE;
ret = gst_pad_push_event (ogg->srcpad, event);
break;
default:
ret = gst_pad_push_event (ogg->srcpad, event);
break;
}
return ret;
}
开发者ID:prajnashi,项目名称:gst-plugins-base,代码行数:24,代码来源:gstoggaviparse.c
注:本文中的GST_OBJECT_PARENT函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论