Corrected the associations on the UML diagrams

Original commit message from CVS:
Corrected the associations on the UML diagrams
This commit is contained in:
Wim Taymans 2001-02-11 22:22:47 +00:00
parent ff31df763e
commit d0d6cd30d4
2 changed files with 55 additions and 26 deletions

View file

@ -58,13 +58,13 @@
<layer name="Background" visible="true"> <layer name="Background" visible="true">
<object type="UML - Class" version="0" id="O0"> <object type="UML - Class" version="0" id="O0">
<attribute name="obj_pos"> <attribute name="obj_pos">
<point val="1.65,5.6"/> <point val="0.75,5.55"/>
</attribute> </attribute>
<attribute name="obj_bb"> <attribute name="obj_bb">
<rectangle val="1.6,5.55;13.6504,9.65"/> <rectangle val="0.7,5.5;12.7504,9.6"/>
</attribute> </attribute>
<attribute name="elem_corner"> <attribute name="elem_corner">
<point val="1.65,5.6"/> <point val="0.75,5.55"/>
</attribute> </attribute>
<attribute name="elem_width"> <attribute name="elem_width">
<real val="11.9504"/> <real val="11.9504"/>
@ -228,15 +228,15 @@
</object> </object>
<object type="UML - Association" version="0" id="O2"> <object type="UML - Association" version="0" id="O2">
<attribute name="obj_pos"> <attribute name="obj_pos">
<point val="13.6004,9.1"/> <point val="12.7004,9.05"/>
</attribute> </attribute>
<attribute name="obj_bb"> <attribute name="obj_bb">
<rectangle val="12.1504,7.65;17.8,11.8"/> <rectangle val="11.2504,7.6;18.4892,11.8"/>
</attribute> </attribute>
<attribute name="orth_points"> <attribute name="orth_points">
<point val="13.6004,9.1"/> <point val="12.7004,9.05"/>
<point val="15.15,9.1"/> <point val="14.15,9.05"/>
<point val="15.15,10.35"/> <point val="14.15,10.35"/>
<point val="16.35,10.35"/> <point val="16.35,10.35"/>
</attribute> </attribute>
<attribute name="orth_orient"> <attribute name="orth_orient">
@ -256,7 +256,7 @@
<string/> <string/>
</attribute> </attribute>
<attribute name="multiplicity"> <attribute name="multiplicity">
<string>#0#</string> <string>#1#</string>
</attribute> </attribute>
<attribute name="arrow"> <attribute name="arrow">
<boolean val="false"/> <boolean val="false"/>
@ -270,7 +270,7 @@
<string/> <string/>
</attribute> </attribute>
<attribute name="multiplicity"> <attribute name="multiplicity">
<string>#1#</string> <string>#0..1#</string>
</attribute> </attribute>
<attribute name="arrow"> <attribute name="arrow">
<boolean val="false"/> <boolean val="false"/>
@ -400,7 +400,7 @@
<string/> <string/>
</attribute> </attribute>
<attribute name="multiplicity"> <attribute name="multiplicity">
<string>#0#</string> <string>#1#</string>
</attribute> </attribute>
<attribute name="arrow"> <attribute name="arrow">
<boolean val="false"/> <boolean val="false"/>

View file

@ -177,8 +177,6 @@ the caps can be set with the gst_pad_set_caps function, which accepts
the following parameters: the following parameters:
- the pad to set the caps to - the pad to set the caps to
- whether the peer pad *must* accept the caps (AUTHORITATIVE) or
whether if can reject the caps (TRY)
- a GstCaps* structure - a GstCaps* structure
example4: example4:
@ -187,7 +185,6 @@ example4:
! !
! gst_pad_set_caps ( ! gst_pad_set_caps (
! pad, ! pad,
! GST_CAPS_NEGOTIATE_AUTHORITATIVE,
! gst_caps_new_with_props ( ! gst_caps_new_with_props (
! "src_caps", /* name */ ! "src_caps", /* name */
! "audio/raw", /* mime */ ! "audio/raw", /* mime */
@ -201,20 +198,12 @@ example4:
! ) ! )
! ); ! );
the _set_caps function returns a gboolean, indicating that the The _set_caps method will trigger the caps negotiation with the
new caps are accepted by the peer pad. peer pad (if connected).
when the negotiation type is set to TRY, and the negotiation
fails, the pad has to perform another _set_caps call. The last
call to _set_caps has to be of type AUTHORITATIVE.
when the negotiation fails and the type is set to AUTHORITATIVE,
the pads are disconnected and a signal is emitted to inform any
interested listeners.
6) caps negotiation 6) caps negotiation function
------------------- ----------------------------
the negotiate function of a pad is called whenever the peer pad the negotiate function of a pad is called whenever the peer pad
modifies the caps using the gst_pad_set_caps function. modifies the caps using the gst_pad_set_caps function.
@ -224,6 +213,7 @@ new caps are acceptable. When it accepts the caps, both pads will
be set to the negotiated caps. be set to the negotiated caps.
example5: example5:
!
! this is the caps negotiation function implemented by an element on ! this is the caps negotiation function implemented by an element on
! one of its sink pads. ! one of its sink pads.
! !
@ -241,6 +231,45 @@ example5:
! return TRUE; ! return TRUE;
! } ! }
When the negotiate function returns FALSE (it does not accept the
specified caps of the peer pad),
figure1
!
!
! element pad pad->peer
! !
! ! _negotiate(pad)
! !------------------>!
! ! gst_pad_negotiate()
! !------.
! !<-----'
! ! _caps_negotiate()
! !--------------------->!
!
!
the element has some of its internal properties changed. It wants
to renegotiate the caps with its peer element. The element does:
gst_pad_renegotiate (element->srcpad);
this will trigger the class method of the pad and
7) use cases
------------