Commit Graph

55 Commits

Author SHA1 Message Date
Andreas Rheinhardt 790f793844 avutil/common: Don't auto-include mem.h
There are lots of files that don't need it: The number of object
files that actually need it went down from 2011 to 884 here.

Keep it for external users in order to not cause breakages.

Also improve the other headers a bit while just at it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-03-31 00:08:43 +01:00
Martin Storsjö 71e871280d libavdevice: Fix the avfoundation device after switching to FFInputFormat
This was missed in b800327f4c.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-03-08 12:48:59 +02:00
Anton Khirnov 08bebeb1be Revert "all: Don't set AVClass.item_name to its default value"
Some callers assume that item_name is always set, so this may be
considered an API break.

This reverts commit 0c6203c97a.
2024-01-20 10:34:48 +01:00
Andreas Rheinhardt 0c6203c97a all: Don't set AVClass.item_name to its default value
Unnecessary since acf63d5350adeae551d412db699f8ca03f7e76b9;
also avoids relocations.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2023-12-22 15:12:33 +01:00
Martin Storsjö 081d69b78d avfoundation: Fix version checks
<OS>_VERSION_MAX_ALLOWED indicates what version is available in
the SDK, while <OS>_VERSION_MIN_REQUIRED is the version we can
assume is available, i.e. similar to what is set with e.g.
-miphoneos-version-min on the command line.

This fixes build errors like these:

