| |
| |
| Problem #1: |
| |
| How does the core allow the application to choose appropriate |
| caps in the following cases: |
| |
| videotestsrc ! xvimagesink |
| |
| videotestsrc ! identity ! xvimagesink |
| |
| videotestsrc ! videoscale ! xvimagesink |
| |
| Goals: |
| |
| - Give the application a clear overview of the formats available |
| and the elements involved. |
| |
| - Provide reasonable defaults in as many cases as possible. |
| |
| - Allow specialized elements to suggest reasonable defaults. |
| |
| |
| |
| Problem #2: |
| |
| How does the API express to an autoplugger what an element does? |
| |
| Currently, "colorspace" and "videoscale" have approximately the |
| same pad template caps. Until the autoplugger plugs and looks, |
| it has no way to determine that colorspace changes format, and |
| videoscale changes size. |
| |
| |
| |
| Problem #3: |
| |
| How do we properly handle codec metadata? |
| |
| Solution #3a: |
| |
| Stream initialization event. This event would be held by all |
| src pads, and pushed to sink pads upon connection, and would |
| flow downstream. |
| |
| Solution #3b: |
| |
| Put a buffer in the caps. |
| |
| |
| Problem #4: |
| |
| (Related to #1) How does one specify that a converter should limit |
| it's conversion? I.e., audioconvert to not change number of channels, |
| or audioscale upsample by 20%. Basically, this means caps based on |
| other caps. |
| |
| Solution #4a: |
| |
| One can put a converter element into a special bin: |
| |
| specialbin.( specialidentity ! converter ! specialidentity ) |
| |
| Specialbin can then interfere with caps negotiation all it wants. |
| |
| |
| Problem #5: |
| |
| (Related to #3) How do we specify stream format information that |
| is non-critical and optional, such as pixel aspect ratio on raw |
| video? |
| |
| Problem #6: |
| |
| How do we specify the difference between nominal values and actual |
| values, such as video frame rate? The actual frame rate may not |
| correspond to the nominal frame rate in the caps, and often a guess |
| is listed. |
| |
| |
| |