[FFmpeg-devel] [PATCH 03/11] avdevice/avfoundation: fix mixed declarations and code

Marvin Scholz epirat07 at gmail.com
Fri Jul 12 19:07:00 EEST 2024


Fix several "mixing declarations and code is incompatible with standards
before C99" warnings.
---
 libavdevice/avfoundation.m | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m
index c5a09c6563..17900d39d9 100644
--- a/libavdevice/avfoundation.m
+++ b/libavdevice/avfoundation.m
@@ -680,6 +680,7 @@ static int get_audio_config(AVFormatContext *s)
 {
     AVFContext *ctx = (AVFContext*)s->priv_data;
     CMFormatDescriptionRef format_desc;
+    const AudioStreamBasicDescription *basic_desc;
     AVStream* stream = avformat_new_stream(s, NULL);
 
     if (!stream) {
@@ -698,7 +699,7 @@ static int get_audio_config(AVFormatContext *s)
     avpriv_set_pts_info(stream, 64, 1, avf_time_base);
 
     format_desc = CMSampleBufferGetFormatDescription(ctx->current_audio_frame);
-    const AudioStreamBasicDescription *basic_desc = CMAudioFormatDescriptionGetStreamBasicDescription(format_desc);
+    basic_desc = CMAudioFormatDescriptionGetStreamBasicDescription(format_desc);
 
     if (!basic_desc) {
         unlock_frames(ctx);
@@ -765,7 +766,9 @@ static int get_audio_config(AVFormatContext *s)
 
 static NSArray* getDevicesWithMediaType(AVMediaType mediaType) {
 #if ((TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 100000) || (TARGET_OS_OSX && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500))
+    AVCaptureDeviceDiscoverySession *captureDeviceDiscoverySession;
     NSMutableArray *deviceTypes = nil;
+
     if (mediaType == AVMediaTypeVideo) {
         deviceTypes = [NSMutableArray arrayWithArray:@[AVCaptureDeviceTypeBuiltInWideAngleCamera]];
         #if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 100000)
@@ -810,7 +813,7 @@ static int get_audio_config(AVFormatContext *s)
         return nil;
     }
 
-    AVCaptureDeviceDiscoverySession *captureDeviceDiscoverySession =
+    captureDeviceDiscoverySession =
         [AVCaptureDeviceDiscoverySession
         discoverySessionWithDeviceTypes:deviceTypes
                               mediaType:mediaType
@@ -899,8 +902,9 @@ static int avf_read_header(AVFormatContext *s)
         } else if (ctx->video_device_index < ctx->num_video_devices + num_screens) {
 #if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
             CGDirectDisplayID screens[num_screens];
+            AVCaptureScreenInput* capture_screen_input;
             CGGetActiveDisplayList(num_screens, screens, &num_screens);
-            AVCaptureScreenInput* capture_screen_input = [[[AVCaptureScreenInput alloc] initWithDisplayID:screens[ctx->video_device_index - ctx->num_video_devices]] autorelease];
+            capture_screen_input = [[[AVCaptureScreenInput alloc] initWithDisplayID:screens[ctx->video_device_index - ctx->num_video_devices]] autorelease];
 
             if (ctx->framerate.num > 0) {
                 capture_screen_input.minFrameDuration = CMTimeMake(ctx->framerate.den, ctx->framerate.num);
@@ -954,8 +958,9 @@ static int avf_read_header(AVFormatContext *s)
             int idx;
             if(sscanf(ctx->video_filename, "Capture screen %d", &idx) && idx < num_screens) {
                 CGDirectDisplayID screens[num_screens];
+                AVCaptureScreenInput* capture_screen_input;
                 CGGetActiveDisplayList(num_screens, screens, &num_screens);
-                AVCaptureScreenInput* capture_screen_input = [[[AVCaptureScreenInput alloc] initWithDisplayID:screens[idx]] autorelease];
+                capture_screen_input = [[[AVCaptureScreenInput alloc] initWithDisplayID:screens[idx]] autorelease];
                 video_device = (AVCaptureDevice*) capture_screen_input;
                 ctx->video_device_index = ctx->num_video_devices + idx;
                 ctx->video_is_screen = 1;
@@ -1123,10 +1128,12 @@ static int avf_read_packet(AVFormatContext *s, AVPacket *pkt)
     do {
         CVImageBufferRef image_buffer;
         CMBlockBufferRef block_buffer;
+        CMItemCount count;
+        CMSampleTimingInfo timing_info;
         lock_frames(ctx);
 
         if (ctx->current_frame != nil) {
-            int status;
+            int status = 0;
             int length = 0;
 
             image_buffer = CMSampleBufferGetImageBuffer(ctx->current_frame);
@@ -1146,9 +1153,6 @@ static int avf_read_packet(AVFormatContext *s, AVPacket *pkt)
                 return AVERROR(EIO);
             }
 
-            CMItemCount count;
-            CMSampleTimingInfo timing_info;
-
             if (CMSampleBufferGetOutputSampleTimingInfoArray(ctx->current_frame, 1, &timing_info, &count) == noErr) {
                 AVRational timebase_q = av_make_q(1, timing_info.presentationTimeStamp.timescale);
                 pkt->pts = pkt->dts = av_rescale_q(timing_info.presentationTimeStamp.value, timebase_q, avf_time_base_q);
@@ -1160,7 +1164,6 @@ static int avf_read_packet(AVFormatContext *s, AVPacket *pkt)
             if (image_buffer) {
                 status = copy_cvpixelbuffer(s, image_buffer, pkt);
             } else {
-                status = 0;
                 OSStatus ret = CMBlockBufferCopyDataBytes(block_buffer, 0, pkt->size, pkt->data);
                 if (ret != kCMBlockBufferNoErr) {
                     status = AVERROR(EIO);
@@ -1174,6 +1177,8 @@ static int avf_read_packet(AVFormatContext *s, AVPacket *pkt)
                 return status;
             }
         } else if (ctx->current_audio_frame != nil) {
+            CMItemCount count;
+            CMSampleTimingInfo timing_info;
             CMBlockBufferRef block_buffer = CMSampleBufferGetDataBuffer(ctx->current_audio_frame);
             int block_buffer_size         = CMBlockBufferGetDataLength(block_buffer);
 
@@ -1192,9 +1197,6 @@ static int avf_read_packet(AVFormatContext *s, AVPacket *pkt)
                 return AVERROR(EIO);
             }
 
-            CMItemCount count;
-            CMSampleTimingInfo timing_info;
-
             if (CMSampleBufferGetOutputSampleTimingInfoArray(ctx->current_audio_frame, 1, &timing_info, &count) == noErr) {
                 AVRational timebase_q = av_make_q(1, timing_info.presentationTimeStamp.timescale);
                 pkt->pts = pkt->dts = av_rescale_q(timing_info.presentationTimeStamp.value, timebase_q, avf_time_base_q);
-- 
2.39.3 (Apple Git-146)




More information about the ffmpeg-devel mailing list