From: Thilo Borgmann Date: Mon, 27 Oct 2014 14:20:27 +0000 (+0100) Subject: lavd/avfoundation: Fix compilation for non MAC OS devices by conditional compilation... X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=ed2e97ce6a7a3dbd55174cf390ea8f010094b366;p=ffmpeg lavd/avfoundation: Fix compilation for non MAC OS devices by conditional compilation of screen capture capabilities. Signed-off-by: Michael Niedermayer --- diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index 75c62ed2631..5e5f70b5a86 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -535,7 +535,9 @@ static int avf_read_header(AVFormatContext *s) pthread_mutex_init(&ctx->frame_lock, NULL); pthread_cond_init(&ctx->frame_wait_cond, NULL); +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 CGGetActiveDisplayList(0, NULL, &num_screens); +#endif // List devices if requested if (ctx->list_devices) { @@ -548,6 +550,7 @@ static int avf_read_header(AVFormatContext *s) av_log(ctx, AV_LOG_INFO, "[%d] %s\n", index, name); index++; } +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 if (num_screens > 0) { CGDirectDisplayID screens[num_screens]; CGGetActiveDisplayList(num_screens, screens, &num_screens); @@ -555,6 +558,7 @@ static int avf_read_header(AVFormatContext *s) av_log(ctx, AV_LOG_INFO, "[%d] Capture screen %d\n", index + i, i); } } +#endif av_log(ctx, AV_LOG_INFO, "AVFoundation audio devices:\n"); devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeAudio]; @@ -588,10 +592,12 @@ static int avf_read_header(AVFormatContext *s) if (ctx->video_device_index < ctx->num_video_devices) { video_device = [video_devices objectAtIndex:ctx->video_device_index]; } else if (ctx->video_device_index < ctx->num_video_devices + num_screens) { +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 CGDirectDisplayID screens[num_screens]; CGGetActiveDisplayList(num_screens, screens, &num_screens); AVCaptureScreenInput* capture_screen_input = [[[AVCaptureScreenInput alloc] initWithDisplayID:screens[ctx->video_device_index - ctx->num_video_devices]] autorelease]; video_device = (AVCaptureDevice*) capture_screen_input; +#endif } else { av_log(ctx, AV_LOG_ERROR, "Invalid device index\n"); goto fail; @@ -606,6 +612,7 @@ static int avf_read_header(AVFormatContext *s) } } +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 // looking for screen inputs if (!video_device) { int idx; @@ -617,6 +624,7 @@ static int avf_read_header(AVFormatContext *s) ctx->video_device_index = ctx->num_video_devices + idx; } } +#endif if (!video_device) { av_log(ctx, AV_LOG_ERROR, "Video device not found\n");