androidmedia: move create_src|sink_caps to gstamc.c
authorChen Jie <chenj@lemote.com>
Tue, 8 Oct 2013 13:11:48 +0000 (21:11 +0800)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 26 May 2014 14:29:01 +0000 (16:29 +0200)
commit557d6b974fe98d09ddd0a500548b8a13211dab1c
tree83dc387d86e4c41070f7c7d0c7163b8d6d4d7bd2
parentf3489442468f0c1be747a0b26cde24aa4a39d4aa
androidmedia: move create_src|sink_caps to gstamc.c

Some hack logic needs also to be present in create_src|sink_caps, for
working around some broken codecs. These hacks are hidden
in color_format/video_format conversion -- the prototypes of these
functions are also changed to include more args for hack judgement.

Also in case of multi-color_formats mapped to one video_format, then
map that video_format back will not give the original color_format, which
causes gst_amc_codec_configure failed with something like
'does not support color format N'.

The new prototype involves with GstAmcCodecInfo and mime, which
ensures the converted color_format is supported by the codec.

A COLOR_FormatYCbYCr to GST_VIDEO_FORMAT_YUY2 mapping is also added, in
order to work around bugs in OMX.k3.video.decoder.avc(which incorrectly
reports supporting COLOR_FormatYCbYCr, which is actually
COLOR_FormatYUV420SemiPlanar). There are already hacks for this in
gst_amc_video_format_to_color_format, gst_amc_color_format_to_video_format
and gst_amc_color_format_info_set, but the codec will still not work(be
ignored because of "has unknown color formats") without adding this mapping.
sys/androidmedia/gstamc.c
sys/androidmedia/gstamc.h
sys/androidmedia/gstamcaudiodec.c
sys/androidmedia/gstamcvideodec.c
sys/androidmedia/gstamcvideoenc.c