--src---------------------------- --sink---------------------------- | | --srcpad--------| |--sinkpad------- | pad_push() . . | push() | ->chain . . ->chain | -> chain() | . . | ----------------| |---------------- | | chain() is the function provided by sink element sinkpad->chain is a pointer to that function srcpad->chain should be a copy of that pointer pad_push() calls the function pointer srcpad->chain push() is the function provided by the src element