LINUX.ORG.RU

Как преобразовать GLib.Value к Gst.Pad?

 , , , ,


0

1

В Gstreamer'е у всякого элемента можно вызвать весьма полезный итератор iterate_pads() или iterate_sink_pads(). У этого итератор есть метод next() без которого использование его лишено смысла. Однако в качестве параметра этот метод принимает GLib.Value, соответственно в соответствующее место в памяти этот метод next() кладёт GLib.Value, а не Gst.Pad. По-простому преобразовать GLib.Value к Gst.Pad не получилось, возможно это надо делать каким-то специальным методом. Каким, спрашивается? Кто-нибудь может показать пример использовать итераторов в Vala и GStreamer (на Vala)?

★★★★★

Gst.Element.sinkpads.foreach (() => {});

Пока что проблема решилась так (решилась ли?):

Gst.Element element = get_my_example_element ();
element.sinkpads.foreach ((pad) => {
//Some code with pad.
});

Не совсем, правда, понимаю, что за foreach. sinkpads это список sink pad'ов в элементе, а foreach упоминается в Vala Tutorial, правда тамошний пример сильно отличается от того что написал я.

Camel ★★★★★
() автор топика
Ответ на: комментарий от ratvier

@

А что означает «@»? Вот это самое:

Vala Tutorial

It is possible to use a reserved keyword as identifier name by prefixing it with the @ character. This character is not part of the name. For example, you can name a method foreach by writing @foreach, even though this is a reserved Vala keyword.

Camel ★★★★★
() автор топика
Ответ на: @ от Camel

Подсказка компилятору, что это функция с именем foreach, а не встроенный в язык foreach.

ratvier ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.