src/libavdevice/avfoundation.m:788:37: error: 'AVCaptureDeviceTypeContinuityCamera' is only available on macOS 14.0 or newer [-Werror,-Wunguarded-availability-new]
            [deviceTypes addObject: AVCaptureDeviceTypeContinuityCamera];
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:551:38: note: 'AVCaptureDeviceTypeContinuityCamera' has been marked as being introduced in macOS 14.0 here, but the deployment target is macOS 13.0.0
AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeContinuityCamera API_AVAILABLE(macos(14.0), ios(17.0), macCatalyst(17.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
                                     ^

Alternatively, we could use these more modern APIs, if enclosed
in suitable @available() checks.
2023-12-15 11:27:23 +01:00
Vittorio Giovara 944936ee1d lavd/avfoundation: Use correct preprocessing directive
Fixes compilation, introduced in e37b15e.

src/libavdevice/avfoundation.m:799:10: error: invalid preprocessing directive
        #elseif (TARGET_OS_OSX && __MAC_OS_X_VERSION_MAX_ALLOWED < 140000)
2023-12-11 18:38:09 +01:00
xufuji456 e37b15e26f avdevice/avfoundation: replace deprecated AVCaptureDevice
Building with iOS platform, the compiler has a warning: "'devicesWithMediaType:' is deprecated: first deprecated in iOS 10.0 - Use AVCaptureDeviceDiscoverySession instead"

Signed-off-by: xufuji456 <839789740@qq.com>
2023-12-11 15:47:26 +01:00
James Almer 0d0d67ce36 avdevice/avfoundation: convert to new channel layout-API
Signed-off-by: James Almer <jamrial@gmail.com>
2022-11-08 14:08:05 -03:00
Thilo Borgmann a473e11e32 lavd/avfoundation: Fix mixed declaration and code 2022-02-22 13:10:42 +01:00
Zhao Zhili 079de49912 avdevice/avfoundation: check strdup 2022-02-22 13:06:59 +01:00
Zhao Zhili 6b708592fa avdevice/avfoundation: fix memleak 2022-02-22 13:02:02 +01:00
Chengfeng Ye 54d201ae20 libavdevice/avfoundation.m: fix potential unreleased lock issue
The problem here is that the lock ctx->frame_lock will become
an unreleased lock if the program returns at patched lines.

Bug tracker link: https://trac.ffmpeg.org/ticket/9386\#ticket

Signed-off-by: Chengfeng Ye <cyeaa@connect.ust.hk>
2021-09-17 15:31:40 +02:00
Chengfeng Ye 9bbdfbfb32 libavdevice/avfoundation.m: fix protential unreleased lock issue
The problem here is that the lock ctx->frame_lock will
become an unreleased lock if the program returns at
line 697, line 735 and line744.

Bug tracker link: https://trac.ffmpeg.org/ticket/9385\#ticket

Signed-off-by: Chengfeng Ye <cyeaa@connect.ust.hk>
2021-09-17 15:31:32 +02:00
Andreas Rheinhardt 1be3d8a0cb avcodec/avcodec: Stop including channel_layout.h in avcodec.h
Also include channel_layout.h directly wherever used.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-07-22 11:14:31 +02:00
Steven Liu b67263e0e8 avdevice/avfoundation: remove first_audio_pts and first_pts
Because these two member of AVFContext not be used.

Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
2021-07-19 14:10:06 +02:00
Andreas Rheinhardt d92f38c179 avdevice: Constify all devices
This is possible now that the next-API is gone.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 11:48:05 -03:00
Martin Storsjö c810a9502c avfoundation: Fix building on iOS
Apparently the changes from 3c9185bf3a
aren't enough; even with that in place, I got errors like this
when trying to build for iOS:

src/libavdevice/avfoundation.m:135:5: error:
      'AVCaptureDeviceTransportControlsPlaybackMode' is unavailable: not
      available on iOS
    AVCaptureDeviceTransportControlsPlaybackMode observed_mode;
    ^
2020-04-30 14:21:47 +02:00
Thilo Borgmann 64b80cb04b lavd/avfoundation.m: Do not use transport controls for screen capture devices. 2020-04-22 16:52:36 +02:00
Thilo Borgmann 3c9185bf3a lavd/avfoundation.m: Remove transport controls for iOS. 2020-04-22 16:52:36 +02:00
Thilo Borgmann 39fbd06314 lavd/avfoundation: Add basic transport control observation for capable devices. 2020-03-16 10:26:03 +01:00
Thilo Borgmann 2ca14d84ee lavd/avfoundation.m: Add an option to drop late frames.
Retains current behaviour by the default value.
2020-02-07 11:09:20 +01:00
Jun Zhao 3aeb681f07 libavdevice: Update the class name as uniform style
Update the class name to uniform indev/outdev style.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-08-15 09:29:55 +08:00
Thilo Borgmann 70a4f46e48 lavd/avfoundation: Set correct default value 0 for option capture_raw_data. 2019-07-08 20:02:41 +02:00
Thilo Borgmann 5c2e0e417a lavd/avfoundation: Reindent after last commit. 2019-07-08 20:02:41 +02:00
Thilo Borgmann 02f65678ba lavd/avfoundation: Support muxed type of devices including raw muxed data capture. 2019-07-08 20:02:41 +02:00
Thilo Borgmann 3a5f9ab814 lavd/avfoundation: Refine some log messages. 2019-07-08 20:02:41 +02:00
Thilo Borgmann 7d4df4b339 lavd/avfoundation: Change binary Options to boolean type. 2019-07-08 20:02:41 +02:00
Thilo Borgmann 48cf952411 lavd/avfoundation: Remove useless index increment. 2019-07-08 20:02:41 +02:00
Rick Kern a259501e5a lavd/avfoundation: Fix skewed video output
Fixes ticket #5654.
The linesize can be greater than the minimum required. This copies the
frame taking linesize into account.

Signed-off-by: Rick Kern <kernrj@gmail.com>
2018-09-14 00:27:44 +02:00
Marton Balint 4bb0409820 avdevice: migrate to AVFormatContext->url
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-01-28 23:06:43 +01:00
Michael Niedermayer 584fff9478 avdevice: Fix max value of AV_OPT_TYPE_VIDEO_RATE
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-09 10:34:42 +02:00
Rick Kern f1560dbb2a lavd/avfoundation: use AVCodecParameters
Fixes "Could not find codec parameters for stream" error (#5494)

Signed-off-by: Rick Kern <kernrj@gmail.com>
2016-05-05 16:03:45 +02:00
Michael Niedermayer 63167a6ba3 avdevice/avfoundation: Fix occured typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 21:41:17 +02:00
Matthieu Bouron cf16b459a8 libavdevice/avfoundation: use pts/dts provided by the CMSampleBuffer API
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 04:08:33 +02:00
Matthieu Bouron 021b023751 libavdevice/avfoundation: add capture_mouse_clicks option
Support mouse clicks capture while recording a screen on OSX >= 10.7.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 04:07:43 +02:00
Matthieu Bouron c908cae74c libavdevice/avfoundation: add capture_cursor option
Add support for cursor capturing while recording a screen for OSX >=
10.8.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 03:50:31 +02:00
Matthieu Bouron 573a77a1b6 libavdevice/avfoundation: add framerate and video size options
Support framerate ands video size options on AVCaptureDevices for
OSX >= 10.7 and iOS >= 7.0.

For screen captures, only the framerate option is taken into account.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 03:49:38 +02:00
Carl Eugen Hoyos 88bf16895a lavd/avfoundation: Silence warnings when compiling for iOS.
Reviewed-by: Thilo Borgmann
2015-03-10 12:11:15 +01:00
Carl Eugen Hoyos 87b3c6e28b lavd/avfoundation: Silence c99 warnings when using gcc.
Reviewed-by: Thilo Borgmann
2015-03-10 12:11:15 +01:00
John Robinson 98d19ca8f1 lavd/avfoundation: Add support for 24 and 32bit integer input.
Tested on Mac Mini soundflower and built-in line input.

Reviewed-by: Thilo Borgmann
2015-03-06 01:10:16 +01:00
Carl Eugen Hoyos 23e483269d lavd/avfoundation: Add support for 16bit integer input.
Reviewed-by: Thilo Borgmann
2015-03-06 01:06:57 +01:00
Thilo Borgmann 2045334239 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@gmx.at>
2014-11-14 18:28:12 +01:00
Carl Eugen Hoyos 0ea54d698b lavd/avfoundation: Remove unused -frame_rate option. 2014-11-12 09:55:11 +01:00
Thilo Borgmann 48c29883fc lavd/avfoundation: Use internal av_strtok instead of std lib strtok
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 21:02:53 +01:00
Thilo Borgmann ed2e97ce6a lavd/avfoundation: Fix compilation for non MAC OS devices by conditional compilation of screen capture capabilities.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-27 16:38:19 +01:00
Thilo Borgmann a6555f88aa lavd/avfoundation: Add support for screen capturing.
Patch based on pull-request by Joseph Benden <joe@benden.us>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-25 22:09:06 +02:00
Thilo Borgmann dd16a0d8cc lavd/avfoundation: Add basic PCM audio support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 02:31:38 +02:00
Thilo Borgmann f2254e36c0 lavd/avfoundation: Use microseconds as common timebase.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 12:13:57 +02:00
Thilo Borgmann 1ea7a3e04e lavd/avfoundation: Simplify debug message generation.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 05:05:31 +02:00
Thilo Borgmann 92827e1869 lavd/avfoundation: Using the actual stream index instead of hardcoded value.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-26 05:05:11 +02:00