| @@ -405,3 +405,9 @@ TOOLS-$(CONFIG_LIBZMQ) += zmqsend | |||||
| clean:: | clean:: | ||||
| $(RM) $(CLEANSUFFIXES:%=libavfilter/libmpcodecs/%) | $(RM) $(CLEANSUFFIXES:%=libavfilter/libmpcodecs/%) | ||||
| OPENCL = $(subst $(SRC_PATH)/,,$(wildcard $(SRC_PATH)/libavfilter/opencl/*.cl)) | |||||
| .SECONDARY: $(OPENCL:.cl=.c) | |||||
| libavfilter/opencl/%.c: TAG = OPENCL | |||||
| libavfilter/opencl/%.c: $(SRC_PATH)/libavfilter/opencl/%.cl | |||||
| $(M)$(SRC_PATH)/tools/cl2c $< $@ | |||||
| @@ -0,0 +1,22 @@ | |||||
| /* | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #ifndef AVFILTER_OPENCL_SOURCE_H | |||||
| #define AVFILTER_OPENCL_SOURCE_H | |||||
| #endif /* AVFILTER_OPENCL_SOURCE_H */ | |||||
| @@ -0,0 +1,20 @@ | |||||
| #!/bin/sh | |||||
| # Convert an OpenCL source file into a C source file containing the | |||||
| # OpenCL source as a C string. Also adds a #line directive so that | |||||
| # compiler messages are useful. | |||||
| input="$1" | |||||
| output="$2" | |||||
| name=$(basename "$input" | sed 's/.cl$//') | |||||
| cat >$output <<EOF | |||||
| // Generated from $input | |||||
| const char *ff_opencl_source_$name = | |||||
| "#line 1 \"$input\"\n" | |||||
| EOF | |||||
| # Convert \ to \\ and " to \", then add " to the start and end of the line. | |||||
| cat "$input" | sed 's/\\/\\\\/g;s/\"/\\\"/g;s/^/\"/;s/$/\\n\"/' >>$output | |||||
| echo ";" >>$output | |||||