| OUTDATED |
| -------- |
| |
| |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| --- -> --- |
| |
| always compatible |
| |
| --+ -> --- |
| |
| call negotiate function, set the resulting caps |
| |
| -+- -> --- |
| |
| always compatible |
| |
| -++ -> --- |
| |
| call negotiate function, set the resulting caps |
| |
| +-- -> --- |
| |
| always compatible, caps are those of the pad |
| |
| +-+ -> --- |
| |
| always compatible, caps are those of the pad |
| |
| ++- -> --- |
| |
| always compatible, caps are those of the pad |
| |
| +++ -> --- |
| |
| always compatible, caps are those of the pad |
| |
| ===================================== |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| |
| --- -> --+ |
| |
| call negotiate function, set the resulting caps |
| |
| --+ -> --+ |
| |
| negotiate until agreed |
| |
| -+- -> --+ |
| |
| call negotiate until caps match padtemplate |
| |
| -++ -> --+ |
| |
| negotiate until agreed, caps only got send to the |
| other pad if they match the padtemplate |
| |
| +-- -> --+ |
| |
| call negotiate function with src caps, set caps if ok |
| |
| +-+ -> --+ |
| |
| call negotiate function with src caps, negotiate until agreed |
| |
| ++- -> --+ |
| |
| call negotiate function with src caps, set caps if ok |
| |
| +++ -> --+ |
| |
| call negotiate function with src caps, negotiate until agreed |
| |
| ===================================== |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| |
| --- -> -+- |
| |
| always compatible |
| |
| --+ -> -+- |
| |
| call negotiate until caps match padtemplate |
| |
| -+- -> -+- |
| |
| check padtemplates, if compatible connect |
| |
| -++ -> -+- |
| |
| check templates, if compatible, |
| call negotiate, until it matches the padtemplate |
| |
| +-- -> -+- |
| |
| check caps against padtemplate, if compatible, connect |
| |
| +-+ -> -+- |
| |
| check caps against padtemplate, if compatible: connect |
| alse call negotiate until it matches template |
| |
| ++- -> -+- |
| |
| check caps against padtemplate, if match, connect |
| |
| +++ -> -+- |
| |
| check caps against padtemplate, if match, connect |
| alse check padtemplates if compatible, |
| call negotiate until match template |
| |
| |
| ===================================== |
| |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| |
| --- -> -++ |
| |
| call negotiate, set resulting caps |
| |
| --+ -> -++ |
| |
| call negotiate until agree, check src caps against |
| padtemplate before calling sink negotiate |
| |
| -+- -> -++ |
| |
| check padtemplates, if match call negotiate until |
| match src padtemplate. |
| |
| -++ -> -++ |
| |
| check padtemplates, if match call negotiate until |
| agree |
| |
| +-- -> -++ |
| |
| check caps against padtemplate |
| call negotiate with caps, if agree, set caps |
| |
| +-+ -> -++ |
| |
| check caps against padtemplate |
| call negotiate with caps, negotiate until agree |
| |
| ++- -> -++ |
| |
| check caps against padtemplate |
| call negotiate with caps, call negotiate until |
| sink caps match src padtemplate |
| |
| +++ -> -++ |
| |
| check caps against padtemplate |
| call negotiate with caps, negotiate until agree |
| |
| |
| ===================================== |
| |
| |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| |
| --- -> +-- |
| |
| connection fails |
| |
| --+ -> +-- |
| |
| |
| |
| -+- -> +-- |
| |
| |
| -++ -> +-- |
| |
| |
| +-- -> +-- |
| |
| |
| +-+ -> +-- |
| |
| |
| ++- -> +-- |
| |
| |
| +++ -> +-- |
| |
| check caps, |
| call src negotiate with caps |
| |
| |
| ===================================== |
| |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| |
| --- -> +-+ |
| |
| |
| --+ -> +-+ |
| |
| |
| -+- -> +-+ |
| |
| |
| -++ -> +-+ |
| |
| |
| +-- -> +-+ |
| |
| |
| +-+ -> +-+ |
| |
| |
| ++- -> +-+ |
| |
| |
| +++ -> +-+ |
| |
| |
| ===================================== |
| |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| |
| --- -> ++- |
| |
| |
| --+ -> ++- |
| |
| |
| -+- -> ++- |
| |
| |
| -++ -> ++- |
| |
| |
| +-- -> ++- |
| |
| |
| +-+ -> ++- |
| |
| |
| ++- -> ++- |
| |
| |
| +++ -> ++- |
| |
| |
| ===================================== |
| |
| pad has caps |
| | pad has template |
| |/ pad has negotiate function |
| ||/ |
| |
| --- -> +++ |
| |
| |
| --+ -> +++ |
| |
| |
| -+- -> +++ |
| |
| |
| -++ -> +++ |
| |
| |
| +-- -> +++ |
| |
| |
| +-+ -> +++ |
| |
| |
| ++- -> +++ |
| |
| |
| +++ -> +++ |
| |
| |
| ===================================== |
| |
| srccaps = GST_PAD_CAPS (srcpad); |
| srctempl = FALSE; |
| |
| do { |
| |
| //no caps, get one |
| if (!srccaps) |
| { |
| if (srcpad->negotiatefunc && !srctempl) |
| { |
| srccaps = srcpad->negotiatefunc (srpad, srcaps, counter); |
| srctempl = FALSE; |
| } |
| else |
| { |
| srccaps = gst_pad_get_caps (srcpad); |
| srctempl = TRUE; |
| } |
| } |
| |
| /* check against other pad */ |
| |
| // the other pad doesn't want to negotiate |
| if (!sinkpad->negotiatefunc) |
| { |
| sinkcaps = gst_pad_get_caps (sinkpad); |
| |
| if (!sinkcaps) |
| break; |
| |
| if (gst_caps_check_compatibility (srccaps, sinkcaps)) |
| { |
| // cool |
| break; |
| } |
| } |
| else { |
| switch pads; |
| } |
| |
| } while (counter < 100); |
| |
| |
| |
| |
| |
| |