Commit Graph

43 Commits

Author SHA1 Message Date
pfeatherstone 3ca155da68
[FFMPEG] support ffmpeg 7 (#2987)
* support ffmpeg 7

* you need assembler

---------

Co-authored-by: pfeatherstone <pfeatherstone@pf>
2024-08-01 08:48:47 -04:00
Davis E. King 46e59a2174
Disable mac osx CI 2023-12-07 22:28:12 -05:00
Davis King ba66152ad9 Add filter rules for matlab CI 2023-07-27 20:19:39 -04:00
Davis King efaa213b6e remove clang 13 CI since the install method isn't working anymore and we have another test for clang 2023-07-27 20:18:13 -04:00
Adrià Arrufat 7b6021eee7
Only trigger CI when relevant files are changed (#2836) 2023-07-23 09:02:21 -04:00
Davis E. King a50bd167c4
Setup CI for the mex wrapper code (#2834)
* Setup CI for the mex wrapper code
2023-07-21 11:48:29 -04:00
Adrià Arrufat f395234aa4
Update bug.yml (#2835)
When I created the issue template, I was expecting that we would get fewer people opening bugs when they can't build dlib, so I added the bug label to all submitted bugs.

However, that is not the case, and we still get bug reports which are not really bugs, and this label prevents the @dlib-issue-bot from closing them if there's no activity.

I think the bug label should only be added manually after verifying that the bug report is actually a bug.
2023-07-21 11:16:22 -04:00
Davis E. King 6893653428
Ubuntu 18.04 Actions runner image is deprecated, use newer image (#2759)
* Ubuntu 18.04 Actions runner image is deprecated, use newer image

See https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-being-deprecated-and-will-be-removed-by-12-1-22/

* make it really use gcc 7
2023-04-04 08:59:27 -04:00
pfeatherstone f586d0a552
FFMPEG : misc + ffmpeg5 support (#2746)
* - enhanced list_muxers()
- added fail() error handling helper function
- moved framerate setting to decoder_image_args

* docs

* oops

* - don't use std::endl, use `\n` instead
- use fail(). See, on average, it removes lines of code

* convenient constructor for demuxer

* ffmpeg5 support

* added docs for == -1

* oops

* grouping audio channel compatibility stuff together

* more compatibility stuff

* more channel abstractions

* build with ffmpeg 5

* install assembler

* cache the installation

* cmake doesn't like using ~ in filepath

* at some point this will work

* i think i need to change the key

* test FFmpeg-n5.1.3_try3 cache

* bug fix

* Update build_cpp.yml

Giving this another go

* Update build_cpp.yml

Disable building documentation and CLI tools

* Update CMakeLists.txt

Fix cmake script when using 3.8.0 and expecting imported targets to work when there are link flags included

* - use environment variables
- on ubuntu 18 gcc7, use ffmpeg 3.2.18

* correct way of dereferencing variables ?

* can't get variables to work

* Revert "can't get variables to work"

This reverts commit 5eef96a43e.

* Revert "correct way of dereferencing variables ?"

This reverts commit e8ff95f5c6.

* Revert "- use environment variables"

This reverts commit a6938333d5.

* using ffmpeg 3.2.18 with ubuntu18 gcc7

* Update build_cpp.yml

Disable ubuntu18 job for now. Hopefully no more cancelled jobs, then i can re-enable

* Re-enabled ubuntu18 job. Hopefully this time it won't get cancelled

* Fixed bad indentation

* Can go in details namespace

* Update dlib/CMakeLists.txt

Co-authored-by: Davis E. King <davis685@gmail.com>

* use details namespace

* remove declaration. It's in details now

* don't need get_channels_from_layout()

---------

Co-authored-by: pf <pf@me>
Co-authored-by: Davis E. King <davis685@gmail.com>
2023-03-29 22:12:47 -04:00
Davis E. King 9a13229970
Exercise more of the ways dlib can be configured in the github actions tests (#2751) 2023-03-25 22:52:41 -04:00
Davis E. King 53d2ceb669
test with cmake 3.8 since that's the min required cmake version for dlib (#2748)
* test with cmake 3.8 since that's the min required cmake version for dlib
2023-03-24 22:25:40 -04:00
Adrià Arrufat f89b0388d5
Add optional Python version (#2743) 2023-03-14 20:05:18 -04:00
Davis E. King 93aea6ea9b
Update bug.yml
Make the steps to reproduce required.
2023-03-12 10:13:18 -04:00
Adrià Arrufat 310a37f452
Improve issue template (#2741)
* Create but report template

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Create feature request template

* Update feature.yml

* Update feature.yml

* Update feature.yml

* Remove ISSUE_TEMPLATE

* Create config.yml
2023-03-12 10:07:55 -04:00
pfeatherstone 9d3ba472dd
FFMPEG wrappers: dlib::ffmpeg::decoder and dlib::ffmpeg::demuxer (#2707)
* - added ffmpeg stuff to cmake

* - added observer_ptr

* ffmpeg utils

* WIP

* - added ffmpeg_decoder

* config file for test data

* another test file

* install ffmpeg

* added ffmpeg_demuxer

* install all ffmpeg libraries

* support older version of ffmpeg

* simplified loop

* - test converting to dlib object
- added docs
- support older ffmpeg

* added convert() overload

* added comment

* only register stuff when API not deprecated

* - fixed version issues
- fixed decoding

* added tests for ffmpeg_demuxer

* removed unused code

* test GIF

* added docs

* added audio test

* test for audio

* more tests

* review changes

* don't need observer_ptr

* made deps public. I could be wrong but just in case.

* - added some static asserts. Some areas of the code might do memcpy's on arrays of pixels. This requires the structures to be packed. Check this.
- added convert() functions
- changed default decoder options. By default, always decode to RGB and S16 audio
- added convenience constructor to demuxer

* - no longer need opencv

* oops. I let that slip

* - made a few functions public
- more precise requires clauses

* enhanced example

* - avoid FFMPEG_INITIALIZED being optimized away at link time
- added decoding example

* - avoid -Wunused-parameter error

* constexpr and noexcept correctness. This probably makes no difference to performance, BUT, it's what the core guidelines tell you to do. It does however demonstrate how complicated and unecessarily verbose C++ is becoming. Sigh, maybe one day i'll make the switch to something that doesn't make my eyes twitch.

* - simplified metadata structure

* hopefully more educational

* added another example

* ditto

* typo

* screen grab example

* whoops

* avoid -Wunused-parameter errors

* ditto

* - added methods to av_dict
- print the demuxer format options that were not used
- enhanced webcam_face_pose_ex.cpp so you can set webcam options

* if height and width are specified, attempt to set video_size in format_options. Otherwise set the bilinear resizer.

* updated docs

* once again, the ffmpeg APIs do a lot for you. It's a matter of knowing which APIs  to call.

* made header-only

* - some Werror thing

* don't use type_safe_union

* - templated sample type
- reverted deep copy of AVFrame for frame copy constructor

* - added is_pixel_type and is_pixel_check

* unit tests for pixel traits

* enhanced is_image_type type trait and added is_image_check

* added unit tests for is_image_type

* added pix_traits, improved convert() functions

* bug fix

* get rid of -Werror=unused-variable error

* added a type alias

* that's the last of the manual memcpys gone. We'using ffmpeg API everywhere now for copying frames to buffers and back

* missing doc

* set framerate for webcam

* list input devices

* oops. I was trying to make ffmpeg 5 happy but i've given up on ffmpeg v5 compatibility in this PR. Future PR.

* enhanced the information provided by list_input_devices and list_output_devices

* removed vscode settings.json file

* - added a type trait for checking whether a type is complete. This is useful for writing type traits that check other types have type trait specializations. But also other useful things. For example, std::unique_ptr uses something similar to this.

* Davis was keen to simply check pixel_traits is specialised. That's equivalent to checking pixel_traits<> is complete for some type

* code review

* juse use the void_t in dlib/type_traits.h

* one liners

* just need is_image_check

* more tests for is_image_type

* i think this is correct

* removed printf

* better docs

* Keep opencv out of it

* keep old face pose example, then add new one which uses dlib's ffmpeg wrappers

* revert

* revert

* better docs

* better docs

---------

Co-authored-by: pf <pf@me>
2023-01-29 20:17:34 -05:00
Davis E. King 1ce7b9cbc5
Run unit tests with gcc 7 too (#2706) 2023-01-03 10:13:54 -05:00
Adria Arrufat 02330e0a15
Fix GitHub actions on Windows because of CMake 3.25.0 (#2692) 2022-11-28 20:10:47 -05:00
Davis King 05d3f6eb17 Disable mac os x python test config since something in the environment is not working properly. 2022-11-09 22:11:57 -05:00
Adrià Arrufat 65bce59a15
Update Pybind11 to v2.10.0 (#2660)
* Update Pybind11 to v2.10.0

* Update numpy_image to work with latest Pybind11

* I don't know why I have to do this now...

* Try to make macOS use Python3... Really?

* Try to make macOS use Python3... Again

* Try to make macOS use Python3... Once more

* Install dependencies with pip3
2022-09-05 15:59:19 -04:00
Davis King 4e9854204c Github actions deprecated windows-2016, switching to windows-2019 2022-07-31 17:45:46 -04:00
Davis King 270b96c7d1 oops, add missing deps for some python tests 2022-07-12 21:18:04 -04:00
Davis King 71d95d76d9 more tweaks cleanup and fixes for ci builds 2022-07-12 20:40:11 -04:00
Davis King c458c4f202 update how python tests are run on ubuntu and mac 2022-07-12 20:24:24 -04:00
Davis King 135e6ef06a try to fix windows ci testing 2022-07-12 20:07:50 -04:00
Davis King febac3adb2 Try to fix windows python tests 2022-07-12 19:35:07 -04:00
Crayon 6c24e65f86
Fix typos (#2606) 2022-06-17 22:19:11 -04:00
Davis King 8af4226057 Revert "Add a test on github actions that builds on windows in debug mode"
This reverts commit 7009080014.
2022-04-29 22:51:01 -04:00
Davis King 7009080014 Add a test on github actions that builds on windows in debug mode 2022-04-29 22:04:37 -04:00
Adrià Arrufat 9db84f4c24
Build ancillary tools on Windows (#2583)
* Build ancillary tools on Windows

* Fix dtoc name
2022-04-29 21:49:57 -04:00
Davis E. King 4d92c302c0
Remove this test on windows for now since it runs out of ram 2022-04-29 09:43:50 -04:00
Davis King 2bcb1c4436 See if using only one thread to build prevents running out of ram on github actions when building windows examples 2022-04-29 08:39:53 -04:00
Davis King e264c26641 Build examples and other ancillary tools on windows too 2022-04-29 07:45:51 -04:00
Juha Reunanen ebc4d63d68
Workaround for #2506 (#2570)
* Do not put variants that can hold immutable types to vectors

* Enable build on gcc 11
2022-04-19 08:02:17 -04:00
Adrià Arrufat a76f205bf6
Add webp support (#2565)
* Add BGR(A) to pixel_traits

* add support for reading webp

* Apply Davis' suggestions and fix formatting

* Fix signed/unsigned warning

* Update decoding paths

* update pixel traits documentation

* Add support for writing WebP images

* Simplify image_saver code

* WIP: add tests, PSNR is low but images look good

* Add lossless compression for quality > 100

* Fix build when WebP support is disabled

* Use C++ stream instead of C-style FILE

* Fix indentation

* Use reinterpret_cast instead of C-style cast

* Improve impl::impl_save_webp signature

* Remove empty line

* Use switch statement and clean up code

* Update Copyright and test libwebp on Linux

* Fix formatting in github workflow

* Fix operator== for bgr_alpha_pixel

* Show where the test fails

* Add libwebp to CI for the remaining Linux workflows

* Use filename consistently

* Improve message with wrong pixel type

* Fix tests for WebP images

* Prevent saving images which are too large and improve error messages

* Use max dimension from WebP header directly

* Update documentation, index and release notes

* Update dlib/image_saver/save_webp_abstract.h

Co-authored-by: Martin T. H. Sandsmark <martin.sandsmark@kde.org>
Co-authored-by: Davis E. King <davis685@gmail.com>
2022-04-19 07:52:12 -04:00
Davis E. King f80703e8e6
Make github actions run the python unit tests (#2517)
* Make github actions run the python unit tests

* why don't the pyhton tests run?

* run python tests

* don't run tests twice

* don't run cmake tests twice

* rename the CMake test to C++ since it's testing the C++ part of the library

And the python build uses cmake too, which makes the naming somewhat
confusing

* work around macos

* oops, fix spelling error
2022-02-20 19:05:02 -05:00
Juha Reunanen 7be763d65e
Make GitHub actions build on gcc-11 and clang too (#2510)
* Refactor not to use a matrix

* Add clang build

* Add job on clang-13 as well

* Disable the `gcc-11` job for now
2022-02-13 12:06:04 -05:00
Adrià Arrufat d665bfb899
try to fix build on macOS (#2503) 2022-02-06 22:26:31 -05:00
Davis King 5291d58e93 See if this makes the MPC test more reliable on MacOS 2022-02-06 21:36:56 -05:00
Davis King c89bf6b77a try less parallelism and see if that doesn't break github actions 2022-02-06 21:28:24 -05:00
Davis King 42c74c38a1 use parallel builds for github actions 2022-02-06 19:48:18 -05:00
Juha Reunanen 979a22c51d
Make Github Actions build more stuff (in particular, the examples) (#2502) 2022-02-06 19:47:05 -05:00
Davis King 86b3a809fe Make github actions use -q so the test logs are not so spammy 2022-02-03 08:26:50 -05:00
Adrià Arrufat 027fb781bd
GitHub actions (#2289)
* add github actions from "ptheywood/cuda-cmake-github-actions"

* fix typo

* rename

* Revert "rename"

This reverts commit ded445f3bb.

* add cudnn env variable

* remove old cuda configs and try to fix installation

* add run tests

* fix test path

* actually build tests

* fix missing $

* fix syntax

* debug test path

* fix test build dir

* fix cmake syntax

* fix working directory

* Revert "debug test path"

This reverts commit 6d5b4e7a1f.

* uncomment other configurations

* fix run test path

* fix test run dir again

* syntax

* it's really not my day...

* remove incompatible configs and make tests run silently

* add initial windows script from ptheywood/cuda-cmake-github-actions

* fix windows script path

* add test for windows

* remove dot slash

* install cublas_dev

* try adding cudnn (I really need a Windows machine to test this)

* remove windows workflow scripts

* try config with ubuntu 20.10

* fix syntax error

* try to fix DLIB not using CUDA

* try again with ubuntu 20.04

* remove backticks

* remove superfluous configure step

* fix cuda parsing for v10.2

* debug test

* change working dir...

* do not run test silently

* install nvidia drivers

* only install server drivers

* load nvidia kernel module

* move module loading to script

* try to fix kernel module loading

* add simple github actions workflow

* add simple github actions workflow

* fix path?

* fix config step

* only build the dtest target

* handle Windows path

* use ./ on windows

* debugging

* debugging

* debugging

* except for the timer test on macOS, the rest works

* remove cuda custom tests, for the moment

* build in Relase mode to try to avoid timeout on Windows

* debugging

* actually change build config

* do not test the timer on macOS

* try building python
2022-02-02 22:00:56 -05:00