Author Topic: Shared storage  (Read 2488 times)

Dariusz Piatkowski

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 20
  • Posts: 819
  • Karma: +4/-0
    • View Profile
Re: Shared storage
« Reply #15 on: May 03, 2020, 05:13:59 pm »
Hi Remy,

Alright, so the latest version LOAD is working correctly. In other words, I have two separate DLL load lists: FFMPEG and VLC, they can both be loaded from their "source" directory, this is also where the marker file (~ffempgh) is created.

So that's all good.

However, here is what I noticed: if I attempt to un-load the DLLs through the GUI screen I am presented with the following message:

Code: [Select]
     Running ffmpeg (and more) permanent DDLs load into memory   
   ( note1: load / free works for below or above 512MB line     )
   ( note2: DLLs loaded into HIGH SHR is permanent until "free" )
 
   Processing... with options : -u  1
 
 
   !Information! no ~ffmpegH file found !
   (this could be normal at first load request)
   ---------------------------------------------------------
   *WARNING* No "handle" (rexx name) found to proceed, free aborted
 
   Free of 0 DLLs successfull

Subsequently no DLLs are unloaded. Now in the bigger scheme of things this is not a problem per say because closing the program does successfully un-load the DLLs, however, this functionality was working in previous versions. So I'm guessing something sneaked through here?

Remy

  • Sr. Member
  • ****
  • Thank You
  • -Given: 1
  • -Receive: 15
  • Posts: 364
  • Karma: +0/-0
    • View Profile
Re: Shared storage
« Reply #16 on: May 04, 2020, 01:44:25 am »
Hi Remy,

Alright, so the latest version LOAD is working correctly. In other words, I have two separate DLL load lists: FFMPEG and VLC, they can both be loaded from their "source" directory, this is also where the marker file (~ffempgh) is created.

So that's all good.

However, here is what I noticed: if I attempt to un-load the DLLs through the GUI screen I am presented with the following message:

Code: [Select]
     Running ffmpeg (and more) permanent DDLs load into memory   
   ( note1: load / free works for below or above 512MB line     )
   ( note2: DLLs loaded into HIGH SHR is permanent until "free" )
 
   Processing... with options : -u  1
 
 
   !Information! no ~ffmpegH file found !
   (this could be normal at first load request)
   ---------------------------------------------------------
   *WARNING* No "handle" (rexx name) found to proceed, free aborted
 
   Free of 0 DLLs successfull

Subsequently no DLLs are unloaded. Now in the bigger scheme of things this is not a problem per say because closing the program does successfully un-load the DLLs, however, this functionality was working in previous versions. So I'm guessing something sneaked through here?

Well normal  ::)
(some code missing)

I upated both
online

Dariusz Piatkowski

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 20
  • Posts: 819
  • Karma: +4/-0
    • View Profile
Re: Shared storage
« Reply #17 on: May 10, 2020, 10:14:14 pm »
Hi Remy,

Alright, so I now have a total of three separate DLL LH lists:

1) ffmpeg
2) vlc
3) usr_dll

In particular, for the moment I'm loading just the usr_dll and that has a single DLL in it: SNAPWRAP.DLL, which several other apps use.

OK, so that load seems to happen fine, but I am getting something strange in terms of the outputs of both the 'Query' and 'Free' commands.

