DGDecIM section

Anything related to video and my tools that is not a support request.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

WorBry wrote:Great news that the project has now been re-activated! GUI or not, what I'd really like to see at some point is the MeGUI developers include it in the AVS Script Creator file indexing options. I guess that would come with a formal release version?
beta 50 is highly stable and quite suitable for integration into MeGUI. Somebody just has to ask Zathor about it.
DAE avatar
WorBry
Posts: 9
Joined: Mon Feb 14, 2011 11:21 pm

Re: DGDecIM section

Post by WorBry »

Done. I see he's a forum member and have sent him a PM about it.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

I don't know how often he visits here. You may want to PM him.
DAE avatar
WorBry
Posts: 9
Joined: Mon Feb 14, 2011 11:21 pm

Re: DGDecIM section

Post by WorBry »

Double done
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

OK, I will have a look at it.

What kind of containers / codecs / formats are supported? Same as with DGDecodeNV? Or more/less?
Is this list of file types correct? *.264;*.h264;*.avc;*.m2v;*.mpv;*.vc1;*.mkv;*.vob;*.mp4;*.mpg;*.mpeg;*.m2t;*.m2ts;*.mts;*.tp;*.ts;*.trp
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Hi Zathor.

Yes, it is the same as DGDecNV and your list is correct.
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

Hello Donald,

Thanks!

I hope I do not hijack this thread. If yes please move my post.
I played a little bit around with DGDecIM but I cannot get it to work at all. Independent of the engine mode (0,1,2 and none) it fails with "Pipeline init failed. Specified decode engine not available". I use an nVidia card as primary device and in the device manager I cannot see the Intel card at all, but that should only be a problem for the HW mode and SW mode should work in any case. Am I wrong here? I am happy to provide more details if required.
EDIT: DGMVCDecode works without any problems on this machine (auto detect = without hw parameter). I tested it with the same file in all indexers (for sure the file is a 2D file and e.g. DGIndexNV can open it).

Is it possible to hide somehow the indexing popup e.g. with a parameter in the filter? Btw it is great that the indexing is done automatically.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Investigating...

I'll probably have to make an test build with more specific error messages.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

OK, please re-download b50 and use the updated 32-bit dgdecodeim.dll.

Explicitly request SW mode with engine=2. Use Dbgview to capture the OutputDebugString() output and then post the result.

Thank you. Feature requests we can deal with later.
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

engine=2 works now! But not without the parameter at all or engine=0:

