* - 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>
* 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
* 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>
* 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
* 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