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

2023-09-28 Thread Timo Rothenpieler

On 14.09.2023 18:52, Roman Arzumanyan wrote:

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


Applied with various amendments:

 - Added missing version bump.
 - Added missing APIchanges entry.
 - Made the "both options are set"-check actually check both options, 
and not the same one twice.
 - Dropped "if != 0" checks, FFmpeg generally just does "if (variable)" 
in those cases.

 - Updated version checks in configure.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-19 Thread Timo Rothenpieler

On 19/09/2023 10:18, Roman Arzumanyan wrote:

Hello,
Any updates on this patch?


Haven't had time to look at it closely or test it yet.
Looks generally okay though.

чт, 14 сент. 2023 г. в 19:52, Roman Arzumanyan 
mailto:r.arzuman...@visionlabs.ai>>:


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.0ffnvcodec < 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
mailto:t...@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 
> 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

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



-- 
--

С уважением, Роман Арзуманян.
Главный разработчик по направлению видео аналитики.


___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-19 Thread Roman Arzumanyan
Hello,
Any updates on this patch?

чт, 14 сент. 2023 г. в 19:52, Roman Arzumanyan :

> 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 :
>
>> 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  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
>> > 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.
>>
>
>
> --
> --
> С уважением, Роман Арзуманян.
> Главный разработчик по направлению видео аналитики.
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-14 Thread Timo Rothenpieler

On 14.09.2023 18:52, Roman Arzumanyan wrote:

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.0ffnvcodec < 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


No, only versions bigger than the given minimum in the respective branch 
will pass.
11.0.0.0 would not pass, it's outside of any valid range. And so on for 
other versions.

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-14 Thread Roman Arzumanyan
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 :

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


-- 
--
С уважением, Роман Арзуманян.
Главный разработчик по направлению видео аналитики.


0001-Add-cuCtxGetCurrent-function.patch
Description: Binary data


0001-Option-added-to-use-current-CUDA-ctx.patch
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-14 Thread Anton Khirnov
Quoting Roman Arzumanyan (2023-09-14 09:26:52)
> Hello,
> 
> This is the second patch of the group which adds the option to use CUDA
> context current to calling thread. It simplifies the usage of ffmpeg
> libraries in applications which rely on CUDA runtime API.
> 
> Example:
> 
> AVDictionary *opts = NULL;
> 
> AVBufferRef *hwDeviceCtx;
> 
> 
> av_dict_set(, "current_ctx", "1", 0);
> 
> av_hwdevice_ctx_create(, type, NULL, opts, 0);

Use av_hwdevice_ctx_alloc() av_hwdevice_ctx_init() then.

-- 
Anton Khirnov
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-14 Thread Timo Rothenpieler

On 14/09/2023 15:29, Roman Arzumanyan wrote:

Thanks for the swift reply Timo, you're right about versioning.
However, I didn't find any existing CUDA API versioning macro unlike 
that for Video Codec SDK API.
So I basically did the same thing as that in previous commit to 
nvcodec-headers which barely adds new function pointer...


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.

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-14 Thread Roman Arzumanyan
Thanks for the swift reply Timo, you're right about versioning.
However, I didn't find any existing CUDA API versioning macro unlike that
for Video Codec SDK API.
So I basically did the same thing as that in previous commit to
nvcodec-headers which barely adds new function pointer...

Anyway, I took the liberty and added same versioning to CUDA API as that
for Video Codec SDK API.
I picked CUDA API v. 11.4 for no particular reason, simply because
nvcodec-headers doesn't use latest features and minimal required driver
(530+) supports that CUDA version.

Please LMK if there's another approach to CUDA API versioning I must follow.



чт, 14 сент. 2023 г. в 13:00, Timo Rothenpieler :

> This will either need updates to the ffnvcodec version checks in
> configure, to ensure the new symbol always exists, or some kind of more
> selective check to only build those parts of the code if the new
> function is present.
>
> As it is now, this would fail all current builds.
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
>


-- 
--
С уважением, Роман Арзуманян.
Главный разработчик по направлению видео аналитики.


0001-libavutil-hwcontext_cuda-option-added-to-use-context.patch
Description: Binary data


0001-Add-cuCtxGetCurrent-function.patch
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-14 Thread Timo Rothenpieler
This will either need updates to the ffnvcodec version checks in 
configure, to ensure the new symbol always exists, or some kind of more 
selective check to only build those parts of the code if the new 
function is present.


As it is now, this would fail all current builds.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


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

2023-09-14 Thread Roman Arzumanyan
Hello,

This is the second patch of the group which adds the option to use CUDA
context current to calling thread. It simplifies the usage of ffmpeg
libraries in applications which rely on CUDA runtime API.

Example:

AVDictionary *opts = NULL;

AVBufferRef *hwDeviceCtx;


av_dict_set(, "current_ctx", "1", 0);

av_hwdevice_ctx_create(, type, NULL, opts, 0);


0001-libavutil-hwcontext_cuda-option-added-to-use-context.patch
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".