Comskip Support Forum

Comskip is a free commercial detector, browse the forum for more information
It is currently Fri Sep 20, 2019 4:56 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 11 posts ] 
Author Message
PostPosted: Sun Jun 09, 2019 10:34 pm 
Offline

Joined: Sun Jun 09, 2019 9:49 pm
Posts: 6
It looks like this was asked over on AVSForum previously, but didn't really get an answer there.
https://www.avsforum.com/forum/26-home-theater-computers/3054454-new-comskip-donator-version.html

I just upgraded my comskip donators version to 82_007 on my Windows 7 DVR PC, and it as soon as it runs, a message box comes up saying:
Quote:
The procedure entry point ReleaseSemaphore could not be located in the dynamic link library api-ms-win-core-synch-l1-2-1.dll.


So it looks like this ReleaseSemaphore function was only added to that DLL in Windows 10, per this page:
https://docs.microsoft.com/en-us/windows/desktop/apiindex/umbrella-lib-onecore-alpha

My guess is you're building with the Windows 10 SDK and it's just attempting to load some Kernel32.lib API imports this way. You probably just need to redefine WINVER and _WIN32_WINNT to _WIN32_WINNT_WIN7 (0x0601), and rebuild comskip.
https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=vs-2019

Anyway, please build an updated Windows 7 compatible comskip donators if you can. Or if you're really depending on something in the new SDK, let us know and us Windows 7 users will just have to stick with the previous compatible version (comskip82_003_donators) from now on.

Thanks!


Top
 Profile  
Reply with quote  
PostPosted: Mon Jun 10, 2019 10:10 am 
Offline
Site Admin

Joined: Sun Aug 21, 2005 3:49 pm
Posts: 3296
I've build release 008 with the windows 7 define as you requested.
Can you test?


Top
 Profile  
Reply with quote  
PostPosted: Tue Jun 11, 2019 1:06 am 
Offline

Joined: Sun Jun 09, 2019 9:49 pm
Posts: 6
Thanks for the quick response! Sure I can test.

