Both srcpad and context are input/output arguments (hence not returning one of them).  It's not uncommon to pass in a void ** for context as the caller does not know what the context is (only we do), therefore they are passing a blind pointer to a pointer so we can assign our context to it.