Commit Graph

212 Commits

Author SHA1 Message Date
j0ki bdd80921b5
video4linux2.c: do not close before open.
With no camera connected this would call close(0), causing  problems later.
2025-06-04 15:47:57 +02:00
libretroadmin 1ff8346eb5 Silence warnings/style nits 2025-05-29 06:19:04 +02:00
BinBashBanana 2d3c18e48d Emscripten improvements pt. 4 2025-05-08 11:01:43 -07:00
kwyxz e78898f379 default to FFmpeg libavfilter virtual input device 2025-05-04 01:48:15 +00:00
pstef 6d2e7e4ec9 Remove unused variable 2025-04-12 23:02:22 +00:00
Jesse Talavera 334519167b Make the condition for using `camera_ffmpeg` consistent with the Makefile
- Should fix a link error
2025-04-06 19:05:34 -04:00
Eric Warmenhoven 8c729fd029 apple: enable JoeMatt's avfoundation-based camera driver 2025-03-03 23:20:59 -05:00
Jesse Talavera e9e12eed66 Move a variable declaration up to adhere to C89 rules 2025-03-02 17:00:40 -05:00
Jesse Talavera 80044dd282 Clarify a comment 2025-03-02 17:00:24 -05:00
Jesse Talavera e7142903ea Use `av_dict_get` instead of `av_dict_iterate`
- The latter seems to be newer, and therefore not available in all common installations of libavdevice
2025-02-23 15:26:58 -05:00
Jesse Talavera 527b977587 Simplify ffmpeg backend selection 2025-02-20 16:35:06 -05:00
Jesse Talavera dd49f8fa0d Remove camera device list functions from camera drivers
- Those will come in a future PR instead
2025-02-20 15:42:02 -05:00
Jesse Talavera 63d965753f Merge branch 'refs/heads/master' into jtg/libavdevice-camera-driver
# Conflicts:
#	camera/camera_driver.c
#	configuration.c
2025-02-20 11:28:54 -05:00
Viačasłaŭ 5b9d5a9086
Buildfix for Debian 12 (#17522) 2025-02-06 02:10:06 +01:00
Viačasłaŭ 65014a46b4
Add PipeWire camera driver (#17507) 2025-02-03 04:30:13 +01:00
LibretroAdmin 18c85b5ccd Cleanups -
* Less string copies
* Some general cleanups
* Add extra param to runloop_message_queue_push so we can pass size_t
of the message
* Consistent conventions for local variable usage for certain things
2024-12-27 15:13:45 +01:00
Jesse Talavera 3cdb95a602 Construct device URLs differently based on the ffmpeg backend 2024-12-18 21:05:30 -05:00
Jesse Talavera b68a588ede Split some ffmpeg camera logic into functions 2024-12-18 20:32:19 -05:00
Jesse Talavera 9ee56da6b0 Prioritize certain backends 2024-12-18 20:31:44 -05:00
Jesse Talavera 4beb80c290 Revert "Forward ffmpeg's logging to RetroArch"
This reverts commit 4aac4d5b9e.
2024-12-18 14:52:28 -05:00
Jesse Talavera 4aac4d5b9e Forward ffmpeg's logging to RetroArch 2024-12-18 14:28:49 -05:00
Jesse Talavera 7586ae7dbe Remove stray whitespace 2024-12-17 14:57:36 -05:00
Jesse Talavera 88b6342bb5 Move up some declarations 2024-12-17 14:57:06 -05:00
Jesse Talavera 7b21ed5f93 Set options for the camera and accompanying AV structures 2024-12-17 14:37:29 -05:00
Jesse Talavera ce1f31af8d Don't pass in the driver context to `camera_driver::device_list_new`
- Unlike some other drivers, the camera driver is only initialized when a core actually asks for it
- Therefore, the driver context isn't available when it's time to ask for devices
- I could refactor the camera driver to be created earlier, but then I'd need to refactor the other drivers as well
- That'll come later in another PR
2024-12-16 21:53:37 -05:00
Jesse Talavera 3c73b36cca Remove `const` from some fields 2024-12-16 16:45:12 -05:00
Jesse Talavera 7d31c65af1 Fix compatibility with libswscale < 6.1.100
- sws_scale_frame was introduced in 6.1.100
- Before this change, the driver wouldn't build on my Ubuntu Jammy VM
2024-12-16 16:38:15 -05:00
Jesse Talavera 47e0a163f3 Don't try to link the ffmpeg camera driver twice
- Whoops
2024-12-16 16:28:34 -05:00
Jesse Talavera 33b574198c Swap the buffers after copying the most recent camera frame, but only upon success 2024-12-15 21:39:48 -05:00
Jesse Talavera 024fd873ec Moved polling in the new ffmpeg camera driver to another thread 2024-12-15 21:21:08 -05:00
Jesse Talavera 2bd45eeb6f Remove an unneeded comment 2024-12-13 14:52:11 -05:00
Jesse Talavera 391be66361 Unref the packet and frame correctly 2024-12-12 18:55:05 -05:00
Jesse Talavera 2d2e9d840c Fix the channels being swapped
- Whoops, wrong format
2024-12-12 18:54:49 -05:00
Jesse Talavera 0e347391e8 Clean up ffmpeg_camera_free
- Release resources in the opposite order they were initialized
- Don't release resources twice (even for cases of a noop)
2024-12-12 18:18:01 -05:00
Jesse Talavera 716be2bb22 Silence some warnings 2024-12-12 18:16:24 -05:00
Jesse Talavera 0bdf616836 Fix some swapped arguments 2024-12-12 18:13:14 -05:00
Jesse Talavera 22301bd3d5 Fix a crash when closing the ffmpeg camera driver
- Allocate the target buffer aligned to 4-byte addresses
- Consolidate resource cleanup to mitigate similar issues
2024-12-12 11:25:43 -05:00
Jesse Talavera b1eb37b394 Capture an image and display it (as tested with 3DEngine)
- Still crashes upon closing
- Colors are all wrong, too
2024-12-12 11:09:31 -05:00
Jesse Talavera af1c4a3e7f First crack at implementing the ffmpeg camera driver 2024-12-11 21:26:15 -05:00
Jesse Talavera 1d618bf232 Mark the `ffmpeg_camera` functions as `static`
- Other translation units don't need to worry about them
2024-12-03 14:59:14 -05:00
Jesse Talavera 4f88c4eb09 Forgot a comma 2024-12-02 20:41:28 -05:00
Jesse Talavera 29f31b3457 Remove some stray whitespace
- Excluding this trivial change from commits is gonna drive me nuts
2024-12-02 14:11:29 -05:00
Jesse Talavera de3abdb556 Add some new camera_driver functions for retrieving a list of devices
- Only ffmpeg will support these right now
2024-12-01 19:34:08 -05:00
Jesse Talavera ed04e1060a Allocate the ffmpeg camera driver 2024-11-30 18:59:26 -05:00
Jesse Talavera 9c82e9304b Merge branch 'master' into jtg/libavdevice-camera-driver 2024-11-30 16:37:54 -05:00
libretroadmin 82e4504968 Revert "(pt. 2) static variables are initialized to '0' automatically as per C rules"
This reverts commit 47410df7a3.
2024-11-19 03:03:05 +01:00
libretroadmin 47410df7a3 (pt. 2) static variables are initialized to '0' automatically as per C rules 2024-11-18 15:59:46 +01:00
libretroadmin b8391e233f * PATH_MAX_LENGTH redefined from 4096 to 2048
* Massive reduction in heap space allocation, going from settings struct
264kb to 119Kb
* Use NAME_MAX_LENGTH for base paths/names, etc
* Use DIR_MAX_LENGTH for directory sizes
2024-09-09 05:47:32 +02:00
Jesse Talavera-Greenberg d9207c924e Add a stub ffmpeg camera driver 2023-07-20 15:28:16 -04:00
Jesse Talavera-Greenberg 3e10389106 Create the file where the ffmpeg camera driver will be implemented 2023-07-20 15:14:30 -04:00