26 State Element::currentState()
const
29 getState(&r, NULL, 0);
33 State Element::pendingState()
const
36 getState(NULL, &r, 0);
40 StateChangeReturn Element::getState(State *state, State *pending, ClockTime timeout)
const
42 GstState curState, pendingState;
43 GstStateChangeReturn result = gst_element_get_state(object<GstElement>(),
44 &curState, &pendingState, timeout);
46 *state =
static_cast<State
>(curState);
49 *pending =
static_cast<State
>(pendingState);
51 return static_cast<StateChangeReturn
>(result);
54 StateChangeReturn Element::setState(State state)
56 return static_cast<StateChangeReturn
>(gst_element_set_state(object<GstElement>(),
57 static_cast<GstState
>(state)));
60 bool Element::syncStateWithParent()
62 return gst_element_sync_state_with_parent(object<GstElement>());
65 bool Element::stateIsLocked()
const
67 return gst_element_is_locked_state(object<GstElement>());
70 bool Element::setStateLocked(
bool locked)
72 return gst_element_set_locked_state(object<GstElement>(), locked);
75 bool Element::addPad(
const PadPtr & pad)
77 return gst_element_add_pad(object<GstElement>(), pad);
80 bool Element::removePad(
const PadPtr & pad)
82 return gst_element_remove_pad(object<GstElement>(), pad);
85 PadPtr Element::getStaticPad(
const char *name)
87 GstPad *pad = gst_element_get_static_pad(object<GstElement>(), name);
91 PadPtr Element::getRequestPad(
const char *name)
93 GstPad *pad = gst_element_get_request_pad(object<GstElement>(), name);
97 void Element::releaseRequestPad(
const PadPtr & pad)
99 gst_element_release_request_pad(object<GstElement>(), pad);
102 bool Element::link(
const char *srcPadName,
const ElementPtr & dest,
103 const char *sinkPadName,
const CapsPtr & filter)
105 return gst_element_link_pads_filtered(object<GstElement>(), srcPadName,
106 dest, sinkPadName, filter);
109 bool Element::link(
const char *srcPadName,
const ElementPtr & dest,
const CapsPtr & filter)
111 return link(srcPadName, dest, NULL, filter);
114 bool Element::link(
const ElementPtr & dest,
const char *sinkPadName,
const CapsPtr & filter)
116 return link(NULL, dest, sinkPadName, filter);
119 bool Element::link(
const ElementPtr & dest,
const CapsPtr & filter)
121 return link(NULL, dest, NULL, filter);
131 sinkPadName =
"sink";
134 gst_element_unlink_pads(object<GstElement>(), srcPadName, dest, sinkPadName);
144 unlink(
"src", dest, sinkPadName);
146 gst_element_unlink(object<GstElement>(), dest);
150 bool Element::query(
const QueryPtr & query)
152 return gst_element_query(object<GstElement>(), query);
155 ClockPtr Element::clock()
const
157 return ClockPtr::wrap(gst_element_get_clock(object<GstElement>()),
false);
160 bool Element::setClock(
const ClockPtr & clock)
162 return gst_element_set_clock(object<GstElement>(), clock);
165 bool Element::sendEvent(
const EventPtr &event)
169 gst_event_ref(event);
170 return gst_element_send_event(object<GstElement>(), event);
173 bool Element::seek(Format format, SeekFlags flags, quint64 position)
175 return gst_element_seek_simple(object<GstElement>(),
static_cast<GstFormat
>(format),
176 static_cast<GstSeekFlags
>(
static_cast<int>(flags)), position);
static RefPointer< T > wrap(typename T::CType *nativePtr, bool increaseRef=true)
void unlink(const char *srcPadName, const ElementPtr &dest, const char *sinkPadName)
Wrappers for GStreamer classes.