[FFmpeg-devel] [PATCH 2/2] libavutil/hwcontect_cuda: add option to use current CUDA context

Roman Arzumanyan r.arzumanyan at visionlabs.ai
Thu Sep 14 19:52:13 EEST 2023


Got it, thanks.
Please find the patches in attachment.

Just for my own understanding - could you please explain how this magic
works in the configure script? I mean this section:

if ! disabled ffnvcodec; then

    ffnv_hdr_list="ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h
ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h"

    check_pkg_config ffnvcodec "ffnvcodec >= 12.1.14.0" "$ffnv_hdr_list" ""
|| \

      check_pkg_config ffnvcodec "ffnvcodec >= 12.0.16.0  ffnvcodec < 12.1"
"$ffnv_hdr_list" "" || \

      check_pkg_config ffnvcodec "ffnvcodec >= 11.1.5.2 ffnvcodec < 12.0"
"$ffnv_hdr_list" "" || \

      check_pkg_config ffnvcodec "ffnvcodec >= 11.0.10.2 ffnvcodec < 11.1"
"$ffnv_hdr_list" "" || \

      check_pkg_config ffnvcodec "ffnvcodec >= 8.1.24.14 ffnvcodec < 8.2"
"$ffnv_hdr_list" ""

fi


To me it looks like any ffnvcodec package of version in range between
8.1.24.14 and 12.1.14.0 will pass this check.

чт, 14 сент. 2023 г. в 18:04, Timo Rothenpieler <timo at rothenpieler.org>:

> On 14/09/2023 17:02, Roman Arzumanyan wrote:
> > Hi Timo,
> >
> >  > The usual approach is to rely on the ffnvcodec version.
> >  > Whenever you need a function from a specific version, bump the
> > versions in configure to the current version from git master and all the
> > respective old branches, since that will be the version of the next
> release.
> >
> > Sorry, but I don't understand what to do. Could you please give me a
> hand?
> > There's ffnvcodec.pc.in <http://ffnvcodec.pc.in> file where I can bump
> > the version from 12.1.14.0 to 12.1.14.1
>
> Don't bump it. It gets bumped after every release.
> Just set the versions in configure to the current version from the
> various branches.
>
> > Then I see this check in ffmpeg/configure:
> >
> > if ! disabled ffnvcodec; then
> >
> > ffnv_hdr_list="ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h
> > ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h"
> >
> > check_pkg_config ffnvcodec "ffnvcodec >= 12.0.16.0" "$ffnv_hdr_list" ""
> || \
> >
> > check_pkg_config ffnvcodec "ffnvcodec >= 11.1.5.2 ffnvcodec < 12.0"
> > "$ffnv_hdr_list" "" || \
> >
> > check_pkg_config ffnvcodec "ffnvcodec >= 11.0.10.2 ffnvcodec < 11.1"
> > "$ffnv_hdr_list" "" || \
> >
> > check_pkg_config ffnvcodec "ffnvcodec >= 8.1.24.14 ffnvcodec < 8.2"
> > "$ffnv_hdr_list" ""
> >
> > fi
> >
> >
> > Under the hood it adds cflags detected by pkg-config via
> > check_pkg_config function. But in the ffnvcodec.pc we don't export any
> > extra cflags.
> >
> > Do I have to add extra flags to ffnvcodec.pc.in
> > <http://ffnvcodec.pc.in>to define symbols containing the full
> > ffnvcodecpackage version?
> >
> > Like NVENC_API_MAJOR_VERSIONand NVENC_API_MINORversion but for the whole
> > ffnvcodec package?
>
> If configure depends on the latest versions, there is no need for
> further checks.
>


-- 
--
С уважением, Роман Арзуманян.
Главный разработчик по направлению видео аналитики.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-cuCtxGetCurrent-function.patch
Type: application/octet-stream
Size: 2374 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20230914/abbc4325/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Option-added-to-use-current-CUDA-ctx.patch
Type: application/octet-stream
Size: 3190 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20230914/abbc4325/attachment-0001.obj>


More information about the ffmpeg-devel mailing list