There is a problem in gtk-rs/gir that there is insufficient data in the GStreamer GIR file to generate correct types for some of the the array return values from some function calls. An example is the type Descriptor and the function parse_ca in Rust parseCa in D. Somehow girtod seems to have inferred data that is not present in the GIR file, and I cannot imagine these bindings are written manually, or are they.

So the question is how is the GStreamer MPEG-TS D binding created, given the problems of the Rust bindings?

PS There is very likely to be work to make the GStreamer MPEG-TS source generate better GIR files.