26State Element::currentState()
const
29 getState(&r, NULL, 0);
33State Element::pendingState()
const
36 getState(NULL, &r, 0);
40StateChangeReturn 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);
54StateChangeReturn Element::setState(State state)
56 return static_cast<StateChangeReturn
>(gst_element_set_state(object<GstElement>(),
57 static_cast<GstState
>(state)));
60bool Element::syncStateWithParent()
62 return gst_element_sync_state_with_parent(object<GstElement>());
65bool Element::stateIsLocked()
const
67 return gst_element_is_locked_state(object<GstElement>());
70bool Element::setStateLocked(
bool locked)
72 return gst_element_set_locked_state(object<GstElement>(), locked);
75bool Element::addPad(
const PadPtr & pad)
77 return gst_element_add_pad(object<GstElement>(), pad);
80bool Element::removePad(
const PadPtr & pad)
82 return gst_element_remove_pad(object<GstElement>(), pad);
85PadPtr Element::getStaticPad(
const char *name)
87 GstPad *pad = gst_element_get_static_pad(object<GstElement>(), name);
91PadPtr Element::getRequestPad(
const char *name)
93 GstPad *pad = gst_element_get_request_pad(object<GstElement>(), name);
97void Element::releaseRequestPad(
const PadPtr & pad)
99 gst_element_release_request_pad(object<GstElement>(), pad);
102bool 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);
109bool Element::link(
const char *srcPadName,
const ElementPtr & dest,
const CapsPtr & filter)
111 return link(srcPadName, dest, NULL, filter);
114bool Element::link(
const ElementPtr & dest,
const char *sinkPadName,
const CapsPtr & filter)
116 return link(NULL, dest, sinkPadName, filter);
119bool 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);
150bool Element::query(
const QueryPtr & query)
152 return gst_element_query(object<GstElement>(), query);
155ClockPtr Element::clock()
const
157 return ClockPtr::wrap(gst_element_get_clock(object<GstElement>()),
false);
160bool Element::setClock(
const ClockPtr & clock)
162 return gst_element_set_clock(object<GstElement>(), clock);
165bool Element::sendEvent(
const EventPtr &event)
169 gst_event_ref(event);
170 return gst_element_send_event(object<GstElement>(), event);
173bool 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.