* Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support
[not found] <20250711160418.F0282412864@natalya.videolan.org>
@ 2025-07-13 0:32 ` Michael Niedermayer
2025-07-13 2:59 ` James Almer
2025-07-13 11:34 ` Timo Rothenpieler
0 siblings, 2 replies; 7+ messages in thread
From: Michael Niedermayer @ 2025-07-13 0:32 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1: Type: text/plain, Size: 8291 bytes --]
On Fri, Jul 11, 2025 at 04:04:17PM +0000, Timo Rothenpieler wrote:
> ffmpeg | branch: master | Timo Rothenpieler <timo@rothenpieler.org> | Tue Jun 24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo Rothenpieler
>
> avformat/tls_schannel: add DTLS support
>
> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90fa9636efff84ec5a4b06815722c08188dca551
> ---
>
> configure | 6 +-
> libavformat/tls_schannel.c | 890 +++++++++++++++++++++++++++++++++++++++++----
> libavformat/version.h | 2 +-
> 3 files changed, 833 insertions(+), 65 deletions(-)
breaks on mingw64
src/libavformat/tls_schannel.c: In function ‘ff_dtls_export_materials’:
src/libavformat/tls_schannel.c:606:5: error: unknown type name ‘SecPkgContext_KeyingMaterialInfo’; did you mean ‘SecPkgContext_NegotiationInfo’?
606 | SecPkgContext_KeyingMaterialInfo keying_info = { 0 };
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| SecPkgContext_NegotiationInfo
src/libavformat/tls_schannel.c:607:5: error: unknown type name ‘SecPkgContext_KeyingMaterial’; did you mean ‘SecPkgContext_KeyInfoW’?
607 | SecPkgContext_KeyingMaterial keying_material = { 0 };
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| SecPkgContext_KeyInfoW
src/libavformat/tls_schannel.c:615:16: error: request for member ‘cbLabel’ in something not a structure or union
615 | keying_info.cbLabel = strlen(dst) + 1;
| ^
src/libavformat/tls_schannel.c:616:16: error: request for member ‘pszLabel’ in something not a structure or union
616 | keying_info.pszLabel = (LPSTR)dst;
| ^
src/libavformat/tls_schannel.c:617:16: error: request for member ‘cbContextValue’ in something not a structure or union
617 | keying_info.cbContextValue = 0;
| ^
src/libavformat/tls_schannel.c:618:16: error: request for member ‘pbContextValue’ in something not a structure or union
618 | keying_info.pbContextValue = NULL;
| ^
src/libavformat/tls_schannel.c:619:16: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
619 | keying_info.cbKeyingMaterial = materials_sz;
| ^
src/libavformat/tls_schannel.c:621:54: error: ‘SECPKG_ATTR_KEYING_MATERIAL_INFO’ undeclared (first use in this function); did you mean ‘SECPKG_ATTR_NEGOTIATION_INFO’?
621 | sspi_ret = SetContextAttributes(&c->ctxt_handle, SECPKG_ATTR_KEYING_MATERIAL_INFO, &keying_info, sizeof(keying_info));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| SECPKG_ATTR_NEGOTIATION_INFO
src/libavformat/tls_schannel.c:621:54: note: each undeclared identifier is reported only once for each function it appears in
src/libavformat/tls_schannel.c:627:56: error: ‘SECPKG_ATTR_KEYING_MATERIAL’ undeclared (first use in this function)
627 | sspi_ret = QueryContextAttributes(&c->ctxt_handle, SECPKG_ATTR_KEYING_MATERIAL, &keying_material);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/libavformat/tls_schannel.c:633:48: error: request for member ‘pbKeyingMaterial’ in something not a structure or union
633 | memcpy(dtls_srtp_materials, keying_material.pbKeyingMaterial, FFMIN(materials_sz, keying_material.cbKeyingMaterial));
| ^
In file included from src/libavutil/error.h:30,
from src/libavutil/common.h:43,
from src/libavutil/avutil.h:300,
from src/libavcodec/codec_par.h:26,
from src/libavformat/avformat.h:312,
from src/libavformat/tls_schannel.c:24:
src/libavformat/tls_schannel.c:633:102: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
633 | memcpy(dtls_srtp_materials, keying_material.pbKeyingMaterial, FFMIN(materials_sz, keying_material.cbKeyingMaterial));
| ^
src/libavutil/macros.h:49:28: note: in definition of macro ‘FFMIN’
49 | #define FFMIN(a,b) ((a) > (b) ? (b) : (a))
| ^
src/libavformat/tls_schannel.c:633:102: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
633 | memcpy(dtls_srtp_materials, keying_material.pbKeyingMaterial, FFMIN(materials_sz, keying_material.cbKeyingMaterial));
| ^
src/libavutil/macros.h:49:34: note: in definition of macro ‘FFMIN’
49 | #define FFMIN(a,b) ((a) > (b) ? (b) : (a))
| ^
src/libavformat/tls_schannel.c:634:38: error: request for member ‘pbKeyingMaterial’ in something not a structure or union
634 | FreeContextBuffer(keying_material.pbKeyingMaterial);
| ^
src/libavformat/tls_schannel.c:636:24: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
636 | if (keying_material.cbKeyingMaterial > materials_sz) {
| ^
src/libavformat/tls_schannel.c:637:96: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
637 | av_log(h, AV_LOG_WARNING, "Keying material size mismatch: %ld > %zu\n", keying_material.cbKeyingMaterial, materials_sz);
| ^
src/libavformat/tls_schannel.c: In function ‘tls_shutdown_client’:
src/libavformat/tls_schannel.c:710:29: error: ‘SEC_I_MESSAGE_FRAGMENT’ undeclared (first use in this function)
710 | } while(sspi_ret == SEC_I_MESSAGE_FRAGMENT || sspi_ret == SEC_I_CONTINUE_NEEDED);
| ^~~~~~~~~~~~~~~~~~~~~~
src/libavformat/tls_schannel.c: In function ‘tls_handshake_loop’:
src/libavformat/tls_schannel.c:862:62: error: ‘SEC_I_MESSAGE_FRAGMENT’ undeclared (first use in this function)
862 | if (sspi_ret == SEC_I_CONTINUE_NEEDED || sspi_ret == SEC_I_MESSAGE_FRAGMENT || sspi_ret == SEC_E_OK) {
| ^~~~~~~~~~~~~~~~~~~~~~
src/libavformat/tls_schannel.c: In function ‘tls_handshake’:
src/libavformat/tls_schannel.c:1016:58: error: ‘SECPKG_ATTR_DTLS_MTU’ undeclared (first use in this function); did you mean ‘SECPKG_ATTR_TARGET’?
1016 | sspi_ret = SetContextAttributes(&c->ctxt_handle, SECPKG_ATTR_DTLS_MTU, &mtu, sizeof(mtu));
| ^~~~~~~~~~~~~~~~~~~~
| SECPKG_ATTR_TARGET
src/libavformat/tls_schannel.c: In function ‘tls_open’:
src/libavformat/tls_schannel.c:1072:51: error: ‘SP_PROT_DTLS1_X_SERVER’ undeclared (first use in this function); did you mean ‘SP_PROT_TLS1_SERVER’?
1072 | schannel_cred.grbitEnabledProtocols = SP_PROT_DTLS1_X_SERVER;
| ^~~~~~~~~~~~~~~~~~~~~~
| SP_PROT_TLS1_SERVER
src/libavformat/tls_schannel.c:1083:51: error: ‘SP_PROT_DTLS1_X_CLIENT’ undeclared (first use in this function); did you mean ‘SP_PROT_TLS1_CLIENT’?
1083 | schannel_cred.grbitEnabledProtocols = SP_PROT_DTLS1_X_CLIENT;
| ^~~~~~~~~~~~~~~~~~~~~~
| SP_PROT_TLS1_CLIENT
make: *** [/home/michael/ffmpeg-git/ffmpeg/ffbuild/common.mak:81: libavformat/tls_schannel.o] Error 1
make: *** Waiting for unfinished jobs....
STRIP libavfilter/x86/colorspacedsp.o
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support
2025-07-13 0:32 ` [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support Michael Niedermayer
@ 2025-07-13 2:59 ` James Almer
2025-07-13 6:33 ` Hendrik Leppkes
` (2 more replies)
2025-07-13 11:34 ` Timo Rothenpieler
1 sibling, 3 replies; 7+ messages in thread
From: James Almer @ 2025-07-13 2:59 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 1706 bytes --]
On 7/12/2025 9:32 PM, Michael Niedermayer wrote:
> On Fri, Jul 11, 2025 at 04:04:17PM +0000, Timo Rothenpieler wrote:
>> ffmpeg | branch: master | Timo Rothenpieler <timo@rothenpieler.org> | Tue Jun 24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo Rothenpieler
>>
>> avformat/tls_schannel: add DTLS support
>>
>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90fa9636efff84ec5a4b06815722c08188dca551
>> ---
>>
>> configure | 6 +-
>> libavformat/tls_schannel.c | 890 +++++++++++++++++++++++++++++++++++++++++----
>> libavformat/version.h | 2 +-
>> 3 files changed, 833 insertions(+), 65 deletions(-)
>
> breaks on mingw64
>
> src/libavformat/tls_schannel.c: In function ‘ff_dtls_export_materials’:
> src/libavformat/tls_schannel.c:606:5: error: unknown type name ‘SecPkgContext_KeyingMaterialInfo’; did you mean ‘SecPkgContext_NegotiationInfo’?
This type (and probably everything below) is API introduced on Windows
10, so unless you build targeting _WIN32_WINNT >= 0x0A00, it will not be
defined.
So i guess we should make the tls_schannel.c force that value, like so:
> diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
> index 2a01fb387d..a5cc8d3e27 100644
> --- a/libavformat/tls_openssl.c
> +++ b/libavformat/tls_openssl.c
> @@ -20,6 +20,11 @@
> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> */
>
> +#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0A00
> +#undef _WIN32_WINNT
> +#define _WIN32_WINNT 0x0A00
> +#endif
> +
> #include "libavutil/mem.h"
> #include "network.h"
> #include "os_support.h"
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support
2025-07-13 2:59 ` James Almer
@ 2025-07-13 6:33 ` Hendrik Leppkes
2025-07-13 11:36 ` Timo Rothenpieler
2025-07-13 11:35 ` Timo Rothenpieler
2025-07-13 13:55 ` James Almer
2 siblings, 1 reply; 7+ messages in thread
From: Hendrik Leppkes @ 2025-07-13 6:33 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Sun, Jul 13, 2025 at 4:59 AM James Almer <jamrial@gmail.com> wrote:
>
> On 7/12/2025 9:32 PM, Michael Niedermayer wrote:
> > On Fri, Jul 11, 2025 at 04:04:17PM +0000, Timo Rothenpieler wrote:
> >> ffmpeg | branch: master | Timo Rothenpieler <timo@rothenpieler.org> | Tue Jun 24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo Rothenpieler
> >>
> >> avformat/tls_schannel: add DTLS support
> >>
> >>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90fa9636efff84ec5a4b06815722c08188dca551
> >> ---
> >>
> >> configure | 6 +-
> >> libavformat/tls_schannel.c | 890 +++++++++++++++++++++++++++++++++++++++++----
> >> libavformat/version.h | 2 +-
> >> 3 files changed, 833 insertions(+), 65 deletions(-)
> >
> > breaks on mingw64
> >
> > src/libavformat/tls_schannel.c: In function ‘ff_dtls_export_materials’:
> > src/libavformat/tls_schannel.c:606:5: error: unknown type name ‘SecPkgContext_KeyingMaterialInfo’; did you mean ‘SecPkgContext_NegotiationInfo’?
>
> This type (and probably everything below) is API introduced on Windows
> 10, so unless you build targeting _WIN32_WINNT >= 0x0A00, it will not be
> defined.
> So i guess we should make the tls_schannel.c force that value, like so:
>
> > diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
> > index 2a01fb387d..a5cc8d3e27 100644
> > --- a/libavformat/tls_openssl.c
> > +++ b/libavformat/tls_openssl.c
> > @@ -20,6 +20,11 @@
> > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> > */
> >
> > +#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0A00
> > +#undef _WIN32_WINNT
> > +#define _WIN32_WINNT 0x0A00
> > +#endif
> > +
Does it introduce a runtime dependency on the new OS? If so the user
should perhaps get to control that and the new feature perhaps
disabled if build for older Windows. Its a rather niche feature
afterall.
- Hendrik
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support
2025-07-13 0:32 ` [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support Michael Niedermayer
2025-07-13 2:59 ` James Almer
@ 2025-07-13 11:34 ` Timo Rothenpieler
1 sibling, 0 replies; 7+ messages in thread
From: Timo Rothenpieler @ 2025-07-13 11:34 UTC (permalink / raw)
To: ffmpeg-devel
On 7/13/2025 2:32 AM, Michael Niedermayer wrote:
> On Fri, Jul 11, 2025 at 04:04:17PM +0000, Timo Rothenpieler wrote:
>> ffmpeg | branch: master | Timo Rothenpieler <timo@rothenpieler.org> | Tue Jun 24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo Rothenpieler
>>
>> avformat/tls_schannel: add DTLS support
>>
>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90fa9636efff84ec5a4b06815722c08188dca551
>> ---
>>
>> configure | 6 +-
>> libavformat/tls_schannel.c | 890 +++++++++++++++++++++++++++++++++++++++++----
>> libavformat/version.h | 2 +-
>> 3 files changed, 833 insertions(+), 65 deletions(-)
>
> breaks on mingw64
>
> src/libavformat/tls_schannel.c: In function ‘ff_dtls_export_materials’:
> src/libavformat/tls_schannel.c:606:5: error: unknown type name ‘SecPkgContext_KeyingMaterialInfo’; did you mean ‘SecPkgContext_NegotiationInfo’?
> 606 | SecPkgContext_KeyingMaterialInfo keying_info = { 0 };
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | SecPkgContext_NegotiationInfo
> src/libavformat/tls_schannel.c:607:5: error: unknown type name ‘SecPkgContext_KeyingMaterial’; did you mean ‘SecPkgContext_KeyInfoW’?
> 607 | SecPkgContext_KeyingMaterial keying_material = { 0 };
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | SecPkgContext_KeyInfoW
> src/libavformat/tls_schannel.c:615:16: error: request for member ‘cbLabel’ in something not a structure or union
> 615 | keying_info.cbLabel = strlen(dst) + 1;
> | ^
> src/libavformat/tls_schannel.c:616:16: error: request for member ‘pszLabel’ in something not a structure or union
> 616 | keying_info.pszLabel = (LPSTR)dst;
> | ^
> src/libavformat/tls_schannel.c:617:16: error: request for member ‘cbContextValue’ in something not a structure or union
> 617 | keying_info.cbContextValue = 0;
> | ^
> src/libavformat/tls_schannel.c:618:16: error: request for member ‘pbContextValue’ in something not a structure or union
> 618 | keying_info.pbContextValue = NULL;
> | ^
> src/libavformat/tls_schannel.c:619:16: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
> 619 | keying_info.cbKeyingMaterial = materials_sz;
> | ^
> src/libavformat/tls_schannel.c:621:54: error: ‘SECPKG_ATTR_KEYING_MATERIAL_INFO’ undeclared (first use in this function); did you mean ‘SECPKG_ATTR_NEGOTIATION_INFO’?
> 621 | sspi_ret = SetContextAttributes(&c->ctxt_handle, SECPKG_ATTR_KEYING_MATERIAL_INFO, &keying_info, sizeof(keying_info));
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | SECPKG_ATTR_NEGOTIATION_INFO
> src/libavformat/tls_schannel.c:621:54: note: each undeclared identifier is reported only once for each function it appears in
> src/libavformat/tls_schannel.c:627:56: error: ‘SECPKG_ATTR_KEYING_MATERIAL’ undeclared (first use in this function)
> 627 | sspi_ret = QueryContextAttributes(&c->ctxt_handle, SECPKG_ATTR_KEYING_MATERIAL, &keying_material);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> src/libavformat/tls_schannel.c:633:48: error: request for member ‘pbKeyingMaterial’ in something not a structure or union
> 633 | memcpy(dtls_srtp_materials, keying_material.pbKeyingMaterial, FFMIN(materials_sz, keying_material.cbKeyingMaterial));
> | ^
> In file included from src/libavutil/error.h:30,
> from src/libavutil/common.h:43,
> from src/libavutil/avutil.h:300,
> from src/libavcodec/codec_par.h:26,
> from src/libavformat/avformat.h:312,
> from src/libavformat/tls_schannel.c:24:
> src/libavformat/tls_schannel.c:633:102: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
> 633 | memcpy(dtls_srtp_materials, keying_material.pbKeyingMaterial, FFMIN(materials_sz, keying_material.cbKeyingMaterial));
> | ^
> src/libavutil/macros.h:49:28: note: in definition of macro ‘FFMIN’
> 49 | #define FFMIN(a,b) ((a) > (b) ? (b) : (a))
> | ^
> src/libavformat/tls_schannel.c:633:102: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
> 633 | memcpy(dtls_srtp_materials, keying_material.pbKeyingMaterial, FFMIN(materials_sz, keying_material.cbKeyingMaterial));
> | ^
> src/libavutil/macros.h:49:34: note: in definition of macro ‘FFMIN’
> 49 | #define FFMIN(a,b) ((a) > (b) ? (b) : (a))
> | ^
> src/libavformat/tls_schannel.c:634:38: error: request for member ‘pbKeyingMaterial’ in something not a structure or union
> 634 | FreeContextBuffer(keying_material.pbKeyingMaterial);
> | ^
> src/libavformat/tls_schannel.c:636:24: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
> 636 | if (keying_material.cbKeyingMaterial > materials_sz) {
> | ^
> src/libavformat/tls_schannel.c:637:96: error: request for member ‘cbKeyingMaterial’ in something not a structure or union
> 637 | av_log(h, AV_LOG_WARNING, "Keying material size mismatch: %ld > %zu\n", keying_material.cbKeyingMaterial, materials_sz);
> | ^
> src/libavformat/tls_schannel.c: In function ‘tls_shutdown_client’:
> src/libavformat/tls_schannel.c:710:29: error: ‘SEC_I_MESSAGE_FRAGMENT’ undeclared (first use in this function)
> 710 | } while(sspi_ret == SEC_I_MESSAGE_FRAGMENT || sspi_ret == SEC_I_CONTINUE_NEEDED);
> | ^~~~~~~~~~~~~~~~~~~~~~
> src/libavformat/tls_schannel.c: In function ‘tls_handshake_loop’:
> src/libavformat/tls_schannel.c:862:62: error: ‘SEC_I_MESSAGE_FRAGMENT’ undeclared (first use in this function)
> 862 | if (sspi_ret == SEC_I_CONTINUE_NEEDED || sspi_ret == SEC_I_MESSAGE_FRAGMENT || sspi_ret == SEC_E_OK) {
> | ^~~~~~~~~~~~~~~~~~~~~~
> src/libavformat/tls_schannel.c: In function ‘tls_handshake’:
> src/libavformat/tls_schannel.c:1016:58: error: ‘SECPKG_ATTR_DTLS_MTU’ undeclared (first use in this function); did you mean ‘SECPKG_ATTR_TARGET’?
> 1016 | sspi_ret = SetContextAttributes(&c->ctxt_handle, SECPKG_ATTR_DTLS_MTU, &mtu, sizeof(mtu));
> | ^~~~~~~~~~~~~~~~~~~~
> | SECPKG_ATTR_TARGET
> src/libavformat/tls_schannel.c: In function ‘tls_open’:
> src/libavformat/tls_schannel.c:1072:51: error: ‘SP_PROT_DTLS1_X_SERVER’ undeclared (first use in this function); did you mean ‘SP_PROT_TLS1_SERVER’?
> 1072 | schannel_cred.grbitEnabledProtocols = SP_PROT_DTLS1_X_SERVER;
> | ^~~~~~~~~~~~~~~~~~~~~~
> | SP_PROT_TLS1_SERVER
> src/libavformat/tls_schannel.c:1083:51: error: ‘SP_PROT_DTLS1_X_CLIENT’ undeclared (first use in this function); did you mean ‘SP_PROT_TLS1_CLIENT’?
> 1083 | schannel_cred.grbitEnabledProtocols = SP_PROT_DTLS1_X_CLIENT;
> | ^~~~~~~~~~~~~~~~~~~~~~
> | SP_PROT_TLS1_CLIENT
> make: *** [/home/michael/ffmpeg-git/ffmpeg/ffbuild/common.mak:81: libavformat/tls_schannel.o] Error 1
> make: *** Waiting for unfinished jobs....
> STRIP libavfilter/x86/colorspacedsp.o
>
Builds fine for me on latest mingw64.
These structs and defines are relatively new ones, not exactly sure how new.
But given they're just structs and defines, the function will just fail
on a Windows version that doesn't know them.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support
2025-07-13 2:59 ` James Almer
2025-07-13 6:33 ` Hendrik Leppkes
@ 2025-07-13 11:35 ` Timo Rothenpieler
2025-07-13 13:55 ` James Almer
2 siblings, 0 replies; 7+ messages in thread
From: Timo Rothenpieler @ 2025-07-13 11:35 UTC (permalink / raw)
To: ffmpeg-devel
On 7/13/2025 4:59 AM, James Almer wrote:
> On 7/12/2025 9:32 PM, Michael Niedermayer wrote:
>> On Fri, Jul 11, 2025 at 04:04:17PM +0000, Timo Rothenpieler wrote:
>>> ffmpeg | branch: master | Timo Rothenpieler <timo@rothenpieler.org> |
>>> Tue Jun 24 19:30:19 2025 +0200|
>>> [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo
>>> Rothenpieler
>>>
>>> avformat/tls_schannel: add DTLS support
>>>
>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?
>>>> a=commit;h=90fa9636efff84ec5a4b06815722c08188dca551
>>> ---
>>>
>>> configure | 6 +-
>>> libavformat/tls_schannel.c | 890 ++++++++++++++++++++++++++++++++++
>>> +++++++----
>>> libavformat/version.h | 2 +-
>>> 3 files changed, 833 insertions(+), 65 deletions(-)
>>
>> breaks on mingw64
>>
>> src/libavformat/tls_schannel.c: In function ‘ff_dtls_export_materials’:
>> src/libavformat/tls_schannel.c:606:5: error: unknown type name
>> ‘SecPkgContext_KeyingMaterialInfo’; did you mean
>> ‘SecPkgContext_NegotiationInfo’?
>
> This type (and probably everything below) is API introduced on Windows
> 10, so unless you build targeting _WIN32_WINNT >= 0x0A00, it will not be
> defined.
> So i guess we should make the tls_schannel.c force that value, like so:
It builds fine for me without doing that.
It's just structs and macros after all, the functions are long existing
ones.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support
2025-07-13 6:33 ` Hendrik Leppkes
@ 2025-07-13 11:36 ` Timo Rothenpieler
0 siblings, 0 replies; 7+ messages in thread
From: Timo Rothenpieler @ 2025-07-13 11:36 UTC (permalink / raw)
To: ffmpeg-devel
On 7/13/2025 8:33 AM, Hendrik Leppkes wrote:
> On Sun, Jul 13, 2025 at 4:59 AM James Almer <jamrial@gmail.com> wrote:
>>
>> On 7/12/2025 9:32 PM, Michael Niedermayer wrote:
>>> On Fri, Jul 11, 2025 at 04:04:17PM +0000, Timo Rothenpieler wrote:
>>>> ffmpeg | branch: master | Timo Rothenpieler <timo@rothenpieler.org> | Tue Jun 24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo Rothenpieler
>>>>
>>>> avformat/tls_schannel: add DTLS support
>>>>
>>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90fa9636efff84ec5a4b06815722c08188dca551
>>>> ---
>>>>
>>>> configure | 6 +-
>>>> libavformat/tls_schannel.c | 890 +++++++++++++++++++++++++++++++++++++++++----
>>>> libavformat/version.h | 2 +-
>>>> 3 files changed, 833 insertions(+), 65 deletions(-)
>>>
>>> breaks on mingw64
>>>
>>> src/libavformat/tls_schannel.c: In function ‘ff_dtls_export_materials’:
>>> src/libavformat/tls_schannel.c:606:5: error: unknown type name ‘SecPkgContext_KeyingMaterialInfo’; did you mean ‘SecPkgContext_NegotiationInfo’?
>>
>> This type (and probably everything below) is API introduced on Windows
>> 10, so unless you build targeting _WIN32_WINNT >= 0x0A00, it will not be
>> defined.
>> So i guess we should make the tls_schannel.c force that value, like so:
Only that keying material function would fail at runtime, which would
impact whip/srtp.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support
2025-07-13 2:59 ` James Almer
2025-07-13 6:33 ` Hendrik Leppkes
2025-07-13 11:35 ` Timo Rothenpieler
@ 2025-07-13 13:55 ` James Almer
2 siblings, 0 replies; 7+ messages in thread
From: James Almer @ 2025-07-13 13:55 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 1925 bytes --]
On 7/12/2025 11:59 PM, James Almer wrote:
> On 7/12/2025 9:32 PM, Michael Niedermayer wrote:
>> On Fri, Jul 11, 2025 at 04:04:17PM +0000, Timo Rothenpieler wrote:
>>> ffmpeg | branch: master | Timo Rothenpieler <timo@rothenpieler.org> |
>>> Tue Jun 24 19:30:19 2025 +0200|
>>> [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo
>>> Rothenpieler
>>>
>>> avformat/tls_schannel: add DTLS support
>>>
>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?
>>>> a=commit;h=90fa9636efff84ec5a4b06815722c08188dca551
>>> ---
>>>
>>> configure | 6 +-
>>> libavformat/tls_schannel.c | 890 ++++++++++++++++++++++++++++++++++
>>> +++++++----
>>> libavformat/version.h | 2 +-
>>> 3 files changed, 833 insertions(+), 65 deletions(-)
>>
>> breaks on mingw64
>>
>> src/libavformat/tls_schannel.c: In function ‘ff_dtls_export_materials’:
>> src/libavformat/tls_schannel.c:606:5: error: unknown type name
>> ‘SecPkgContext_KeyingMaterialInfo’; did you mean
>> ‘SecPkgContext_NegotiationInfo’?
>
> This type (and probably everything below) is API introduced on Windows
> 10, so unless you build targeting _WIN32_WINNT >= 0x0A00, it will not be
> defined.
> So i guess we should make the tls_schannel.c force that value, like so:
>
>> diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
>> index 2a01fb387d..a5cc8d3e27 100644
>> --- a/libavformat/tls_openssl.c
>> +++ b/libavformat/tls_openssl.c
Err, not here, but in tls_schannel.c
>> @@ -20,6 +20,11 @@
>> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
>> 02110-1301 USA
>> */
>>
>> +#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0A00
>> +#undef _WIN32_WINNT
>> +#define _WIN32_WINNT 0x0A00
>> +#endif
>> +
>> #include "libavutil/mem.h"
>> #include "network.h"
>> #include "os_support.h"
>
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-07-13 13:55 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20250711160418.F0282412864@natalya.videolan.org>
2025-07-13 0:32 ` [FFmpeg-devel] [FFmpeg-cvslog] avformat/tls_schannel: add DTLS support Michael Niedermayer
2025-07-13 2:59 ` James Almer
2025-07-13 6:33 ` Hendrik Leppkes
2025-07-13 11:36 ` Timo Rothenpieler
2025-07-13 11:35 ` Timo Rothenpieler
2025-07-13 13:55 ` James Almer
2025-07-13 11:34 ` Timo Rothenpieler
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git