1) QUERY (with the RC option turned ON)
Code: [Select]
Running ffmpeg (and more) permanent DDLs load into memory   
   ( note1: load / free works for below or above 512MB line     )
   ( note2: DLLs loaded into HIGH SHR is permanent until "free" )
 
   Processing... with options : -q  1
 
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for X264150 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for LIBVPX5 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for SDL2 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for POSTPR55 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVDEVI58 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for SWRESA3 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for SWSCAL5 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVFILT7 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVCODE58 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVFORM58 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVUTIL56 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for VLCCORE [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for VLC [126]
 
   DLL(s) query handle done
 
   note 1: Found = at least, modules where loaded one time post boot
   note 2: Found = Module may be loaded or not (freed)

2) FREE (with the RC optioned turned ON)
Code: [Select]

     Running ffmpeg (and more) permanent DDLs load into memory   
   ( note1: load / free works for below or above 512MB line     )
   ( note2: DLLs loaded into HIGH SHR is permanent until "free" )
 
   Processing... with options : -u  1
 
 
   !Information! no ~ffmpegH file found !
   (this could be normal at first load request)
   ---------------------------------------------------------
   No query handle found for DLL: X264150 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: LIBVPX5 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: SDL2 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: POSTPR55 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVDEVI58 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: SWRESA3 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: SWSCAL5 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVFILT7 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVCODE58 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVFORM58 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVUTIL56 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: VLCCORE -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: VLC -  an RC99 will be set fo this DLL on free
   End of dynamic handle acquisition (query), process continues...
 
   -  Error during free of module handle x"        " (rc:99 - X264150)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - LIBVPX5)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - SDL2)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - POSTPR55)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVDEVI58)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - SWRESA3)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - SWSCAL5)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVFILT7)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVCODE58)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVFORM58)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVUTIL56)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - VLCCORE)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - VLC)
   -  detail: [ERROR_NO_HANDLE_FOUND]
 
   Successfully freed  DLLs : 0, expected : 13
   Not freed count : 13
 

...but strangely enough SNAPWRAP.DLL is nowhere to be found...???

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 11
  • -Receive: 195
  • Posts: 2714
  • Karma: +16/-0
    • View Profile
Re: Shared storage
« Reply #18 on: May 10, 2020, 10:54:56 pm »
I hope you aren't marking snapwrap.dll to load high, remember that anything that accesses a 16 bit function should not be loaded high. Not sure about snapwrap but better safe. Same with SDL and SDL2, I've never been brave enough to mark them to load high as so much of the multimedia stuff is 16 bit.

Dariusz Piatkowski

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 20
  • Posts: 819
  • Karma: +4/-0
    • View Profile
Re: Shared storage
« Reply #19 on: May 10, 2020, 11:10:26 pm »
Hi Dave,

I hope you aren't marking snapwrap.dll to load high, remember that anything that accesses a 16 bit function should not be loaded high...

Actually...yup, loading high and both VLC and mplayer certainly seems to be fine with it. No issues so far anyways.

Not sure that this particular DLL has ever caused a problem in the past, however in my attempts to try to minimize the amount of shared-memory consumption I figured I would toss as many things into high-memory as possible and see how they pan out.

I admit, it is a bit of a brute force approach at best!

Remy

  • Sr. Member
  • ****
  • Thank You
  • -Given: 1
  • -Receive: 15
  • Posts: 364
  • Karma: +0/-0
    • View Profile
Re: Shared storage
« Reply #20 on: May 10, 2020, 11:13:43 pm »
Hi Remy,

Alright, so I now have a total of three separate DLL LH lists:

1) ffmpeg
2) vlc
3) usr_dll

In particular, for the moment I'm loading just the usr_dll and that has a single DLL in it: SNAPWRAP.DLL, which several other apps use.

OK, so that load seems to happen fine, but I am getting something strange in terms of the outputs of both the 'Query' and 'Free' commands.

