![]() |
#1 |
Forum King
Join Date: May 2009
Location: No longer on the streets of Kings County, CA.
Posts: 3,093
|
Thread Safe
Inside in_mp3.dll are the exported functions winampGetExtendedFileInfo(W) multi-thread safe?
|
![]() |
![]() |
![]() |
#2 |
Ben Allison
Former Winamp Developer Join Date: Jan 2005
Location: Brooklyn, NY
Posts: 1,057
|
No.
Thread safety for metadata reading is provided by winamp.exe (via Critical Section) |
![]() |
![]() |
![]() |
#3 |
Forum King
Join Date: May 2009
Location: No longer on the streets of Kings County, CA.
Posts: 3,093
|
Thank you VERY much for responding. I had my doubts as to why I was seeing certain errors.
Damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it damn-it, this entire time... Bah, I should know better anyways. Is there a way I can directly access/call/use that CRITICAL_SECTION object outside of ::SendMessageW(winampHWnd,...) mechanism? I need to be able to call these functions directly for speed reasons (and to minimize thread dead-locks) for a particular chain of functions that call it repeatedly. P.S. Nice to see you're still around. Pop in more often. |
![]() |
![]() |
![]() |
#4 |
Late skinner & Moderator
Join Date: May 2003
Location: Argentina
Posts: 1,629
|
I'd love to see that "former Winamp developer" loose the first word.. =D
|
![]() |
![]() |
![]() |
#5 | |
Ben Allison
Former Winamp Developer Join Date: Jan 2005
Location: Brooklyn, NY
Posts: 1,057
|
Quote:
There is a Wasabi API called api_metadata. I think it's in the SDK somewhere. That essentially calls into the same function that the SendMessage(IPC_GET_EXTENDED_FILE_INFOW) API does, but without the SendMessage overhead. ml_local uses it for metadata reading, for example. There's also an old Winamp3 API (and available in winamp 5 for compatibility reasons) that can be used for thread-safe metadata reading without hitting the critical section, but only in_mp3 and in_wmvdrm implement it. I can dig up details on it if you need. For Winamp-for-Android (And the formerly in-progress Winamp 6 project), there is a much better metadata API, if only ... |
|
![]() |
![]() |
![]() |
#6 |
Forum King
Join Date: May 2009
Location: No longer on the streets of Kings County, CA.
Posts: 3,093
|
Ah excellent, I think I've seen that API somewhere. Thanks.
|
![]() |
![]() |
![]() |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|