]> git.0d.be Git - empathy.git/commit
Change videosrc element ordering
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Tue, 14 Sep 2010 06:38:17 +0000 (07:38 +0100)
committerSjoerd Simons <sjoerd.simons@collabora.co.uk>
Tue, 14 Sep 2010 06:38:17 +0000 (07:38 +0100)
commit9d7af3cbb13bb74ccc28427a7261be514f7cb241
treeb2ce90eed594106bc733e2f1824e9149d2cfad6a
parentb28a581a457842fb703b3ed85110e1e4c68f3707
Change videosrc element ordering

GStreamers basetransform has a nasty issue where its caps negotiation doesn't
keep the ordering of caps when unioning, as a result of this linking the
pipeline as "<src> !  videoscale ! colorspace ! video/x-raw-yuv" means at the
<src> element yuv is no longer preferred.

Changing the pipeline to be "<src> ! colorspace ! videoscale ! video/x-raw-yuv"
forces the videoscale to only negotiate video/x-raw-yuv, which in turns ensures
the colorspace and <src> element pick the right colorspace.

In combination with emulated formats in v4l2src picking the wrong colorspace
causes quite a performance hit (the src would do a color conversion in libv4l,
while the colorspace element would later convert it back to a colorspace
actually native to the src device!)
libempathy-gtk/empathy-video-src.c