[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] 05373A50->CAVIStreamSynth::QueryInterface() (video) {00020022-0000-0000-c000-000000000046} (IAVIStreaming)
[8592] 05373A50->CAVIStreamSynth::AddRef() (video) gRefCnt=5, m_refs=2
[8592] 05373A50->CAVIStreamSynth::End() (video)
[8592] 05373A50->CAVIStreamSynth::Release() (video) gRefCnt=4, m_refs=1
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] 05373A50->CAVIStreamSynth::Release() (video) gRefCnt=3, m_refs=0
[8592] 05373A50->~CAVIStreamSynth() (video), gRefCnt = 3
[8592] 00859978->CAVIFileSynth::Release() gRefCnt=2, m_refs=2
[8592] 00859978->CAVIFileSynth::Release() gRefCnt=1, m_refs=1
[8592] 00859978->CAVIFileSynth::Release() gRefCnt=0, m_refs=0
[8592] 00859978->CAVIFileSynth::~CAVIFileSynth(), gRefCnt = 0
[8592] DllGetClassObject() CLSID: CAVIFileSynth
[8592] 00859978->CAVIFileSynth::CAVIFileSynth()
[8592] 00859978->CAVIFileSynth::AddRef() gRefCnt=1, m_refs=1
[8592] 00859978->CAVIFileSynth::QueryInterface() {00000001-0000-0000-c000-000000000046} (IClassFactory)
[8592] 00859978->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=2
[8592] 00859978->CAVIFileSynth::Release() gRefCnt=1, m_refs=1
[8592] DllGetClassObject() result=0x0, object=00859980
[8592] 00859978->CAVIFileSynth::CreateInstance()
[8592] 008597C8->CAVIFileSynth::CAVIFileSynth()
[8592] 008597C8->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=1
[8592] 008597C8->CAVIFileSynth::QueryInterface() {00000000-0000-0000-c000-000000000046} (IUnknown)
[8592] 008597C8->CAVIFileSynth::AddRef() gRefCnt=3, m_refs=2
[8592] 008597C8->CAVIFileSynth::Release() gRefCnt=2, m_refs=1
[8592] 00859978->CAVIFileSynth::CreateInstance() result=0x0, object=008597C8
[8592] 00859978->CAVIFileSynth::Release() gRefCnt=1, m_refs=0
[8592] 00859978->CAVIFileSynth::~CAVIFileSynth(), gRefCnt = 1
[8592] 008597C8->CAVIFileSynth::QueryInterface() {00020025-0000-0000-c000-000000000046} (unsupported!)
[8592] 008597C8->CAVIFileSynth::QueryInterface() {0000010b-0000-0000-c000-000000000046} (IPersistFile)
[8592] 008597C8->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=2
[8592] 008597C8->CAVIFileSynth::QueryInterface() {00020020-0000-0000-c000-000000000046} (IAVIFile)
[8592] 008597C8->CAVIFileSynth::AddRef() gRefCnt=3, m_refs=3
[8592] 008597C8->CAVIFileSynth::Load("D:\MeGUI\_SAMPLE_VIDEOS\test.avs", 0x0)
[8592] 008597C8->CAVIFileSynth::Release() gRefCnt=2, m_refs=2
[8592] 008597C8->CAVIFileSynth::Release() gRefCnt=1, m_refs=1
[8592] 008597C8->CAVIFileSynth::QueryInterface() {e6d6b708-124d-11d4-86f3-db80afd98778} (IAvisynthClipInfo)
[8592] 008597C8->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=2
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 2
[8592] 008597C8->CAVIFileSynth::GetStream(*, 73647561(auds), 0)
[8592] 008597C8->CAVIFileSynth::GetStream(*, 73766169(iavs), 0)
[8592] 008597C8->CAVIFileSynth::GetStream(*, 73646976(vids), 0)
[8592] 05373770->CAVIStreamSynth(video)
[8592] 05373770->CAVIStreamSynth::AddRef() (video) gRefCnt=3, m_refs=1
[8592] 008597C8->CAVIFileSynth::AddRef() gRefCnt=4, m_refs=3
[8592] 05373770->CAVIStreamSynth::Info(0018F96C, 204) (video)
[8592] 05373770->CAVIStreamSynth::ReadFormat() (video)
[8592] 05373770->CAVIStreamSynth::ReadFormat() (video)
[8592] 05373770->CAVIStreamSynth::Info(0018FA00, 204) (video)
[8592] 05373770->CAVIStreamSynth::Info(0018F9F8, 204) (video)
[8592] 05373770->CAVIStreamSynth::Info(0018F9F8, 204) (video)
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] 05373770->CAVIStreamSynth::QueryInterface() (video) {00020022-0000-0000-c000-000000000046} (IAVIStreaming)
[8592] 05373770->CAVIStreamSynth::AddRef() (video) gRefCnt=5, m_refs=2
[8592] 05373770->CAVIStreamSynth::Begin(0, 3390, 2000) (video)
[8592] 05373770->CAVIStreamSynth::Release() (video) gRefCnt=4, m_refs=1
[8592] DGDecodeIM: session init failed (-3)
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4

Successful call with engine=2:

[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] 05373730->CAVIStreamSynth::QueryInterface() (video) {00020022-0000-0000-c000-000000000046} (IAVIStreaming)
[8592] 05373730->CAVIStreamSynth::AddRef() (video) gRefCnt=5, m_refs=2
[8592] 05373730->CAVIStreamSynth::End() (video)
[8592] 05373730->CAVIStreamSynth::Release() (video) gRefCnt=4, m_refs=1
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
[8592] 05373730->CAVIStreamSynth::Release() (video) gRefCnt=3, m_refs=0
[8592] 05373730->~CAVIStreamSynth() (video), gRefCnt = 3
[8592] 00859540->CAVIFileSynth::Release() gRefCnt=2, m_refs=2
[8592] 00859540->CAVIFileSynth::Release() gRefCnt=1, m_refs=1
[8592] 00859540->CAVIFileSynth::Release() gRefCnt=0, m_refs=0
[8592] 00859540->CAVIFileSynth::~CAVIFileSynth(), gRefCnt = 0
[8592] DllGetClassObject() CLSID: CAVIFileSynth
[8592] 00859738->CAVIFileSynth::CAVIFileSynth()
[8592] 00859738->CAVIFileSynth::AddRef() gRefCnt=1, m_refs=1
[8592] 00859738->CAVIFileSynth::QueryInterface() {00000001-0000-0000-c000-000000000046} (IClassFactory)
[8592] 00859738->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=2
[8592] 00859738->CAVIFileSynth::Release() gRefCnt=1, m_refs=1
[8592] DllGetClassObject() result=0x0, object=00859740
[8592] 00859738->CAVIFileSynth::CreateInstance()
[8592] 008599C0->CAVIFileSynth::CAVIFileSynth()
[8592] 008599C0->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=1
[8592] 008599C0->CAVIFileSynth::QueryInterface() {00000000-0000-0000-c000-000000000046} (IUnknown)
[8592] 008599C0->CAVIFileSynth::AddRef() gRefCnt=3, m_refs=2
[8592] 008599C0->CAVIFileSynth::Release() gRefCnt=2, m_refs=1
[8592] 00859738->CAVIFileSynth::CreateInstance() result=0x0, object=008599C0
[8592] 00859738->CAVIFileSynth::Release() gRefCnt=1, m_refs=0
[8592] 00859738->CAVIFileSynth::~CAVIFileSynth(), gRefCnt = 1
[8592] 008599C0->CAVIFileSynth::QueryInterface() {00020025-0000-0000-c000-000000000046} (unsupported!)
[8592] 008599C0->CAVIFileSynth::QueryInterface() {0000010b-0000-0000-c000-000000000046} (IPersistFile)
[8592] 008599C0->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=2
[8592] 008599C0->CAVIFileSynth::QueryInterface() {00020020-0000-0000-c000-000000000046} (IAVIFile)
[8592] 008599C0->CAVIFileSynth::AddRef() gRefCnt=3, m_refs=3
[8592] 008599C0->CAVIFileSynth::Load("D:\MeGUI\_SAMPLE_VIDEOS\test.avs", 0x0)
[8592] 008599C0->CAVIFileSynth::Release() gRefCnt=2, m_refs=2
[8592] 008599C0->CAVIFileSynth::Release() gRefCnt=1, m_refs=1
[8592] 008599C0->CAVIFileSynth::QueryInterface() {e6d6b708-124d-11d4-86f3-db80afd98778} (IAvisynthClipInfo)
[8592] 008599C0->CAVIFileSynth::AddRef() gRefCnt=2, m_refs=2
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 2
[8592] 008599C0->CAVIFileSynth::GetStream(*, 73647561(auds), 0)
[8592] DGDecodeIM: requesting SW mode
[8592] 008599C0->CAVIFileSynth::GetStream(*, 73766169(iavs), 0)
[8592] 008599C0->CAVIFileSynth::GetStream(*, 73646976(vids), 0)
[8592] 053739B0->CAVIStreamSynth(video)
[8592] 053739B0->CAVIStreamSynth::AddRef() (video) gRefCnt=3, m_refs=1
[8592] 008599C0->CAVIFileSynth::AddRef() gRefCnt=4, m_refs=3
[8592] 053739B0->CAVIStreamSynth::Info(0018F96C, 204) (video)
[8592] 053739B0->CAVIStreamSynth::ReadFormat() (video)
[8592] 053739B0->CAVIStreamSynth::ReadFormat() (video)
[8592] 053739B0->CAVIStreamSynth::Info(0018FA00, 204) (video)
[8592] 053739B0->CAVIStreamSynth::Info(0018F9F8, 204) (video)
[8592] 053739B0->CAVIStreamSynth::Info(0018F9F8, 204) (video)
[8592] 053739B0->CAVIStreamSynth::QueryInterface() (video) {00020022-0000-0000-c000-000000000046} (IAVIStreaming)
[8592] 053739B0->CAVIStreamSynth::AddRef() (video) gRefCnt=5, m_refs=2
[8592] 053739B0->CAVIStreamSynth::Begin(0, 3390, 2000) (video)
[8592] 053739B0->CAVIStreamSynth::Release() (video) gRefCnt=4, m_refs=1
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=2, lpReserved=0x00000000, gRefCnt = 4
[8592] DllMain: hModule=0x10000000, ulReason=3, lpReserved=0x00000000, gRefCnt = 4
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Thanks for the results, Zathor! I will make it fall back to SW if HW is not available, although I thought I had coded it that way. :oops: Could well be a
:bug:

Also, I will make a version with the ability to suppress the pop-up as you requested.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Zathor, please re-download b50 and update dgdecodeim.dll.

You should find that it works for engine=0, engine=2, or engine not specified, but not for engine=1 (because you do not have appropriate HW).

To suppress the popup, include silent=true on the filter parameters.

If you advise that things are working, I will update the 64-bit version as well.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

I went ahead and updated the 64-bit version. Your feedback on the changes will be appreciated.
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

admin wrote:Zathor, please re-download b50 and update dgdecodeim.dll.
You should find that it works for engine=0, engine=2, or engine not specified, but not for engine=1 (because you do not have appropriate HW).
Yes, it works now without engine specified and with engine=0 :D Thanks!
admin wrote:To suppress the popup, include silent=true on the filter parameters.
Sadly this does not work :oops:
I have tried it e.g. with

Code: Select all