1) QUERY (with the RC option turned ON)
Code: [Select]
Running ffmpeg (and more) permanent DDLs load into memory   
   ( note1: load / free works for below or above 512MB line     )
   ( note2: DLLs loaded into HIGH SHR is permanent until "free" )
 
   Processing... with options : -q  1
 
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for X264150 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for LIBVPX5 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for SDL2 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for POSTPR55 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVDEVI58 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for SWRESA3 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for SWSCAL5 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVFILT7 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVCODE58 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVFORM58 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for AVUTIL56 [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for VLCCORE [126]
   -  detail: [ERROR_CODE_126_NOT_FOUND]
   No handle for VLC [126]
 
   DLL(s) query handle done
 
   note 1: Found = at least, modules where loaded one time post boot
   note 2: Found = Module may be loaded or not (freed)

2) FREE (with the RC optioned turned ON)
Code: [Select]

     Running ffmpeg (and more) permanent DDLs load into memory   
   ( note1: load / free works for below or above 512MB line     )
   ( note2: DLLs loaded into HIGH SHR is permanent until "free" )
 
   Processing... with options : -u  1
 
 
   !Information! no ~ffmpegH file found !
   (this could be normal at first load request)
   ---------------------------------------------------------
   No query handle found for DLL: X264150 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: LIBVPX5 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: SDL2 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: POSTPR55 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVDEVI58 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: SWRESA3 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: SWSCAL5 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVFILT7 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVCODE58 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVFORM58 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: AVUTIL56 -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: VLCCORE -  an RC99 will be set fo this DLL on free
   No query handle found for DLL: VLC -  an RC99 will be set fo this DLL on free
   End of dynamic handle acquisition (query), process continues...
 
   -  Error during free of module handle x"        " (rc:99 - X264150)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - LIBVPX5)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - SDL2)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - POSTPR55)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVDEVI58)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - SWRESA3)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - SWSCAL5)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVFILT7)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVCODE58)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVFORM58)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - AVUTIL56)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - VLCCORE)
   -  detail: [ERROR_NO_HANDLE_FOUND]
   -  Error during free of module handle x"        " (rc:99 - VLC)
   -  detail: [ERROR_NO_HANDLE_FOUND]
 
   Successfully freed  DLLs : 0, expected : 13
   Not freed count : 13
 

...but strangely enough SNAPWRAP.DLL is nowhere to be found...???

Hi Dariusz,

Did you load ffmpeg dlls prior the query ?
If you would like check the loaded DLL, be sure to specify the dll list for the -q and -u option.
From what I could see, rxu function was unable to find handle for the given dlls.

Note: If you loaded modules and closed the prompt window under which you run the cmd file, DLLs are then freed...
           (the prompt window must be left open or use the exe build and do not close it)


Regards
Rémy

I would suggest to do as Dave wrote.   


ps: 1/ a remaining problem seems to be the WPS  (WPS restart helps to free some excessive storage it uses).
       2/ My system is running since I have my DLLs from ffmpeg and vlc loaded high 'including SDL2) and it seems stable despite I run a lot of video and audio files from different type. mp3, ogg, wav etc... (As soon I'll have a problem, I'll remove SDL2 from my list)         




 
« Last Edit: May 10, 2020, 11:24:34 pm by Remy »

Dariusz Piatkowski

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 20
  • Posts: 819
  • Karma: +4/-0
    • View Profile
Re: Shared storage
« Reply #21 on: May 10, 2020, 11:25:03 pm »
Remy,

...Did you load ffmpeg dlls prior the query ?
If you would like check the loaded DLL, be sure to specify the dll list for the -q and -u option.
From what I could see, rxu function was unable to find handle for the given dlls...

No, I did not load any other DLLs high, just SNAPWRAP.DLL.

I am not sure why the other DLLs show up in both the Free and Query lists, I assume that it's because your code is looking for the presence of the '~ffmpegH' file and getting that info from there?

On my system today I have the following files present:

Code: [Select]
Directory of G:\

 5-07-20 11:32a           483      0 a---  ~ffmpegH
        1 file(s)         483 bytes used

Directory of G:\apps\multimedia\vlc2\usr\local\lib

 5-07-20  5:34p           179      0 a---  ~ffmpegH
        1 file(s)         179 bytes used

Directory of G:\usr\dll

 5-09-20 12:42p            57      0 a---  ~ffmpegH
        1 file(s)          57 bytes used

They are each found in the 'source DLL directory' of where the maching *.dlh load file points.

