[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