--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