The following are the contents in each file:

1)
Code: [Select]
[G:\]type ~ffmpegH
DLLhnd.0='11'
DLLhnd.1='250D0000''Dll_list.1='X264150'
DLLhnd.2='4B0D0000''Dll_list.2='LIBVPX5'
DLLhnd.3='810D0000''Dll_list.3='SDL2'
DLLhnd.4='820A0000''Dll_list.4='POSTPR55'
DLLhnd.5='2D0D0000''Dll_list.5='AVDEVI58'
DLLhnd.6='A50A0000''Dll_list.6='SWRESA3'
DLLhnd.7='870A0000''Dll_list.7='SWSCAL5'
DLLhnd.8='900A0000''Dll_list.8='AVFILT7'
DLLhnd.9='910A0000''Dll_list.9='AVCODE58'
DLLhnd.10='460D0000''Dll_list.10='AVFORM58'
DLLhnd.11='8B0A0000''Dll_list.11='AVUTIL56'

2)
Code: [Select]
[G:\apps\multimedia\vlc2\usr\local\lib]type ~ffmpegH
DLLhnd.0='4'
DLLhnd.1='4D190000''Dll_list.1='SNAPWRAP'
DLLhnd.2='4B190000''Dll_list.2='VLC'
DLLhnd.3='69190000''Dll_list.3='VLCCORE'
DLLhnd.4='5B190000''Dll_list.4='DVDCSS2'

3)
Code: [Select]
[G:\usr\dll]type ~ffmpegH
DLLhnd.0='1'
DLLhnd.1='51190000''Dll_list.1='SNAPWRAP'

So by the looks of it, it feels like the one I'm actually loading (usr_dll) which only has SNAPWRAP.DLL gets lost and is not read in anymore?

Remy

  • Sr. Member
  • ****
  • Thank You
  • -Given: 1
  • -Receive: 15
  • Posts: 364
  • Karma: +0/-0
    • View Profile
Re: Shared storage
« Reply #22 on: May 11, 2020, 12:02:46 am »
Hum !

Did you run ffmpeghigh -q usr_dll.DLH    to do the query for the corresponding DLLs ?
Wihtout specifying the dll list, no chance to find DLLs loaded out of the default defined into ffmpeghigh

This is the case for -l  -q or -u option. in each case, add the file including a dlls list to get information from these dlls.                       

Dariusz Piatkowski

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 20
  • Posts: 819
  • Karma: +4/-0
    • View Profile
Re: Shared storage
« Reply #23 on: May 11, 2020, 12:22:11 am »
Ahhh!!!!!

Eureka...I got it!!!!  ;D

...Did you run ffmpeghigh -q usr_dll.DLH    to do the query for the corresponding DLLs ?
Wihtout specifying the dll list, no chance to find DLLs loaded out of the default defined into ffmpeghigh

This is the case for -l  -q or -u option. in each case, add the file including a dlls list to get information from these dlls.                       

No, see the way I was running these is to define the program object where I would pass the '-l dll_list.dlh' parameter. The GUI window then comes up, but the dll/load_list text field is empty. Therefore, each time I would select 'Query' or 'Free' no wonder i was getting the results I saw. I was anticipating / expecting that the program surely knew what DLLs I was inquiring about since I passed that list in at start-up-time as an input parameter after all.

So for example, having started the program in that fashion, when I press the radio button next to the '*DLL' label I see the following output:
Code: [Select]
...   
Processing... with options : -l usr_dll_list.dlh
 
   Dll(s) path : "G:\USR\DLL"
   Path to DLL(s) found, process will continue and try loading DLL(s)
   >> Module "SNAPWRAP" successuffly loaded
 
   Load of 1 DLLs successfull
   (ps:under test mode, wait a few seconds before trying the "free" option)
...

In this case, the program certainly knows what DLL it is supposed to watch for. But, if I used the 'Query' or 'Free' button instead, it shows something different:

