List [ITP],[ITA] by me

Takashi Yano takashi.yano@nifty.ne.jp
Tue Feb 14 09:11:20 GMT 2023


On Mon, 13 Feb 2023 18:02:27 +0000
Jon Turney wrote:
> On 06/02/2023 12:21, Takashi Yano via Cygwin-apps wrote:
> > On Sun, 5 Feb 2023 16:33:45 +0000
> > Jon Turney wrote:
> >> On 05/02/2023 08:40, Takashi Yano via Cygwin-apps wrote:
> >>> The list of ITPs and ITAs I recently proposed, is as follows.
> >>> Sorry, there are so many, but thank you in advance.
> >>
> >> No problem.  I'll try to give them all the attention they deserve.
> > 
> > Thank you very much!
> > 
> >>> [ITP]
> >>> AMF: for ffmpeg (new)
> >>> aom: for ffmpeg (new)
> >>> faad2 : for moc
> >>> fdk-aac-free : for ffmpeg (new)
> >>> ffmpeg : for moc (under discussion)
> >>> libopusenc : for opus-tools
> >>> mfx_dispatch : for ffmpeg (new)
> >>> moc
> >>> nv-codec-headers : for ffmpeg (new)
> >>
> >> I have a question about how this (and AMF I guess) works.
> >>
> >> Are these headers which implement the whole codec? or do they expect the
> >> codec to be accessible via the driver somehow?
> > 
> > nv-codec-headers provides header files which dynamically
> > loads nvcuda.dll, nvcuvid.dll and nvEncodeAPI{,64}.dll.
> > 
> > Similary, AMF loads amfrt{64,32}.dll dinamically.
> > 
> > The codec itself is implemented in the dlls which is provided
> > by nVidia/AMD. mfx_dispatch also does the similar. It loads
> > some dlls dynamically privided by Intel.
> > 
> 
> I see.
> 
> It might be helpful to mention that (in general terms) in the 
> description for those packages.
> 
> 
> Generally, there are some ABI concerns with using interfaces like this, 
> e.g.:
> 
> i) You need to be sure that Windows API sized types are used (e.g. 
> DWORD) rather than C ABI sized types (e.g. long)
> 
> See https://cygwin.com/faq.html#faq.programming.64bitporting
> 
> ii) Since these dynamically loaded DLLs are linked with a different C 
> runtime, one must tread carefully, as caution is required:
> 
> e.g. if an exported function returns a pointer to some memory 
> dynamically allocated using malloc(), which you are expected to release 
> with free() VERY BAD THINGS will happen when you pass it to Cygwin's 
> free() rather than the MSVCRT free() matchin the alloc() it came from.
> 
> 
> I'm going to assume that these concerns don't apply, because you would 
> have noticed the dismal failure to work at all.

Thanks for the advice. I will check just to be sure.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>


More information about the Cygwin-apps mailing list