It's common practice to use type-checking cast macros with GObjects, so should be `G_SEEKABLE` and `G_INPUT_STREAM` below (you can also save a casted pointer to the GSeekable to avoid casting three times in a row).