DGSourceIM("D:\MeGUI\_SAMPLE_VIDEOS\test.h264", engine=0, silent=true)
Btw is this message box a functionality of the exe or the dll as only the dll is renewed in the zip file.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Thanks for the testing, Zathor.

Hmm, that's funny that silent=true isn't working. I'll look into that right away.

It's a function of the DLL.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

I just downloaded and tested and it works for me. I did have a bad version up there a day or two ago. Can you please check the date on DGDecodeIM.dll and make sure it was built on 4-26 9:15am and if not, then clear cache and re-download? Thanks.
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

I have downloaded the file two hours ago but at the moment I have no access anymore to this machine. Maybe in ~20 hours I can check the time stamp of the dll. So the message box is in the dll? I assumed that it is the in the exe.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

What does the popup say? Maybe there is one coming from the EXE that I am not seeing for some reason.

The DLL checks for the DGI file and if it is not there it starts the indexer exe and pops up a message saying that the indexing is started (when silent=false).
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Oy, never mind, I found the problem. I will re-upload a fixed one and notify here ASAP. :oops:
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

OK, all fixed. Please re-download and update the DLL.

Thank you for your patience. :D
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

No popup anymore - thanks!
Now it is time to integrate it. May need a while as I am not so fast as you are :(
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Zathor wrote: I am not so fast as you are :(
I'm not so sure about that. It's just that now that I am retired I can jump on things right away. No boss telling me what to do. :lol:

Take your time and thank you for your work.
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

Finally I have it up and running in MeGUI. While implementing I noticed these things:
- DGIndexNV writes in line 4 of the DGI file the absolute path information while DGIndexIM write relative paths (absolute if on another drive)
- When audio is to be demuxed DGIndexIM removes the file extension in the path while DGIndexNV does not:
e.g. videofile.dgi PID 13f2 2_0ch 48KHz 448Kbps DELAY 97ms.ac3
- I can use the hardware mode of DGIndexIM even when only logged on with RDP - DGIndexNV does not work in such an environment :D
- DGIndexNV stalled when a license.txt was available without proper license in it. I clicked on the error window but I had to kill the process. Did not tried that with DGIndexIM.

Btw no need to change anything regarding the first two points. I implemented switches in the code to take into account these differences. Thanks again!
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: DGDecIM section

Post by admin »

Thank you for the feedback, Zathor!
Zathor wrote:Finally I have it up and running in MeGUI. While implementing I noticed these things:
- DGIndexNV writes in line 4 of the DGI file the absolute path information while DGIndexIM write relative paths (absolute if on another drive)
You can control that with the setting Full_Path_In_Files in the DGDecIM.ini file. It defaults to 0. It is controllable by the DGIndexNV GUI, but DGIndexIM has no GUI.
- When audio is to be demuxed DGIndexIM removes the file extension in the path while DGIndexNV does not:
e.g. videofile.dgi PID 13f2 2_0ch 48KHz 448Kbps DELAY 97ms.ac3
That's strange. I have never seen DGI in the audio filename like that. Can you double check this, using DGIndexNV directly?
- I can use the hardware mode of DGIndexIM even when only logged on with RDP - DGIndexNV does not work in such an environment :D
Interesting!
- DGIndexNV stalled when a license.txt was available without proper license in it. I clicked on the error window but I had to kill the process. Did not tried that with DGIndexIM.
You mean an empty license file? Or just a wrong license? Please give me a license file that causes this, because I cannot duplicate it. Thank you.
DAE avatar
Zathor
Posts: 94
Joined: Sun Nov 28, 2010 5:06 am

Re: DGDecIM section

Post by Zathor »

- When audio is to be demuxed DGIndexIM removes the file extension in the path while DGIndexNV does not:
e.g. videofile.dgi PID 13f2 2_0ch 48KHz 448Kbps DELAY 97ms.ac3
That's strange. I have never seen DGI in the audio filename like that. Can you double check this, using DGIndexNV directly?
I cannot reproduce it anymore. Maybe I have mixed this up with DGAVCIndex. Sorry :oops:
- DGIndexNV stalled when a license.txt was available without proper license in it. I clicked on the error window but I had to kill the process. Did not tried that with DGIndexIM.
You mean an empty license file? Or just a wrong license? Please give me a license file that causes this, because I cannot duplicate it. Thank you.
license.txt was from the year 2010 with one line in it. I start DGIndexNV with:

Code: Select all

"dgindexnv.exe" -i "D:\_TEST\video.mkv" -o "D:\TEMP\tllbe550.sdj\video.dgi" -e -h
I click on the "Invalid license" popup but then the process does not close itself. I have to kill it as otherwise I cannot replace the locked license.txt file.
Post Reply