[FFmpeg-devel] [PATCH 38/42] fftools/ffmpeg: add support for multiview video

Anton Khirnov anton at khirnov.net
Tue Sep 3 15:44:00 EEST 2024


Quoting James Almer (2024-09-03 14:26:21)
> On 9/3/2024 6:47 AM, Anton Khirnov wrote:
> > Quoting James Almer (2024-08-31 15:56:24)
> >> On 8/31/2024 4:44 AM, Anton Khirnov wrote:
> >>> Quoting James Almer (2024-08-30 02:40:49)
> >>>> On 8/29/2024 8:26 PM, Michael Niedermayer wrote:
> >>>>> On Tue, Aug 27, 2024 at 05:05:18PM +0200, Anton Khirnov wrote:
> >>>>>> This extends the syntax for specifying input streams in -map and complex
> >>>>>> filtergraph labels, to allow selecting a view by view ID, index, or
> >>>>>> position. The corresponding decoder is then set up to decode the
> >>>>>> appropriate view and send frames for that view to the correct
> >>>>>> filtergraph input(s).
> >>>>>> ---
> >>>>>>     doc/ffmpeg.texi           |  30 +++-
> >>>>>>     fftools/cmdutils.c        |   2 +-
> >>>>>>     fftools/cmdutils.h        |   2 +
> >>>>>>     fftools/ffmpeg.h          |  45 ++++-
> >>>>>>     fftools/ffmpeg_dec.c      | 355 +++++++++++++++++++++++++++++++++++++-
> >>>>>>     fftools/ffmpeg_demux.c    |  24 ++-
> >>>>>>     fftools/ffmpeg_filter.c   |  71 +++++---
> >>>>>>     fftools/ffmpeg_mux_init.c |  29 +++-
> >>>>>>     fftools/ffmpeg_opt.c      |  70 +++++++-
> >>>>>>     9 files changed, 575 insertions(+), 53 deletions(-)
> >>>>>
> >>>>> breaks build on mingw64
> >>>>>
> >>>>> src/fftools/ffmpeg_dec.c: In function ‘packet_decode’:
> >>>>> src/fftools/ffmpeg_dec.c:811:19: error: implicit declaration of function ‘ffs’ [-Werror=implicit-function-declaration]
> >>>>>      811 |             pos = ffs(outputs_mask) - 1;
> >>>>>          |                   ^~~
> >>>>> cc1: some warnings being treated as errors
> >>>>> make: *** [src/ffbuild/common.mak:81: fftools/ffmpeg_dec.o] Error 1
> >>>>> make: *** Waiting for unfinished jobs....
> >>>>>
> >>>>> thx
> >>>>
> >>>> Would ff_clz(outputs_mask) work here?
> >>>
> >>> In principle yes, but it's private and I'd rather not include a private
> >>> header in ffmpeg CLI.
> >>>
> >>> We could either make it public, or I could add a ffs() implementation
> >>> for Windows to compat/. Anyone has a preference?
> 
> Also, ffs() is posix. Is Windows the only target that lacks it?

I think so, though I didn't test all that extensively.

> >>
> >> I think i prefer making ff_clz public in common.h.
> > 
> > common.h is the wrong place for anything
> > 
> >> It has an optimized version not exclusive to Windows using a gcc/clang
> >> builtin, and even one specific for riscv.
> > 
> > Which would not be visible to ffmpeg CLI anyway.
> 
> True. We could make it aware of it by setting HAVE_AV_CONFIG_H during 
> compilation, but that's kinda dirty.

Yuck.

If we wanted to be fancy, we could add stdc_first_trailing_zero() from
C23. Possibly write/steal compatibility wrappers like we did for
atomics.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list