Hi, this allows to record audio or video only and prevents to find a usable device in any case. This change in behaviour requires a version bump?
-Thilo
From 611e1cd763b04697f17aa5ea4d69d0280bef9a5f Mon Sep 17 00:00:00 2001 From: Thilo Borgmann <thilo.borgm...@mail.de> Date: Thu, 13 Nov 2014 16:22:48 +0100 Subject: [PATCH] lavd/avfoundation: Introduce device alias 'none' to allow the user to record only audio or video. Changes the selection of a default device to none instead of the system default device. --- libavdevice/avfoundation.m | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index 1207cbf..1a7eb5b 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -604,7 +604,10 @@ static int avf_read_header(AVFormatContext *s) goto fail; } } else if (ctx->video_filename && - strncmp(ctx->video_filename, "default", 7)) { + strncmp(ctx->video_filename, "none", 4)) { + if (!strncmp(ctx->video_filename, "default", 7)) { + video_device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; + } else { // looking for video inputs for (AVCaptureDevice *device in video_devices) { if (!strncmp(ctx->video_filename, [[device localizedName] UTF8String], strlen(ctx->video_filename))) { @@ -626,13 +629,12 @@ static int avf_read_header(AVFormatContext *s) } } #endif + } if (!video_device) { av_log(ctx, AV_LOG_ERROR, "Video device not found\n"); goto fail; } - } else { - video_device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; } // get audio device @@ -646,7 +648,10 @@ static int avf_read_header(AVFormatContext *s) audio_device = [devices objectAtIndex:ctx->audio_device_index]; } else if (ctx->audio_filename && - strncmp(ctx->audio_filename, "default", 7)) { + strncmp(ctx->audio_filename, "none", 4)) { + if (!strncmp(ctx->audio_filename, "default", 7)) { + audio_device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]; + } else { NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeAudio]; for (AVCaptureDevice *device in devices) { @@ -655,13 +660,12 @@ static int avf_read_header(AVFormatContext *s) break; } } + } if (!audio_device) { av_log(ctx, AV_LOG_ERROR, "Audio device not found\n"); goto fail; } - } else { - audio_device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]; } // Video nor Audio capture device not found, looking for AVMediaTypeVideo/Audio -- 1.9.3 (Apple Git-50)
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel