[FFmpeg-devel] [PATCH v5 00/21] avdevice (mostly dshow) enhancements

Diederick C. Niehorster dcnieho at gmail.com
Mon Apr 25 23:23:57 EEST 2022


Ping for the series, especially the first commit in the series which
should spark some discussion.

Thanks!
Dee

On Wed, Mar 30, 2022 at 2:18 PM Diederick Niehorster <dcnieho at gmail.com> wrote:
>
> This patch series implements a series of features, mostly enhancing the
> dshow avdevice, but also adding new functionality to avformat.
> This whole patchset enabled users of the FFmpeg API to fully
> query and control a dshow device, making FFmpeg a nice backend for any
> program that needs access to, e.g., a webcam.
>
> Different from v3 and v4, part of the patches has now been accepted, so
> only remaining features are in this set. Importantly, as per discussion
> on the list (
> https://ffmpeg.org/pipermail/ffmpeg-devel/2021-June/281513.html, see
> especially https://ffmpeg.org/pipermail/ffmpeg-devel/2021-June/281586.html),
> to resolve the the unholy ABI-relationship between libavdevice and
> libavformat and allow easier working on the part of the avdevice API
> that lives in avformat, avdevice is now locked to a specific major and minor
> version of avformat. This is documented in libavdevice/avdevice.h.
>
> Regarding new functionality added to avformat:
> Querying the capabilities of a dshow device is also possible on a
> device that is already opened. I expect/guess however that it may not be
> possible to achieve that for all of the avdevices, so in principle it is
> important that this patchset adds the ability to create an allocated but
> unopened AVFormatContext+AVInputFormat with the new function
> avformat_alloc_input_context(). This is tested in the new
> device_get_capabilities example.
>
> Diederick Niehorster (21):
>   avdevice: lock to minor version of avformat
>   avformat: add control_message function to AVInputFormat
>   avdevice/dshow: implement control_message interface
>   avdevice: add control message requesting to show config dialog
>   avdevice/dshow: accept show config dialog control message
>   avdevice/dshow: add config dialog command for crossbar and tv tuner
>   avdevice/avdevice: Revert "Deprecate AVDevice Capabilities API"
>   avdevice/avdevice: clean up avdevice_capabilities_create
>   avdevice: capabilities API details no longer public
>   avutil/opt: document AVOptionRange min_value > max_value
>   avdevice: Add internal helpers for querying device capabilities
>   avdevice: change device capabilities option type
>   avdevice: improve capabilities' option API
>   avdevice/dshow: move audio format helpers
>   avdevice/dshow: when closing, set context fields back to zero
>   avdevice/dshow: implement capabilities API
>   avdevice/dshow: cosmetics
>   avformat: add avformat_alloc_input_context()
>   doc/examples: adding device_get_capabilities example
>   Makefile/examples: cosmetics
>   avdevice/dshow: capabilities query also works on opened device
>
>  configure                              |   2 +
>  doc/examples/.gitignore                |   1 +
>  doc/examples/Makefile                  |  47 +-
>  doc/examples/Makefile.example          |   1 +
>  doc/examples/device_get_capabilities.c | 243 ++++++++++
>  doc/indevs.texi                        |  34 ++
>  libavdevice/avdevice.c                 | 177 ++++++-
>  libavdevice/avdevice.h                 | 111 ++---
>  libavdevice/dshow.c                    | 641 +++++++++++++++++++++++--
>  libavdevice/dshow_capture.h            |  14 +
>  libavdevice/dshow_crossbar.c           |  91 ++--
>  libavdevice/internal.h                 |  66 +++
>  libavdevice/utils.c                    |  48 ++
>  libavdevice/version.h                  |  15 +-
>  libavdevice/version_major.h            |   2 +-
>  libavformat/avformat.h                 |  59 ++-
>  libavformat/demux.c                    |  74 ++-
>  libavformat/utils.c                    |   5 +
>  libavformat/version.h                  |  14 +-
>  libavutil/avutil.h                     |   3 +
>  libavutil/macros.h                     |   3 +
>  libavutil/opt.c                        |   2 +-
>  libavutil/opt.h                        |   5 +
>  23 files changed, 1462 insertions(+), 196 deletions(-)
>  create mode 100644 doc/examples/device_get_capabilities.c
>
> --
> 2.28.0.windows.1
>


More information about the ffmpeg-devel mailing list