Code: [Select]
...   
Processing... with options : -q 
 
 
   DLL(s) query handle done
...

This behaviour is what confused me. Because in the 1st example above the program knows what DLL it is looking at (that which was loaded from the INPUT command line) but in the 2nd case it does not, that is because when pressing the 'Free' or 'Query' button it's actually attempting to take the input from the text-feld instead.

Now that I understand how the GUI part works the results are correct whenever I pass the actual dll_list.dlh I originally started the program with.

So here is a request/suggestion: when such a DLL list is passed along to the program at load time, can you automatically list that name in the text field? That way when you have multiple GUIs started you do not have to wonder which one is which...and best of all, even if you have a single one running you do not have to re-type the dll_list.dlh each time into that field.

Remy

  • Sr. Member
  • ****
  • Thank You
  • -Given: 1
  • -Receive: 15
  • Posts: 364
  • Karma: +0/-0
    • View Profile
Re: Shared storage
« Reply #24 on: May 11, 2020, 12:55:15 am »

So here is a request/suggestion: when such a DLL list is passed along to the program at load time, can you automatically list that name in the text field? That way when you have multiple GUIs started you do not have to wonder which one is which...and best of all, even if you have a single one running you do not have to re-type the dll_list.dlh each time into that field.

Ok, done.

Just get the new ffmpeghigh.zip file

note: added a help button and when you click(s) on the  radio button (used to show load was done or not), you can show the message panel with the load result.

Dariusz Piatkowski

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 20
  • Posts: 819
  • Karma: +4/-0
    • View Profile
Re: Shared storage
« Reply #25 on: May 11, 2020, 02:50:41 pm »
Hi Remy,

Ok, done.

Just get the new ffmpeghigh.zip file

note: added a help button and when you click(s) on the  radio button (used to show load was done or not), you can show the message panel with the load result.

Alright, so the input param is now preserved, works great.

However, I did run into a follow-up issue: attempting to select the 'Query' button (or any other one for that matter) for the 2nd time produces the following error in DrRexx console:

Code: [Select]
SAY "   501 +++                   dllfile ="    501 +++                   dllfile
REX0026: Error 26 running G:\UTIL\MISC\DLL_LH.EXE, line 501: Invalid whole number
   208 +++                 Call read_dll_file;
    29 +++   Call ffmpegHigh;

It's almost like the program loses track of the input filename that was passed to it??? (just a guess based on what the above error looks like).

Remy

  • Sr. Member
  • ****
  • Thank You
  • -Given: 1
  • -Receive: 15
  • Posts: 364
  • Karma: +0/-0
    • View Profile
Re: Shared storage
« Reply #26 on: May 11, 2020, 06:53:20 pm »
Hi Remy,

Ok, done.

Just get the new ffmpeghigh.zip file

note: added a help button and when you click(s) on the  radio button (used to show load was done or not), you can show the message panel with the load result.

Alright, so the input param is now preserved, works great.

However, I did run into a follow-up issue: attempting to select the 'Query' button (or any other one for that matter) for the 2nd time produces the following error in DrRexx console:

Code: [Select]
SAY "   501 +++                   dllfile ="    501 +++                   dllfile
REX0026: Error 26 running G:\UTIL\MISC\DLL_LH.EXE, line 501: Invalid whole number
   208 +++                 Call read_dll_file;
    29 +++   Call ffmpegHigh;

It's almost like the program loses track of the input filename that was passed to it??? (just a guess based on what the above error looks like).

