gst/gstpad.c: Remove handling of filtered caps. Fix/merge functions that handle...
[platform/upstream/gstreamer.git] / docs / random / ds / caps
1
2
3 Problem #1:
4
5   How does the core allow the application to choose appropriate
6   caps in the following cases:
7
8     videotestsrc ! xvimagesink
9
10     videotestsrc ! identity ! xvimagesink
11
12     videotestsrc ! videoscale ! xvimagesink
13  
14   Goals:
15   
16   - Give the application a clear overview of the formats available
17     and the elements involved.
18
19   - Provide reasonable defaults in as many cases as possible.
20
21   - Allow specialized elements to suggest reasonable defaults.
22
23
24
25 Problem #2:
26
27   How does the API express to an autoplugger what an element does?
28
29   Currently, "colorspace" and "videoscale" have approximately the
30   same pad template caps.  Until the autoplugger plugs and looks,
31   it has no way to determine that colorspace changes format, and
32   videoscale changes size.
33
34
35
36 Problem #3:
37
38   How do we properly handle codec metadata?
39
40   Solution #3a:
41
42     Stream initialization event.  This event would be held by all
43     src pads, and pushed to sink pads upon connection, and would
44     flow downstream.
45
46   Solution #3b:
47     
48     Put a buffer in the caps.
49
50
51 Problem #4:
52
53   (Related to #1) How does one specify that a converter should limit
54   it's conversion?  I.e., audioconvert to not change number of channels,
55   or audioscale upsample by 20%.  Basically, this means caps based on
56   other caps.
57
58   Solution #4a:
59
60     One can put a converter element into a special bin:
61
62       specialbin.( specialidentity ! converter ! specialidentity )
63
64     Specialbin can then interfere with caps negotiation all it wants.
65
66
67 Problem #5:
68
69   (Related to #3)  How do we specify stream format information that
70   is non-critical and optional, such as pixel aspect ratio on raw
71   video?
72
73 Problem #6:
74
75   How do we specify the difference between nominal values and actual
76   values, such as video frame rate?  The actual frame rate may not
77   correspond to the nominal frame rate in the caps, and often a guess
78   is listed.
79
80
81