[FFmpeg-devel] [PATCH 2/2] lavf: Add coreimage filter for GPU based image filtering on OSX.

Thilo Borgmann thilo.borgmann at mail.de
Sun Mar 13 00:45:12 CET 2016


Am 13.03.16 um 00:29 schrieb James Almer:
> On 3/12/2016 7:59 PM, Thilo Borgmann wrote:
>> Am 12.03.16 um 23:45 schrieb James Almer:
>>>> On 3/12/2016 7:09 PM, Thilo Borgmann wrote:
>>>>>> Am 12.03.16 um 21:45 schrieb Michael Niedermayer:
>>>>>>>>>> On Sat, Mar 12, 2016 at 03:19:11PM +0100, Thilo Borgmann wrote:
>>>>>>>>>>>>>> Am 12.03.16 um 15:14 schrieb Thilo Borgmann:
>>>>>>>>>>>>>>>>>> [...]
>>>>>>>>>> also breaks build on linux
>>>>>>>>>> ./configure && make -j12
>>>>>>>>>> ...
>>>>>>>>>> libavfilter/vaf_spectrumsynth.c:434:9: warning: ‘ret’ may be used uninitialized in this function [-Wuninitialized]
>>>>>>>>>> CC      libavfilter/vf_copy.o
>>>>>>>>>> OBJCC   libavfilter/vf_coreimage.o
>>>>>>>>>> gcc: error trying to exec 'cc1obj': execvp: No such file or directory
>>>>>>>>>> make: *** [libavfilter/vf_coreimage.o] Error 1
>>>>>>>>>> make: *** Waiting for unfinished jobs....
>>>>>> Should be fixed in attached patch.
>>>>
>>>> No, it isn't. vf_coreimage must depend on coreimage, otherwise it will be enabled for
>>>> every platform.
>>>> Also, coreimage is not a component listed in any list, so it's always disabled. Look
>>>> for example at chromaprint to get an idea of what's missing.
>> I'm sorry, I've no linux right now to test it on...
>> coreimage is no external lib, I don't think chromaprint analogies would fit.
>> It is more like avfoundation. However, I think I made one more mistake
>> that has been changed.
>>
>> Please test again the attached patch.
>>
>> Thanks!
>>
>> -Thilo
>>
>>
>> 0002-lavf-Add-coreimage-filter-for-GPU-based-image-filter.patch
>>
>>
>> From 76d67f19f1f537ca20ee86047d318558fe3a36cd Mon Sep 17 00:00:00 2001
>> From: Thilo Borgmann <thilo.borgmann at mail.de>
>> Date: Sat, 12 Mar 2016 23:55:50 +0100
>> Subject: [PATCH 2/2] lavf: Add coreimage filter for GPU based image filtering
>>  on OSX.
>>
>> ---
>>  Changelog                  |   1 +
>>  MAINTAINERS                |   1 +
>>  configure                  |   2 +
>>  doc/filters.texi           |  67 ++++++
>>  libavfilter/Makefile       |   1 +
>>  libavfilter/allfilters.c   |   1 +
>>  libavfilter/vf_coreimage.m | 553 +++++++++++++++++++++++++++++++++++++++++++++
>>  7 files changed, 626 insertions(+)
>>  create mode 100644 libavfilter/vf_coreimage.m
>>
>> diff --git a/Changelog b/Changelog
>> index 1f57f5e..5053a86 100644
>> --- a/Changelog
>> +++ b/Changelog
>> @@ -12,6 +12,7 @@ version <next>:
>>  - ciescope filter
>>  - protocol blacklisting API
>>  - MediaCodec H264 decoding
>> +- coreimage filter (GPU based image filtering on OSX)
>>  
>>  
>>  version 3.0:
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 531c21d..a993a67 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -370,6 +370,7 @@ Filters:
>>    vf_colorbalance.c                     Paul B Mahol
>>    vf_colorkey.c                         Timo Rothenpieler
>>    vf_colorlevels.c                      Paul B Mahol
>> +  vf_coreimage.m                        Thilo Borgmann
>>    vf_deband.c                           Paul B Mahol
>>    vf_dejudder.c                         Nicholas Robbins
>>    vf_delogo.c                           Jean Delvare (CC <jdelvare at suse.com>)
>> diff --git a/configure b/configure
>> index 1b189328..d21d22d 100755
>> --- a/configure
>> +++ b/configure
>> @@ -5255,6 +5255,7 @@ frei0r_filter_extralibs='$ldl'
>>  frei0r_src_filter_extralibs='$ldl'
>>  ladspa_filter_extralibs='$ldl'
>>  nvenc_encoder_extralibs='$ldl'
>> +coreimage_filter_extralibs="-framework QuartzCore -framework AppKit -framework OpenGL"
>>  
>>  if ! disabled network; then
>>      check_func getaddrinfo $network_extralibs
>> @@ -5483,6 +5484,7 @@ enabled avisynth          && { { check_lib2 "windows.h" LoadLibrary; } ||
>>                                 die "ERROR: LoadLibrary/dlopen not found for avisynth"; }
>>  enabled cuda              && check_lib cuda.h cuInit -lcuda
>>  enabled chromaprint       && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint
>> +enabled coreimage_filter  && { check_header_objcc CoreImage/CoreImage.h || disable avfoundation_indev; }
> 
> I assume avfoundation_indev here is a copy-paste mistake? But yes, it
> should be ok after changing that into coreimage_filter.

Indeed and found another bug. It never really checked on OSX.

In the mean time I could test Linux & OSX, now it seems to work.
Will attach the works-for-me patch in a seperate mail.

Thanks!

-Thilo



More information about the ffmpeg-devel mailing list