Strange !
I   see where it fails but I could not reproduce nor do I see why you've got the invalid whole number
I added a few verification to check not going into an invalid whole number into this part of the code as well. Also added routine if the input file could not be read "already open" or other errors ( if ffmpegh started well with parameters but the radio button isn't on ! them, click on it to display latest messages)

Here it is for your test (only replace the impacted file from the package by this one)
   
Hope it works better.
Regards
Rémy
« Last Edit: May 11, 2020, 07:28:47 pm by Remy »

Dariusz Piatkowski

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 20
  • Posts: 819
  • Karma: +4/-0
    • View Profile
Re: Shared storage
« Reply #27 on: May 11, 2020, 07:51:51 pm »
Remy!

I think I've got it...

..I   see where it fails but I could not reproduce nor do I see why you've got the invalid whole number
I added a few verification to check not going into an invalid whole number into this part of the code as well. Also added routine if the input file could not be read "already open" or other errors ( if ffmpegh started well with parameters but the radio button isn't on ! them, click on it to display latest messages)...

Looks to me like the program is not using a fully qualified DLL_LIST filename due to no fault of it's own. It seems this is the result of the WPS program object defintion I created, where I have the following:

PATH AND FILENAME = G:\UTIL\MISC\DLL_LH.EXE
INPUT_PARAMETERS = -c usr_dll_list.dlh
WORKING_DIRECTORY = (blank)

Here is why I say that:

1) start the program with the input command line as follows '

The intial load goes fine, as does the initial invocating of something like 'Query', the results are:

Code: [Select]
...
   Processing... with options : -q usr_dll_list.dlh 1
 
   Dll(s) path : "G:\USR\DLL"
   Path to DLL(s) found, process will continue and try loading DLL(s)
   *Information* found module with handle x"3D210000"
    [G:\USR\DLL\SNAPWRAP.DLL]
 
   DLL(s) query handle done
...

...but afterwards any attempts to use 'Query' or 'Free' all result in the following error output:
 
Code: [Select]
...
    ** ERROR ** an error occured reading input file including dll list
    Verify input file for possible cause :
    - File aleady open
    - File size = 0
    - First line has an incorrect path syntax
       (path must be specified between double quotes e.g. "C:\usr\lib")
    - Other possible issue
 
    >>>>  current request aborted
...

NOTE: whatever way you're handling the trap is also preventing (here on my machine) me from going back to the GUI window itself to actually close the program, instead I use 'kill' which does successfully close it.

2) re-do the start, same input command line, but now I actually modify the text-field which stores the input parameter the program was originally started with, so instead of just using the filename (usr_dll_list.dlh) I now use a fully qualified name so that includes the complete path (g:\util\misc\usr_dll_list.dlh), this produces the following successfull output:

Code: [Select]
   Processing... with options : -q g:\util\misc\usr_dll_list.dlh 1
 
   Dll(s) path : "G:\USR\DLL"
   Path to DLL(s) found, process will continue and try loading DLL(s)
   *Information* found module with handle x"F71D0000"
    [G:\USR\DLL\SNAPWRAP.DLL]
 
   DLL(s) query handle done

The way to get around this is to modify the WPS Program object to set the INPUT_PARAMETER to show a fully qualified path, which I tested and am happy to report that it works.

I did not try setting the WORKING_DIRECTORY in the Program object to see what impact, if any, it had.

Alright, I would say this works. Unless there were any other changes in this test build (other than the DEBUG stuff) I think I can go back to using the previous release and just use a fully qualified pathname as the input parameter.

Thanks Remy!!!

Remy

  • Sr. Member
  • ****
  • Thank You
  • -Given: 1
  • -Receive: 15
  • Posts: 364
  • Karma: +0/-0
    • View Profile
Re: Shared storage
« Reply #28 on: May 12, 2020, 01:59:58 am »
Hi Dariusz,

With your last update, I found what's going wrong and why you have to specify the path under WPS pgm icon.
Now, I corrected it and I display from under which path ~ffmpeh is taken (same as dll to load) if exist.
I added a few more verification and check not disabling the main dialog :D (what you had after the new error messages)
I added a quick [e] button to edit the input file with DLLs in case some changes are needed.

Please take the new build I just put online on my site (avxcat page)

Regards
Rémy