Unfortunately I still see the same ReleaseSemaphore error on Windows 7.
It does seem improved, in that the "Image Ver" column of Dependency Walker (http://dependencywalker.com/) for comskip.exe now shows "6.1" rather than "6.3" for most dependencies -- Except for API-MS-WIN-CORE-SYNCH-L1-2-0.DLL.

I'm not sure why it would be that way for just one file. It appears you might be building with the 10.0.14393 SDK, or targeting that version of Windows.
You might want to check the "Version" or "Minimum Required Version" in your linker options.
Or perhaps you could try Project > Retarget solution... in Visual Studio and select an older Windows SDK version, such as 8.1.

Maybe running dumpbin /ALL comskip.exe could shed some light on this too:
https://docs.microsoft.com/en-us/cpp/build/reference/dumpbin-options?view=vs-2019

Also, was that one a donator version? I saw it under http://www.kaashoek.com/files/ but not at http://www.kaashoek.com/donators/

Thanks!


Top
 Profile  
Reply with quote  
PostPosted: Wed Jun 12, 2019 8:03 am 
Offline
Site Admin

Joined: Sun Aug 21, 2005 3:49 pm
Posts: 3296
Small problem, I'm building using MINGW otherwise I can not build libavcodec from source.


Top
 Profile  
Reply with quote  
PostPosted: Tue Jun 18, 2019 1:43 am 
Offline

Joined: Sun Jun 09, 2019 9:49 pm
Posts: 6
Actually what I said before was incorrect.
Comskip82_007 and comskip82_008 are mostly identical, according to dependency walker and dumpbin.
There were just some additional differences between donator and non-donator versions.

So let's see... dumpbin /IMPORTS says this about that DLL:
api-ms-win-core-synch-l1-2-0.dll
4C988F0 Import Address Table
4C984A4 Import Name Table
0 time date stamp
0 Index of first forwarder reference

1F ReleaseSemaphore
23 Sleep
2C WaitForSingleObjectEx

By the way, the NTSTATUS error code is 0xc0000139 (Entry Point Not Found)
"The procedure entry point %hs could not be located in the dynamic link library %hs"
And if you examine api-ms-win-core-synch-l1-2-0.dll on Windows 7 it doesn't contain a ReleaseSemaphore entry point.
You could try Googling that error code and see if there are any suggestions for MINGW to get around that.

Hmm... it seems difficult to even see the issue on a Windows 10 machine, because the dependencies are all there.
Are you able to test on Windows 7 at all? Preferably with a debugger.

You could also try using the Dependency Walker Profiling to detect dynamic dependencies, which we seem to have here for the ReleaseSemaphore function
http://www.dependencywalker.com/help/html/application_profiling.htm


Top
 Profile  
Reply with quote  
PostPosted: Tue Jun 18, 2019 4:56 pm 
Offline

Joined: Sun Jun 09, 2019 9:49 pm
Posts: 6
I tried installing a couple of runtime updates from Microsoft:

The latest supported Visual C++ downloads - "x64: vc_redist.x64.exe"
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

Update for Universal C Runtime in Windows - "All supported x64-based versions of Windows 7"
https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows

But this didn't help either.

So you're using MINGW. Which compiler and Windows SDK versions are you using exactly?
If you give me some basic instructions on how to set up your environment, I can try to reproduce this.


Top
 Profile  
Reply with quote  
PostPosted: Wed Jun 19, 2019 5:15 pm 
Offline

Joined: Wed Jun 19, 2019 4:57 pm
Posts: 1
I had to rebuild my win7 x64 media center system onto another workstation last week as a result of bad caps on my old system's motherboard.

I downloaded comskip82_007_donators on the 14th. I get the same error when launching comskip.exe as Nebulous saying "The procedure entry point releasesemaphore could not be location in the dynamic link library api-ms-win-core-synch-l1-2-0.dll".

I don't see the 008 release mentioned but logged into the donator page again today and see version comskip82_009_donators but unfortunately that leads to the same error message. As nebulous mentioned I then went back and downloaded the next previous version comskip82_003_donators and it works with no errors.

I am not a programmer or compiler but when searching the error I ran across another program with the same error. Maybe this will give insight to fix ongoing versions of comskip for win7.

https://github.com/rust-lang/rust/issues/49438


Top
 Profile  
Reply with quote  
PostPosted: Mon Jun 24, 2019 4:57 pm 
Offline

Joined: Sun Jun 09, 2019 9:49 pm
Posts: 6
Interesting link there Menelmacar.

So I think you should try to remove any dependencies on synchronization.lib (the "synchapi" module?) Here's their change for that:
https://github.com/alexcrichton/parking_lot/commit/3fecbdfeceeea6446ec178e7cfa03cecb2f7b1ae#diff-9dee1a7419d98f82ac52f53b1798124a

Hopefully after the synchronization.lib dependency is gone, the linker can locate the ReleaseSemaphore function in Kernel32.lib again.


Top
 Profile  
Reply with quote  
PostPosted: Fri Jun 28, 2019 4:34 pm 
Offline
Site Admin

Joined: Sun Aug 21, 2005 3:49 pm
Posts: 3296
Solving this will require some serious time for debugging and testing
At the moment I'm rather busy and can not promise this will be done soon.
Hope to have more time after August


Top
 Profile  
Reply with quote  
PostPosted: Mon Jul 08, 2019 7:23 pm 
Offline

Joined: Sun Jun 09, 2019 9:49 pm
Posts: 6
Understood. I can try and investigate further...

Is comskip source code still available? http://comskip.org/ says it's at svn://svn.kaashoek.com but it's not working?

Also does the code include any instructions on how to set up the MINGW build?
How do I get libavcodec - is it just from the ffmpeg source? http://ffmpeg.org/download.html#get-sources


Top
 Profile  
Reply with quote  
PostPosted: Mon Jul 08, 2019 8:01 pm 
Offline
Site Admin

Joined: Sun Aug 21, 2005 3:49 pm
Posts: 3296
Latest source is on github


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group