summaryrefslogtreecommitdiff
path: root/ColorSpaceBin.mdwn
blob: 552e1303e5a7b301d5ab902dd0e79ae04f11e5ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28


# ColorSpaceBin

A bin that can dynamically select the correct elements for colorspace conversion (CC). 


## Problem

Now there is only one major well known CC element -> ffmpegcolorspace. However there are some problems with this element ( or with the fact that there is only one element): 

* ffmpegcolorspace is out of sync with upstream ffmpeg...some volunteers that want to sync it? 
* many pipelines/programs depend on the ffmpegcolorspace for basic functionality, so if your CC is not in this element your CC will not work with this pipeline/program. 
* If you want to create a CC element, for example with hardware acceleration, and you want that it works without changing programs/pipelines you need to hack on ffmpegcolorspace. 
* with previous restriction your element needs to be LGPL. 

## Solution

A bin element that chooses the correct CC element's out of the available elements. All application/pipeline developers can depend on this element for the CC job, like they now depend on playbin/decodebin for playing/decoding media. Maybe playbin and/or decodebin can use this element too. In that sense an application can use the ffmpegcolorspace element without hard linking it and take away some design restrictions and allow new CC just by adding/removing elements. 


### Features

* Application or pipeline developers don't need to choose there preferred CC element anymore. 
* Allow new CC just by adding/removing elements. 
* Chain multiple CC elements to handle the CC if there is no element that can do it in one time. 
* All elements of the klass "Filter/Converter/Video/Colorspace" will be marked as CC elements. 
* Priorities higher ranked CC elements.