* old_state=READY and new_state=PAUSED), since before that the list might not
* be complete yet or not contain all available information (like
* language-codes).
*/
public List<StreamInfo> getStreamInfo() {
Pointer ptr = getPointer("stream-info-value-array");
if (ptr != null) {
GValueArray garray = new GValueArray(ptr);
List<StreamInfo> list = new ArrayList<StreamInfo>(garray.getNValues());
for (GValueAPI.GValue value : garray.values) {
StreamInfo streamInfo;
{ /*
* this is a work-around gst_stream_info_get_type() symbols not
* available in one of the top-level shared objects (libgstreamer or
* libgstbase). As a result, StreamInfo.class can not be registered in
* GstTypes even though if is an instance of GObject. value.getValue()
* will fail to resolve to an instance of StreamInfo. Here we bypass
* JNA type mapping that would occur had we called
* GValueAPI.g_value_get_object()
*/
Pointer p = GValueAPI.GVALUE_NOMAPPER_API.g_value_get_object(value);
streamInfo = NativeObject.objectFor(p, StreamInfo.class, -1, true);
}
list.add(streamInfo);
}
return list;