Thanks, that was easy. There were a couple critical symbols it didn't pick up, like GST_STATE_PLAYING (which I expect would become GStreamer::STATE_PLAYING). I used Devel::Symdump to recursively drop everything under the 'GStreamer::' namespace and I couldn't find anything.
There's a lot of magic going on underneath here that I don't understand. My immediate thought is to use an xs module to pull in the missing constants from gst/gst.h and then use the Glib::Object::Introspection to do the harder parts. But maybe there's a way to have Introspection do everything?