[FFmpeg-devel] [PATCH] build: restore videotoolbox compilation on iOS

wm4 nfxjfg at googlemail.com
Fri Oct 2 11:11:37 CEST 2015


On Fri,  2 Oct 2015 10:36:39 +0200
Clément Bœsch <u at pkh.me> wrote:

> From: Clément Bœsch <clement at stupeflix.com>
> 
> ---
>  configure             | 11 ++++++-----
>  ffmpeg_videotoolbox.c |  8 ++++++++
>  2 files changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/configure b/configure
> index fd39778..225e7ae 100755
> --- a/configure
> +++ b/configure
> @@ -1804,6 +1804,7 @@ SYSTEM_FUNCS="
>      sysconf
>      sysctl
>      usleep
> +    UTGetOSTypeFromString
>      VirtualAlloc
>      wglGetProcAddress
>  "
> @@ -2377,11 +2378,11 @@ crystalhd_deps="libcrystalhd_libcrystalhd_if_h"
>  d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder"
>  dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode"
>  vaapi_deps="va_va_h"
> -vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads CoreServices_CoreServices_h"
> -vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore -framework CoreServices"
> +vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
> +vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore"
>  vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
> -videotoolbox_deps="VideoToolbox_VideoToolbox_h pthreads CoreServices_CoreServices_h"
> -videotoolbox_extralibs="-framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework QuartzCore -framework CoreServices"
> +videotoolbox_deps="VideoToolbox_VideoToolbox_h pthreads"
> +videotoolbox_extralibs="-framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework QuartzCore"
>  xvmc_deps="X11_extensions_XvMClib_h"
>  
>  h263_vaapi_hwaccel_deps="vaapi"
> @@ -5109,7 +5110,6 @@ check_func_headers glob.h glob
>  enabled xlib &&
>      check_func_headers "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv -lX11 -lXext
>  
> -check_header CoreServices/CoreServices.h
>  check_header direct.h
>  check_header dirent.h
>  check_header dlfcn.h
> @@ -5142,6 +5142,7 @@ check_header asm/types.h
>  check_lib2 "windows.h shellapi.h" CommandLineToArgvW -lshell32
>  check_lib2 "windows.h wincrypt.h" CryptGenRandom -ladvapi32
>  check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
> +check_lib "CoreServices/CoreServices.h" UTGetOSTypeFromString "-framework CoreServices"
>  
>  check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
>  
> diff --git a/ffmpeg_videotoolbox.c b/ffmpeg_videotoolbox.c
> index 0bb0600..70b0d9c 100644
> --- a/ffmpeg_videotoolbox.c
> +++ b/ffmpeg_videotoolbox.c
> @@ -16,7 +16,9 @@
>   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>   */
>  
> +#if HAVE_UTGETOSTYPEFROMSTRING
>  #include <CoreServices/CoreServices.h>
> +#endif
>  
>  #include "config.h"
>  #include "libavcodec/avcodec.h"
> @@ -209,7 +211,13 @@ int videotoolbox_init(AVCodecContext *s)
>              CFStringRef pixfmt_str = CFStringCreateWithCString(kCFAllocatorDefault,
>                                                                 videotoolbox_pixfmt,
>                                                                 kCFStringEncodingUTF8);
> +#if HAVE_UTGETOSTYPEFROMSTRING
>              vdactx->cv_pix_fmt_type = UTGetOSTypeFromString(pixfmt_str);
> +#else
> +            av_log(s, loglevel, "UTGetOSTypeFromString() is not available "
> +                   "on this platform, %s pixel format can not be honored from "
> +                   "the command line\n", videotoolbox_pixfmt);
> +#endif
>              ret = av_vda_default_init2(s, vdactx);
>              CFRelease(pixfmt_str);
>          }

I'd question the use of this in the first place. What does it do at
all? I couldn't find documentation for this option at all.

You could just do a numerical conversion from FourCC or a plain numeric
value, but I question why this needs to be user-settable at all.


More information about the ffmpeg-devel mailing list