[FFmpeg-cvslog] lavd/avfoundation: Introduce device alias 'none' to allow the user to record only audio or video.

Thilo Borgmann git at videolan.org
Fri Nov 14 19:01:53 CET 2014


ffmpeg | branch: master | Thilo Borgmann <thilo.borgmann at mail.de> | Thu Nov 13 17:22:48 2014 +0100| [2045334239459f49e513a42e1b9965a94c5a0f5f] | committer: Michael Niedermayer

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.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2045334239459f49e513a42e1b9965a94c5a0f5f
---

 libavdevice/avfoundation.m |   16 ++++++++++------
 libavdevice/version.h      |    2 +-
 2 files changed, 11 insertions(+), 7 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
diff --git a/libavdevice/version.h b/libavdevice/version.h
index 630f654..3e427f0 100644
--- a/libavdevice/version.h
+++ b/libavdevice/version.h
@@ -28,7 +28,7 @@
 #include "libavutil/version.h"
 
 #define LIBAVDEVICE_VERSION_MAJOR 56
-#define LIBAVDEVICE_VERSION_MINOR  2
+#define LIBAVDEVICE_VERSION_MINOR  3
 #define LIBAVDEVICE_VERSION_MICRO 100
 
 #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \



More information about the ffmpeg-cvslog mailing list