GES needs a ges_clip_find_all_track_elements function
Submitted by Kim Lam
Link to original bug (#719878)
Description
In order to set volume and mute state for a clip with Dual Mono audio a ges_clip_find_all_track_elements is needed. Dual Mono files produces two audio track elements.
Something like the code below would work, but there's probably a more efficient way, since most of code is taken from ges_clip_find_track_element.
GList *
ges_clip_find_all_track_elements (GESClip * clip, GESTrack * track, GType type)
{
GList *tmp;
GESTrackElement *otmp;
GESTrackElement *foundElement;
GList *ret = NULL;
g_return_val_if_fail (GES_IS_CLIP (clip), NULL);
g_return_val_if_fail (!(track == NULL && type == G_TYPE_NONE), NULL);
for (tmp = GES_CONTAINER_CHILDREN (clip); tmp; tmp = g_list_next (tmp)) {
otmp = (GESTrackElement *) tmp->data;
if ((type != G_TYPE_NONE) && !G_TYPE_CHECK_INSTANCE_TYPE (tmp->data, type))
continue;
if ((track == NULL) || (ges_track_element_get_track (otmp) == track)) {
foundElement = GES_TRACK_ELEMENT (tmp->data);
gst_object_ref (foundElement);
ret = g_list_append(ret,foundElement);
}
}
return ret;
}
Version: 1.2.0