summaryrefslogtreecommitdiffstats
path: root/libavfilter/opencl
diff options
context:
space:
mode:
authorRuiling Song <ruiling.song@intel.com>2019-01-21 15:44:04 +0800
committerRuiling Song <ruiling.song@intel.com>2019-03-22 09:33:28 +0800
commitb073fb9eeae8f021a4e18886ccf73cda9f67b00c (patch)
tree9a936916eefceec7666f620b3f02e153f26f70cc /libavfilter/opencl
parent8b951cd4752c8db2b4532fae9fb300d422950cdd (diff)
downloadffmpeg-streaming-b073fb9eeae8f021a4e18886ccf73cda9f67b00c.zip
ffmpeg-streaming-b073fb9eeae8f021a4e18886ccf73cda9f67b00c.tar.gz
lavfi/colorspace_common: add ifdef check to be more compatible.
Some filters may not need to do linearize/delinearize, thus will even not define them. Add ifdef check, so they could easily re-use the .cl file. Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Diffstat (limited to 'libavfilter/opencl')
-rw-r--r--libavfilter/opencl/colorspace_common.cl14
1 files changed, 12 insertions, 2 deletions
diff --git a/libavfilter/opencl/colorspace_common.cl b/libavfilter/opencl/colorspace_common.cl
index 1d68a54..ac911f0 100644
--- a/libavfilter/opencl/colorspace_common.cl
+++ b/libavfilter/opencl/colorspace_common.cl
@@ -124,10 +124,14 @@ float3 yuv2rgb(float y, float u, float v) {
float3 yuv2lrgb(float3 yuv) {
float3 rgb = yuv2rgb(yuv.x, yuv.y, yuv.z);
+#ifdef linearize
float r = linearize(rgb.x);
float g = linearize(rgb.y);
float b = linearize(rgb.z);
return (float3)(r, g, b);
+#else
+ return rgb;
+#endif
}
float3 rgb2yuv(float r, float g, float b) {
@@ -151,19 +155,25 @@ float rgb2y(float r, float g, float b) {
}
float3 lrgb2yuv(float3 c) {
+#ifdef delinearize
float r = delinearize(c.x);
float g = delinearize(c.y);
float b = delinearize(c.z);
-
return rgb2yuv(r, g, b);
+#else
+ return rgb2yuv(c.x, c.y, c.z);
+#endif
}
float lrgb2y(float3 c) {
+#ifdef delinearize
float r = delinearize(c.x);
float g = delinearize(c.y);
float b = delinearize(c.z);
-
return rgb2y(r, g, b);
+#else
+ return rgb2y(c.x, c.y, c.z);
+#endif
}
float3 lrgb2lrgb(float3 c) {
OpenPOWER on IntegriCloud