View Full Version : DGIndex Batcher v1.18 (17 Apr 2018)
StainlessS
7th December 2011, 07:29
DGIndex Batcher - by StainlessS
http://forum.doom9.org/showthread.php?t=163369
http://www.autoitscript.com/forum/topic/137933-megui-autoencode-and-dgindex-batchers/
Utility to allow group selection of mpeg files for batching in DGIndex.
"MPG Files (*.vob;*.mpg;*.mpeg;*.m1v;*.m2v;*.mpv;*.tp;*.ts;*.trp;*.m2t;*.m2ts;*.pva;*.vro)"
The Batcher will display a little blue icon with an white pyramid, in the system tray.
The utility is written in 'AutoIt' script language and compiled to a native running
executable without need for the script development environment.
"DGIndex-Batcher.ini" will be used for the default paths so that it is not
necessary to re-build the executable to change defaults, the ini file will be created on first
use in the same directory as the batcher executable.
On start up, will auto execute DGIndex in default directory "C:\NON-INSTALL\DGIndex\DGIndex.exe".
If DGIndex not found in that directory, then will prompt user for the path to DGIndex, the
new default path will be saved in the ini file.
Can execute DGIndex before the batcher and the batcher will then use the instance of DGIndex
that is already running instead of auto loading it.
The default input mpeg clip directory is likewise saved in the ini file.
All of the DGIndex options should be set before using the batcher. In particular, the AVS
template should be set. Just like DGIndex, only 1 avs file will be created, no matter
how many audio streams exist in the mpegs. Refer to DGIndex docs for further info on
settings etc.
v0.01, When the batcher is active, you can press the 'PAUSE' key (usually above Page Up)
and the batcher will pause execution, pressing again will continue the batcher
from where it left off. Press 'SHIFT+CTRL+ALT+PAUSE' and the batcher will terminate.
v1.00, New options in GUI.
Auto Overwrite,
will overwrite existing *.d2v files. (This will NOT be implemented in the
MeGUI Batcher for eg MP4 files, dont bother asking).
Beep, on/off,
saves DarkT's girlfriend getting woken up if off.
Auto Close,
close on completion without message box.
Call MeGUI Batcher,
will ask for location of partner batcher for MeGUI (source supplied)
so as to use DGIndex batcher to index mpeg files and pass the results to the MeGUI Batcher
which will feed them into MeGUI.
MeGUI Batcher STOP,
Stop at MeGUI Batcher GUI.
Note, the MeGUI and MeGUI batcher settings should have been setup prior to using
the 'Call MeGUI Batcher' option, The output directory of DGIndex Batcher will be fed into
the MeGUI batcher, ie no need to set it in MeGUI Batcher first. NOTE ALL avs files in the
DGIndex output folder will be fed into the MeGUI batcher.
v1.11, New options in GUI.
Auto Overwrite Avs, deletes avs file as DGIndex will only overwrite existing d2v's, and will
leave any existing avs file as is.
Ignore Audio Delay Warning, will just click on OK button if this dialog box appears, will
also produce a popup log file if this occurs.
v1.14, 'Insert Infos' insert some stuff from DGIndex Information Window into AVS template file. (See AVS File)
"Correct Illegal Field Transition", causes batcher to give automatic answer to such a dialog box.
Any File causing any out of ordinary behaviour, will be sent to the "SaveDirectory\PROBLEM\" folder
and will NOT be sent to MeGUI auto Encode Batcher if using that utility.
Thats about it, except that you should not try to confuse the batcher by messing with
the mouse or keyboard when it is busy. There has been no attempt to lock out user input
when busy, this would require admin privileges on Vista+.
If the batcher should stall, then exit via the system tray icon right button, 'exit'.
Enjoy.
StainlessS
-----------------------------------------------------------------------------------
Required for re-building of the script, AutoIt is the interpreter/compiler and SciTE4AutoIt3
is an IDE (Integrated Development Environment) for it. To re-build, just click on 'Build' in the
tools menu of the IDE.
AutoIt:- http://en.wikipedia.org/wiki/AutoIt
For details on AutoIt3 : http://www.AutoItscript.com/autoit3
SciTE4AutoIt3 homepage : http://www.AutoItscript.com/autoit3/scite
-----------------------------------------------------------------------------------
v0.00 07 Dec 2011 - First Release.
v0.01 12 Dec 2011 - Added Joining of Files sets (eg 1.VOB + 2.VOB etc).
Added Hotkeys, 'PAUSE' button (above 'Page Up' usually) is pause script. 'SHIFT+CTRL+ALT+PAUSE' is QUIT Batcher.
No longer using "[CLASS:WindowsForms10.Window.8.app.0.378734a]" style ID's as have found that they
are based on the path to the executable and so will fail if not in the default path (the number on the
end is some kind of hash on the path/filename).
v1.00 20 Dec 2011 - Source script is a DEBUG VERSION.
Added options, Auto Overwrite, Beep, Auto Close, Call Megui Batcher, Megui Batcher STOP.
v1.10 24 Feb 2012 - Source script is a DEBUG VERSION.
Fix for Windows 7, Select All when calling MeGUI batcher (different control in W7 FileSelector).
Re-compiled with AutoIt v3.3.8.0
v1.11 10 June 2012 - Changed to Freeware licence. Sped up mouse a bit.
New options in GUI. Auto Overwrite Avs, deletes avs file as DGIndex will only overwrite existing
d2v's, and will leave any existing avs file as is.
Ignore Audio Delay Warning, will just click on OK button if this dialog box appears, will also
produce a popup log file if this occurs.
v1.12 26 June 2012,
Fixed, broken OnAutoItExitRegister.
Fixed, detects & restores minimized target window, could fail in Executable (not script) when batcher called
via eg desktop shortcut and target is running but minimized (and no other windows open).
Added Development Debug output log file, controllable via source script only ($WriteDebugFile=true).
v1.13, 21 Sept 2013
Fixed ini read/write for JOIN_FILES and EXECUTABLE. Changed default Timeout to 300 seconds
v1.14, 23 Sept 2013
Added: Insert Infos, Correct Field Order, Move Problem Files.
v1.14, Added "Insert Infos" and "Correct Illegal Field Transition" options.
v1.15, 23 Feb 2015, Fixed, Append Slash to directory eg "D:" appends "\" when sent to FileSelector. Recompile AutoIt v3.3.12.
v1.16, 02 June 2015. Allow some special characters in filenames eg '#!+'.
v1.17, 06 Feb 2016. Re-compile for AutoIt v3.3.14.2
v1.18, 13 Mar 2018, Recompile AutoIt v3.3.14.4
v1.19, 13 July 2018, Recompile AutoIt v3.3.14.5
v1.20, 24 Jan 2021, Some fixes.
v1.21, 28 Jan 2021, Close Preview window before Information Window, avoid DGIndex v2.0 Not Responding when Full Indexing.
v1.22, 29 Jan 2021, Cockup in v1.21, had left DGIndex bug testing code uncommented, bug still existed. Fixed.
Supports all the formats supported by DGIndex ie
"MPG Files (*.vob;*.mpg;*.mpeg;*.m1v;*.m2v;*.mpv;*.tp;*.ts;*.trp;*.m2t;*.m2ts;*.pva;*.vro)"
Also, Concatenation of File sets implemented, eg 1.vob + 2.vob etc.
Dummy Template included to demo additional info extracted from DGIndex Information window.
# Standard DGIndex Infos
VideoFileName = "__vid__"
AudioFileName = "__aud__"
AudioDelay = Value("__del__")
# DGIndex_Batcher Infos
# Stuff from DGIndex Information Window will be inserted into below '__stuff__' insertion markers.
DGI_Field_Order = "__Field_Order__"
DGI_Stream_Type = "__Stream_Type__"
DGI_Profile = "__Profile__"
DGI_Frame_Size = "__Frame_Size__"
DGI_Display_Size= "__Display_Size__"
DGI_Aspect_Ratio= "__Aspect_Ratio__"
DGI_Frame_Rate = "__Frame_Rate__"
DGI_Video_Type = "__Video_Type__"
DGI_Sequence = "__Sequence__"
DGI_Frame_Struct= "__Frame_Struct__"
DGI_Frame_Type = "__Frame_Type__"
DGI_Colorimetry = "__Colorimetry__"
Mpeg2Source(VideoFileName)
AudioExt = GetFileExtension(AudioFileName)
Aud= (AudioExt==".ac3") ? NICAC3Source(AudioFileName,channels=2,DRC=0)
\ : (AudioExt==".mpa"||AudioExt=="mp1"||AudioExt==".mp2"||AudioExt==".mp3") ? NicMPG123Source(AudioFileName,Normalize=False)
\ : (AudioExt==".wav") ? RaWavSource(AudioFileName)
\ : (AudioExt==".dts") ? NicDTSSource(AudioFileName)
\ : 0
#Assert(!isInt(Aud),"NO AUDIO")
(!isInt(Aud)) ? AudioDubEx(Aud).DelayAudio(AudioDelay).Trim(0,0) : NOP # Trim, chop/add audio to length
(!isInt(Aud) && AudioRate() <> 44100) ? ResampleAudio(44100) : NOP
S= \
"Field Order = " + DGI_Field_Order + "\n" + \
"Stream Type = " + DGI_Stream_Type + "\n" + \
"Profile = " + DGI_Profile + "\n" + \
"Frame Size = " + DGI_Frame_Size + "\n" + \
"Display Size = " + DGI_Display_Size + "\n" + \
"Aspect Ratio = " + DGI_Aspect_Ratio + "\n" + \
"Frame Rate = " + DGI_Frame_Rate + "\n" + \
"Video Type = " + DGI_Video_Type + "\n" + \
"Sequence = " + DGI_Sequence + "\n" + \
"Frame Struct = " + DGI_Frame_Struct + "\n" + \
"Colorimetry = " + DGI_Colorimetry
(DGI_Field_Order != "__Field_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
GOT_INFOS = (DGI_Aspect_Ratio=="16:9 [3]")
FAR = (GOT_INFOS) ? 16/9.0 : (DGI_Aspect_Ratio=="4:3 [2]") ? 4/3.0 : 1
Eval( (FAR!=1) ? "MeGUI_DarX=Round(FAR*1000) MeGUI_DarY=1000" : "" )
Return Last
##########
Function GetFileExtension(string fn) { rfn=fn.RevStr i=rfn.FindStr(".") Return (i==0) ? "" : rfn.LeftStr(i).RevStr }
What above template might look like when filled in, here:- http://forum.doom9.org/showthread.php?p=1645220#post1645220
Get It @ MediaFire in sig (UTILITY FOLDER):
Also get the partner MeGUI AutoEncode batcher already compiled, here (or in sig):-
http://forum.doom9.org/showthread.php?t=163343
NOTE, Both MeGUI Batcher and DGIndex Batcher contain the source for BOTH utilities.
StainlessS
12th December 2011, 04:36
New version DGIndex Batcher v0.01, See first post.
StainlessS
12th December 2011, 18:41
I wondered if the DGIndex Batcher could be persuaded to work with DGAVCIndex (which I had not previously used).
I spent about 10 minutes all told and got it working OK, Apart from a few text strings referring to DGIndex or VOBs
which you could change yourself if you wish, just search for DGIndex and change them.
Below are the pertinent lines to change to get it to work (DGAVCIndex does not support Joining of file sets
so although the batcher will oblige, it will not work EDIT: Only the first file in the set will be output by DGAVCIndex).
Presumably, could be equally easily changed for DGNVIndex.
At the beggining of the file.
Global Const $BATCHER_NAME = "DGAVCIndex_Batcher_v0.00"
Global Const $BATCHER_INI = "DGAVCIndex_Batcher.ini"
Global Const $DEFAULT_EXECUTABLE = "C:\NON-INSTALL\DGAVCDec\DGAVCIndex.exe" ; Modify to suit
Global Const $PROCESS_NAME = "DGAVCIndex.exe"
Global Const $MAIN_WN = "[CLASS:DGAVCIndex]"
Global Const $FILTER = "AVC Files (*.264;*.h264;*.AVC;*.m2t;*m2ts;*.mts;*.tp;*.ts;*.Trp)"
A bit further down.
; Check if DGAVCIndex is already running, if not, then start it.
If Not WinExists($MAIN_WN) Then
If $DEFAULT_AUTO_EXECUTE Then
Do
; Dont enclose Working Directory ($CLIP_DIRECTORY) in quotes, it dont work.
Run('"' & $EXECUTABLE & '"', $CLIP_DIRECTORY & "\")
If @error = 0 Then
ProcessWait($PROCESS_NAME)
Sleep(1000) ; a little time to get up, and a window
ExitLoop
EndIf
If MsgBox(8192 + 32 + 1, "Problem Unable to run DGAVCIndex", "Find DGAVCIndex.exe") <> 1 Then Exit
$EXECUTABLE = FileOpenDialog("Finding DGAVCIndex.Exe", $EXECUTABLE, "(DGAVCIndex.Exe)", 1 + 2, "DGAVCIndex.Exe")
Until 1 + 1 <> 2 ; 4E4, ... For a long time.
Else
MsgBox(0, "Problem", "DGAVCIndex does not appear to be started, please check")
Exit
EndIf
EndIf
Near the end of the file (Was 'FINISH').
Fn_WinWaitActive("Information", "Finished!", 3600) ; wait for a maximum of 1 hour for indexing to complete.
Fn_WinClose("Information", "Finished!") ; Close the Information window
Groucho2004
12th December 2011, 19:32
[QUOTE=StainlessS;1544604]
Do
Until 1 + 1 <> 2 ; 4E4, ... For a long time.
Priceless :D
StainlessS
14th December 2011, 00:25
@DarkT,
If you read this, I'm wondering, how would it sound if I implemented something in DGIndex Batcher that,
after doing it's stuff, called the MeGUI Batcher, to do it's stuff, ie a sort of one-click thing.
I wholey intend to do this for myself, but would you also find it useful?.
If any of the above makes sense to you and you envisage something you like, then please
tell how that envisagement went (I know how I see it but I want your view).
EDIT: assuming it works at all for you ? EDIT:, any body elses views would also be welcome.
EDIT:, but the one-click thing here would be a one-click on a directory, ie group selection
one-click.
DarkT
14th December 2011, 03:40
Heya, not really working with those filetypes at the moment, BUT - keep up the good work, I'm sure there'll be a TON of people who'd find the whole dgindex ---> megui thingy very useful. Not having this batching possibility in megui is the only reason I am looking at other programs like stax-something and ripbot and the others, HANDBRAKE - seems like an intresting alternative... But... I am postponing it all because I am used to megui, and am hoping your megui batcher will work ;). Anyway, will go see how it goes...
StainlessS
14th December 2011, 14:19
DarkT,
Check out FFCoder.
DarkT
14th December 2011, 19:35
Checked it out, looks really cool, also the avs media thingy looks awesome... But now that I haz your Batching program, there's no need ;). Though, to be honest, I'd like to envetually make a comparison between the currently available programs... Like, in terms of options, coz, they would prolyl encode same speed... Anyway..
StainlessS
21st December 2011, 00:57
New Version DGIndex Batcher v1.00 20 Dec 2011, see 1st post.
Now can auto call MeGUI AutoEncode Batcher on completion and feed the *.AVS files
it creates, into the MeGUI Batcher, ie group selection of Mpeg files, calls DGIndex to index
them and create a set of AVS files using your template AVS file, and then passes them
through the MeGUI batcher to do the lot in MeGUI. I queued about 59 mpg's for
MP4 conversion the other day and it did the lot in one go without intervention.
StainlessS
24th February 2012, 16:47
New version DGIndex Batcher v1.10, 24 Feb 2012, see 1st post.
Working Well, XP, Vista, W7.
Edit: Previous version had problem on W7 controlling the MeGUI Batcher,
where the control on the MeGUI Batcher fileselector was of a different type to
Vista & XP. Was not a major problem, just failed to be able to Select All
of the AVS files for input into MeGUI batcher, had to do it manual instead.
Fixed now.
StainlessS
28th May 2012, 12:27
BELOW MOVED HERE FROM ANOTHER THREAD:
http://forum.doom9.org/showthread.php?p=1576139#post1576139
Hi, the below test script was something I robbed from a MEGUI wiki entry a couple of days ago:
http://mewiki.project357.com/wiki/Me...iSynth_Scripts
The purpose of below is just to ascertain that MEGUI does correctly process the Aspect Ratio signalling,
and it does.
# Based on MEGUI WIKI : http://mewiki.project357.com/wiki/MeGUI/Aspect_Ratio_Signalling_in_AviSynth_Scripts
#
# SAR=Sample ie pixel Aspect Ratio. FAR=Frame Aspect Ratio (width/height). DAR=Aspect Ratio for Display.
ColorBars().ConvertToYV12().Trim(0,300) # 640x480
DAR = 16.0/9.0 # Pretend (FULL FRAME) DAR = 16/9 (Choose your variety of poison)
SAR = getSAR(DAR) # Calc SAR, no change when cropping.
#Crop(20,20,-20,-20) # We dont want to change DAR here, just testing if MEGUI actually sets 16:9 Aspect ratio correctly.
NewDAR = getDAR(SAR) # Calc new DAR after crop and before Resize. DAR no change when resizing.
LanczosResize(200,300) # Test to see if MEGUI sets DAR 16:9. (FAR = tall and skinny, MEGUI should set DAR=16:9 ie short and fat)
SignalDAR(NewDAR) # Signal DAR to MeGUI : EDIT: Change Name to SignalDAR (From SetDar)
return last
Function GetDAR(clip c, float SAR) { return Float(c.width) * SAR / Float(c.height)} # Gets the DAR from the SAR
Function GetSAR(clip c, float DAR) { return DAR * Float(c.height) / Float(c.width) } # Gets the SAR from the DAR
Function SignalDAR(float DAR) { global MeGUI_darx = Round(1000 * DAR) global MeGUI_dary = 1000 } # Signals DAR for MEGUI
# Calculating DAR before crop/resize-with-crop
ColorBars().ConvertToYV12().Trim(0,300) # 640x480
DAR = 16.0/9.0 # Pretend (FULL FRAME) DAR = 16/9 (Choose your variety of poison)
#CROPX = 0 CROPY = 0 CROPW = 0 CROPH = 0
CROPX = 1.3 CROPY = 1.2 CROPW = -1.5 CROPH = -1.1
DAR=GetCropDAR(DAR,CROPX,CROPY,CROPW,CROPH) # Pre-calc New DAR after resize with crop(DAR will change a little due to crop)
LanczosResize(240,400,CROPX,CROPY,CROPW,CROPH)
Subtitle(String(DAR))
SignalDAR(DAR) # Signal DAR to MeGUI
return last
Function GetDAR(clip c, float SAR) { return Float(c.width) * SAR / Float(c.height)} # Gets the DAR from the SAR
Function GetSAR(clip c, float DAR) { return DAR * Float(c.height) / Float(c.width) } # Gets the SAR from the DAR
Function SignalDAR(float DAR) { global MeGUI_darx = Round(1000 * DAR) global MeGUI_dary = 1000 } # Signals DAR for MEGUI
Function GetCropDAR(clip c,float DAR,float "X",float "Y",float "W",float "H") {
# Call prior to Crop/Resize with (possibly fractional) cropping to calc resultant DAR, X,Y,W,H are cropping coords
# DAR = FAR * SAR ::: FAR = DAR / SAR ::: SAR = DAR / FAR
#
X=Float(Default(X,0.0)) Y=Float(Default(Y,0.0)) W=Float(Default(W,0.0)) H=Float(Default(H,0.0))
W=W<=0.0?c.width+W-X:W H=H<=0.0?c.height+H-Y:H
# Irrespective of what various resizers in various Avisynth versions silently correct, we dont allow eg -ve X
Assert(X>=0.0&&X < c.width, "GetCropDAR: Invalid X("+String(X)+")")
Assert(Y>=0.0&&Y < c.height,"GetCropDAR: Invalid Y("+String(Y)+")")
Assert(W> 0.0&&X+W<=c.width, "GetCropDAR: Invalid W("+String(W)+")")
Assert(H> 0.0&&Y+H<=c.height,"GetCropDAR: Invalid H("+String(H)+")")
Return c.GetSAR(DAR) * W / H
}
Intend to use some of above in AVS Template file for DGIndex. Will try to get eg Display Aspect Ratio from
DGIndex and embed it in the AVS file as happens with Video and Audio clip filenames and also the Audio delay.
If only more info could easily be embedded by DGIndex in an AVS template, just because there is no native
aspect ratio stored in AVI files, does not mean that it is totally superfluous in your AVS script.
Also eg, flags for IVTC, Deinterlacing, perhaps even a suggestions for autocrop, all could be provided and embedded
in a template AVS file. To sleep, perchance to dream.
StainlessS
10th June 2012, 19:44
New Version v1.11 - 10 June 2012, see 1st post.
StainlessS
26th June 2012, 21:57
New version v1.12 - 26 June 2012, see 1st post.
Fixed, detects & restores minimized target window, could fail in Executable (not script) when batcher called
via eg desktop shortcut and target is running but minimized (and no other windows open).
Minister
19th September 2013, 18:41
As per our PMs - I set the two debug flags to True, however like all the other changes I made to the au3 file, it ignores them. If I remove the au3 file all together and run batcher it still behaves as though there was an au3 file there.
The content of the ini file I made is as follows, named DGIndexNV_Batcher.ini
[Default]
EXECUTABLE=D:\Video x86\dgdecnv2045\DGIndexNV.exe
MEGUI_BATCHER=H:\Sort\DGIndex_Batcher_20120626\DGIndex_Batcher_20120626\MeGUI_AutoEncode_Batcher.exe
CLIP_DIRECTORY=G:\Blu Ray\
SAVE_DIRECTORY=G:\Blu Ray\
JOIN_FILES=0
JOIN_FROM_ONE=0
AUTO_OVERWRITE=0
AUTO_OVERWRITE_AVS=0
IGNORE_AUDIO_DELAY=0
AUTO_CLOSE=1
BEEPER=0
CALL_MEGUI=0
MEGUI_STOP=0
The ini file it always recreates is as follows
[Default]
EXECUTABLE=C:\NON-INSTALL\DGMpgDec\DGIndex.exe
MEGUI_BATCHER=D:\Video x86\DGIndex_Batcher_20120626\DGIndex_Batcher_20120626 For DGIndexNV\MeGUI_AutoEncode_Batcher.exe
CLIP_DIRECTORY=G:\Blu Ray\
SAVE_DIRECTORY=G:\Blu Ray\
JOIN_FILES=0
JOIN_FROM_ONE=0
AUTO_OVERWRITE=0
AUTO_OVERWRITE_AVS=0
IGNORE_AUDIO_DELAY=0
AUTO_CLOSE=0
BEEPER=1
CALL_MEGUI=0
MEGUI_STOP=0
Here is a link to the modified au3 file
http://www.adrive.com/public/KZSg8k/DGIndex_Batcher.zip
StainlessS
19th September 2013, 23:33
Minister,
Find here fixed (I hope, found a couple of problems) script.
EDIT: LINK REMOVED
Thank you for pointing out the probs.
Give it a whirl, have left debug switched on.
EDIT: Cant test it myself, dont have correct video card.
Minister
20th September 2013, 00:53
I appreciate you trying, but that still doesn't solve the issue. Its as if its reading the au3 file from somewhere else.
As an experiment I deleted all the files except for DGIndex_Batcher.exe. When I ran it it still functioned as though it was reading the default au3 file from somewhere. That kind of thing was what led to me to speculate about rebooting, thinking maybe its reading the original au3 file from cache/temp.
If you have any other suggestions I'd be willing to give it a go.
Thanks
StainlessS
20th September 2013, 03:50
I dont really have a clue what to say.
You have used the 'build' option on menu and are clicking on the exe file ?
Its as if its reading the au3 file from somewhere else.
What does that mean, the IDE is running ?
You running latest version Autoit (about a year old) ?
What OS, 64 bit ?
EDIT: Post log, processing 1 file without calling MeGUI batcher..
Minister
20th September 2013, 13:30
That last post cleared some thing up. When I read your initial post about editing the au3 file what I did was open that file in a text editor, make the changes, then tried to run your DGIndex_Batcher.exe with it. I didn't realize I had to use AutoIt to recompile a new exe.
When I was saying it seemed like the exe was reading the au3 file from somewhere else, I thought everytime the exe was run it read the au3 file for its information.
Now that I've used AutoIt to generate a new exe the batch is partially working. It gets up to the point where it opens DGIndexNV, then after a short bit this error message comes up -
Error on WinWaitActive Failed
Title=[CLASS:DGIndexNV]
Text={
From the log -
Fn_WinActivate '[CLASS:DGIndexNV]','['
Fn_WinWaitActive '[CLASS:DGIndexNV]','[',Timeout=30
!!! WinWait, Does not exist, Timeout ERROR !!! (30 Seconds)
!!! Fn_WinWaitActive FAILED !!!
Fn_ErrMsgBox
Fn_Exit
I used Au3Info.exe on the DGIndexNV.exe when open to see if its CLASS was the appropriate name. It was the same.
I am using Windows 8 Pro x64.
StainlessS
21st September 2013, 16:11
I didn't realize I had to use AutoIt to recompile a new exe
Ah well that clarified a few things in my head, was most confused.
I used Au3Info.exe on the DGIndexNV.exe when open to see if its CLASS was the appropriate name. It was the same.
That was correct thing to do.
Text={
Above from 1st code block is wrong, presume that you copied text by hand as should have read 'Text=[', ie square bracket.
Only thing I can think is that DGIndexNV does not have a visible '[' on the main window. DGIndex does for marking frame range.
I cant even run DGIndexNV as I dont have a required NVidia dll.
Sorry, you'll have to figure it out yourself, or perhaps someone with AutoIt knowledge and an NVidia card could assist.
Perhaps start a new thread for assistance, I'm happy to help where I can but have no real idea what is wrong.
By the way, you might want to try by running DGIndexNV BEFORE running the batcher and see what happens, probably
still error as $MAIN_WN_TXT = "[" will still be used. Maybe try changing $MAIN_WN_TXT to some other text in window
if '[' is not used.
Good luck.
PS, the '[' could (I think) even be replaced by empty string "" as it is only a sort of double check to see it got the
correct window.
PPS, In AutoIt IDE (the better SciTE one not the default built-in one) placing cursor on command and pressing
the F1 function key brings up help on the command.
I did google search on "DGIndexNV.jpg" and it came up with this:
http://www.icordforum.com/wiki/index.php?title=Datei:DGIndexNV.jpg&limit=50
So it looks like "[" should work, dont know why it dont.
EDIT: Perhaps the '[' is a graphic rather than text, try looking for another bit of text.
EDIT: Yep, looks like graphic, change to something else. Perhaps other parts of batcher will fail for same reason.
Minister
21st September 2013, 22:27
Your suggestion about removing the [ worked perfectly. However, liked you predicted, other parts of the batcher did fail.
It got hung up on Step 13, with DGIndexNV stopped at the File List menu. The debug log showed the WinWait did not exist for this window. Using Au3Info I was able to figure out the calls had all moved to 1 capital letter, followed by small letters. So 'DEL ALL' became 'Del All', etc.
I found all of these commands in the script and changed them.
After that was compiled it worked proper!
I went back and changed the au3 file for all the DGIndex references I could find, changed them to DGIndexNV, compiled and tested, and it all seems to work.
Here is a link to download this version. Feel free to offer it with the others ones you share on MediaFire.
http://www.adrive.com/public/uzRvDj/DGIndexNV_Batcher.zip
Give it a look over to see if anything seems off.
Let me know when you downloaded it so I can remove it from my Adrive.
Thanks for the initial batcher, and all your patience with helping me get this to work with DGIndexNV. Much appreciated.
StainlessS
21st September 2013, 22:57
v1.13, 21 Sept 2013
Fixed ini read/write for JOIN_FILES and EXECUTABLE. Changed default Timeout to 300 seconds
See first post.
@Minister
I took a copy of your zip, although as I cannot support, it will not go on MediaFire. You are welcome to put it in a new thread, I'll help where I can.
Alternatively, you could create an attachment in this thread, replace the existing Adrive link if you like.
@ All
It is possible that there will be a new version DGIndex Batcher soon, am currently playing with possibility of inserting text from DGIndex Information
window into the created AVS file.
eg source template
# Standard DGIndex Infos
VideoFileName = "__vid__"
AudioFileName = "__aud__"
AudioDelay = Value("__del__")
# DGIndex_Batcher Infos
DGI_Field_Order = "__Field_Order__"
DGI_Stream_Type = "__Stream_Type__"
DGI_Profile = "__Profile__"
DGI_Frame_Size = "__Frame_Size__"
DGI_Display_Size= "__Display_Size__"
DGI_Aspect_Ratio= "__Aspect_Ratio__"
DGI_Frame_Rate = "__Frame_Rate__"
DGI_Video_Type = "__Video_Type__"
DGI_Sequence = "__Sequence__"
DGI_Frame_Struct= "__Frame_Struct__"
DGI_Frame_Type = "__Frame_Type__"
DGI_Colorimetry = "__Colorimetry__"
DGI_Frame_Rpts = "__Frame_Rpts__"
DGI_Field_Rpts = "__Field_Rpts__"
return colorbars
After batching
# Standard DGIndex Infos
VideoFileName = "C:\T\PAL_I_Top_43_P-Cabaret.d2v"
AudioFileName = "C:\T\PAL_I_Top_43_P-Cabaret T80 2_0ch 224Kbps DELAY -48ms.ac3"
AudioDelay = Value("-0.048")
# DGIndex_Batcher Infos
DGI_Field_Order = "Top"
DGI_Stream_Type = "MPEG2 Program"
DGI_Profile = "main@main"
DGI_Frame_Size = "720x576"
DGI_Display_Size= "720x576"
DGI_Aspect_Ratio= "4:3 [2]"
DGI_Frame_Rate = "25.000000 fps"
DGI_Video_Type = "PAL"
DGI_Sequence = "Field/Frame"
DGI_Frame_Struct= "Frame"
DGI_Frame_Type = "Interlaced"
DGI_Colorimetry = "BT.470-2 B,G"
DGI_Frame_Rpts = "0"
DGI_Field_Rpts = "0"
return colorbars
Minister
21st September 2013, 23:22
I tried uploading it to here, but unfortunately its a little too large, even when compressed at max settings.
For now I'll leave it active on Adrive. Maybe I will make a thread for it sometime soon as you suggested so others could find it more easily.
StainlessS
21st September 2013, 23:27
You could just attach the script file.
Minister
21st September 2013, 23:37
Ah yes.
Here is the script file that one can use in AutoIt to generate a batcher for DGIndexNV. Just load it into Aut2exe and convert.
Thanks again StainlessS
StainlessS
22nd September 2013, 15:31
Minister's attachment is missing the Common\BatchFunctions.au3 file, can be gotten from either
DGIndexBatcher or MeGUI_AutoEncodeBatcher zips.
EDIT: You would need AutoIt to either run the Minister Script under interpreter and best also get
SciITe4AutoIt (also available from AutoIt site), it is a better IDE and editor. To compile into an
independent executable just click on 'Build' on the Tools menu (just a single click, much easier than
using the menu 'Compile' option).
StainlessS
25th September 2013, 03:12
DGIndex Batcher v1.14, see 1st post.
additional doc (GUI setting)
v1.14, 'Insert Infos' insert some stuff from DGIndex Information Window into AVS template file. (See AVS File)
"Correct Illegal Field Transition", causes batcher to give automatic (EDIT: Yes answer, otherwise No) answer to such a dialog box.
Any File causing any out of ordinary behaviour, will be sent to the "SaveDirectory\PROBLEM\" folder
(AVS) and will NOT be sent to MeGUI Auto Encode Batcher if using that utility.
Additional AVS DGIndex Template file:
# Standard DGIndex Infos
VideoFileName = "__vid__"
AudioFileName = "__aud__"
AudioDelay = Value("__del__")
# DGIndex_Batcher Infos
# Stuff from DGIndex Information Window will be inserted into below '__stuff__' insertion markers.
DGI_Field_Order = "__Field_Order__"
DGI_Stream_Type = "__Stream_Type__"
DGI_Profile = "__Profile__"
DGI_Frame_Size = "__Frame_Size__"
DGI_Display_Size= "__Display_Size__"
DGI_Aspect_Ratio= "__Aspect_Ratio__"
DGI_Frame_Rate = "__Frame_Rate__"
DGI_Video_Type = "__Video_Type__"
DGI_Sequence = "__Sequence__"
DGI_Frame_Struct= "__Frame_Struct__"
DGI_Frame_Type = "__Frame_Type__"
DGI_Colorimetry = "__Colorimetry__"
Vid = Mpeg2Source(VideoFileName)
Aud = NicAC3Source(AudioFileName,Channels=2) # In some cases ac3, but use 3 letter extension to determine type.
AudioDub(Vid,Aud)
DelayAudio(AudioDelay)
S= \
"Field Order = " + DGI_Field_Order + "\n" + \
"Stream Type = " + DGI_Stream_Type + "\n" + \
"Profile = " + DGI_Profile + "\n" + \
"Frame Size = " + DGI_Frame_Size + "\n" + \
"Display Size = " + DGI_Display_Size + "\n" + \
"Aspect Ratio = " + DGI_Aspect_Ratio + "\n" + \
"Frame Rate = " + DGI_Frame_Rate + "\n" + \
"Video Type = " + DGI_Video_Type + "\n" + \
"Sequence = " + DGI_Sequence + "\n" + \
"Frame Struct = " + DGI_Frame_Struct + "\n" + \
"Colorimetry = " + DGI_Colorimetry
SubTitle(S,lsp=0,font="Courier New")
Return Last. Trim (100,-500)
Might come out looking something like this:
# Standard DGIndex Infos
VideoFileName = "C:\T\PAL-P_169_P-AeonFlux.d2v"
AudioFileName = "C:\T\PAL-P_169_P-AeonFlux T80 3_2ch 448Kbps DELAY -280ms.ac3"
AudioDelay = Value("-0.280")
# DGIndex_Batcher Infos
DGI_Field_Order = "Top"
DGI_Stream_Type = "MPEG2 Program"
DGI_Profile = "main@main"
DGI_Frame_Size = "720x576"
DGI_Display_Size= "720x576"
DGI_Aspect_Ratio= "16:9 [3]"
DGI_Frame_Rate = "25.000000 fps"
DGI_Video_Type = "PAL"
DGI_Sequence = "Field/Frame"
DGI_Frame_Struct= "Frame"
DGI_Frame_Type = "Progressive"
DGI_Colorimetry = "BT.470-2 B,G"
Vid = Mpeg2Source(VideoFileName)
Aud = NicAC3Source(AudioFileName,Channels=2)
AudioDub(Vid,Aud)
DelayAudio(AudioDelay)
S= \
"Field Order = " + DGI_Field_Order + "\n" + \
"Stream Type = " + DGI_Stream_Type + "\n" + \
"Profile = " + DGI_Profile + "\n" + \
"Frame Size = " + DGI_Frame_Size + "\n" + \
"Display Size = " + DGI_Display_Size + "\n" + \
"Aspect Ratio = " + DGI_Aspect_Ratio + "\n" + \
"Frame Rate = " + DGI_Frame_Rate + "\n" + \
"Video Type = " + DGI_Video_Type + "\n" + \
"Sequence = " + DGI_Sequence + "\n" + \
"Frame Struct = " + DGI_Frame_Struct + "\n" + \
"Colorimetry = " + DGI_Colorimetry
SubTitle(S,lsp=0,font="Courier New")
Return Last. Trim (100,-500)
EDIT: Other Infos dont seem terribly useful.
EDIT: The above, "DGI_Field_Order = 'Top'" is gotten from a few second Preview in DGIndex as it is not available
in the Indexing Information Window (and may well be wrong if a Field Order Transition dialog box is issued).
EDIT: Tested on 60 ~350MB ffmpeg VOB cuts, Indexed in DGIndex Batcher, and auto sent through MeGUI
AutoEncode Batcher, and on to MeGUI with all 60 VOB's converted to mp4 automatically (EDIT: Only 500 frames trim mp4'ed per VOB).
StainlessS
23rd February 2015, 13:42
New version v1.15, see 1st post.
StainlessS
2nd June 2015, 01:37
New Version v1.16, See 1st post.
v1.16, 02 June 2015. Allow some special characters in filenames eg '#!+'.
StainlessS
6th February 2016, 12:34
DGIndex Batcher v1.17, Re-compile with AutoIt v3.3.14.2, see 1st post.
StainlessS
17th April 2018, 15:03
DGIndex Batcher v1.18, Re-compile with AutoIt v3.3.14.5, see 1st post.
Danette
18th January 2021, 14:43
First: great tool! I've been using it, frequently, for years.
I just tried using the new version of DGMPGDec v2.0.00 (placed in the DGIndex folder ). However, DGIndex Batcher freezes during the second preview scan.
Is it worth pursuing this further, i.e.; does the new DGMPGDec v2.0.00 give significantly better performance than the 1.5.8 with DGIndex Batcher?
videoh
18th January 2021, 16:20
DGMPGDec is now at version 2002. DGIndex is twice as fast so it will be worth getting things working.
@SS
Please let me know if I need to fix anything.
real.finder
18th January 2021, 16:57
DGMPGDec is now at version 2002. DGIndex is twice as fast so it will be worth getting things working.
@SS
Please let me know if I need to fix anything.
nice, did it has DGMPGDec-158-mod-src_20171024 (https://www.solidfiles.com/v/nDLjG8yqPrM7Z) changes?
also, since BlindPP is part of it, the update added HBD to it?
kedautinh12
18th January 2021, 17:33
DGMPGDec is now at version 2002. DGIndex is twice as fast so it will be worth getting things working.
@SS
Please let me know if I need to fix anything.
I think DGMPGDec 2.0.0.2 still read file slower than MPEG2DecPlus
videoh
18th January 2021, 18:10
nice, did it has DGMPGDec-158-mod-src_20171024 (https://www.solidfiles.com/v/nDLjG8yqPrM7Z) changes? Sorry, never heard of that. My new version (based on fork from Asd-g) has:
* Speed-optimized DGIndex (32-bit).
* 64-bit DGDecode that supports Avisynth2.6/Avisynth+/Vapoursynth in a single DLL.
also, since BlindPP is part of it, the update added HBD to it? No. If you want that make a request at my forum. The 64-bit DGDecode does not include BlindPP, IIRC.
I think DGMPGDec 2.0.0.2 still read file low than MPEG2DecPlus Still read the file low? If you can restate that in understandable English, I might be able to answer. Thank you.
real.finder
18th January 2021, 18:56
No. If you want that make a request at my forum. The 64-bit DGDecode does not include BlindPP, IIRC.
yes, it needed in some functions like FunkyDeBlock and SoftSharpen https://forum.doom9.org/showpost.php?p=1924917&postcount=264
I just try register in your forum but didn't get an email
videoh
18th January 2021, 19:04
Must be your spam blocker. Several people successfully registered in the last few days. Anyway, I manually activated your account and will send the password to you by PM. Your history earns you immediate Moose Approved status.
Please make a new thread in the DGMPGDec subforum. Thank you.
I also recommend subscribing to the Binaries Update Notification Thread.
StainlessS
18th January 2021, 21:42
Danette,
Bit busy at the moment, I'll try get around to it either tomorrow or Wednesday,
probably something reasonably simple to deal with [need mod and re-compile].
.
@VH,
Please let me know if I need to fix anything.
ThankYou.
I'm guessin' that I just have to make a few changes that will continue to work on old version and also new [hopefully].
Is probably something to do with change in button index or text on button or something like that.
[Vista swapped around button index's on FileSelector, so that index of OK and CANCEL were swapped over, we happily clicked on CANCEL all of the time :(
maybe in different ie MeGUI Batcher, or possible DGIndex batcher, not sure, maybe both]
Danette
18th January 2021, 23:55
StainlessS,
I appreciate the interest and effort. Hopefully, it's an obvious and minor tweak.
kedautinh12
19th January 2021, 00:14
Sr, i mean read file .vob slower than MPEG2DecPlus
videoh
19th January 2021, 03:44
Any evidence for that? Sounds doubtful to me.
kedautinh12
19th January 2021, 20:46
I checked speed of creat file .d2v of DGMPGDec and MPEG2DecPlus. I seen MPEG2DecPlus creat file .d2v faster than DGMPGDec. So i think DGMPGDec read file .vob slower than MPEG2DecPlus
videoh
19th January 2021, 21:45
Last time I checked MPEG2DecPlus contained only the filter DLL. Please link me to the MPEG2DecPlus indexing component that you claim is faster than my DGIndex 2.0.0.3.
wonkey_monkey
19th January 2021, 22:17
I checked speed of creat file .d2v of DGMPGDec and MPEG2DecPlus. I seen MPEG2DecPlus creat file .d2v faster than DGMPGDec. So i think DGMPGDec read file .vob slower than MPEG2DecPlus
Which did you do first?
If you have enough RAM, the entire file may end up being cached by the operating system, so whichever you do last will be faster.
I wrote myself a small utility to preload files so I could scrub through them quicker. It just reads the entire file in 16mb chunks and then closes - the OS then has the file cached for when I open it, either directly into VirtualDub or via DGMpgDec, and seeking is much quicker.
videoh
19th January 2021, 22:48
That's a great point of course, but let's find out exactly what indexers he is comparing.
kedautinh12
20th January 2021, 00:23
I used ver MPEG2DecPlus 0.1.2 from here and replaced DGMPGDec 2.0.0.3 from megui x64 (deleted DGDecode.dll and rename MPEG2DecPlus.dll to DGDecode.dll)
https://github.com/Asd-g/MPEG2DecPlus/releases
kedautinh12
20th January 2021, 00:47
And here is 1.5.8mod and have many change from original 1.5.8 ver
https://github.com/maki-rxrz/DGMPGDec
videoh
20th January 2021, 00:56
I used ver MPEG2DecPlus 0.1.2 from here and replaced DGMPGDec 2.0.0.3 from megui x64 (deleted DGDecode.dll and rename MPEG2DecPlus.dll to DGDecode.dll)
https://github.com/Asd-g/MPEG2DecPlus/releases
That does not include DGIndex! The plugin DLL does not create the D2V file. I don't know, are you just confused?
And here is 1.5.8mod and have many change from original 1.5.8 ver
https://github.com/maki-rxrz/DGMPGDec
I'll look at it, but that is not MPEG2DecPlus, and you did not mention any results with this one. I'll call your bluff, please give me the link to the binary that you tested.
Remember, you said:
I checked speed of creat file .d2v of DGMPGDec and MPEG2DecPlus. What game are you playing?
real.finder
20th January 2021, 01:01
And here is 1.5.8mod and have many change from original 1.5.8 ver
https://github.com/maki-rxrz/DGMPGDec
is it the same as http://www.solidfiles.com/v/nDLjG8yqPrM7Z ?
edit: it seems they are from the same person (maki) https://www.solidfiles.com/v/vzLGwZ2vpzNym
videoh
20th January 2021, 01:49
is it the same as http://www.solidfiles.com/v/nDLjG8yqPrM7Z ?
edit: it seems they are from the same person (maki) https://www.solidfiles.com/v/vzLGwZ2vpzNym Looks like it. My understanding is that the main reason for the fork was to support Japanese. Nevertheless, let's have a shootout!
No binaries in there, so hopefully kedautinh12 will give us a link to the binary he used.
EDIT: Looks like you already built this real.finder:
https://forum.doom9.org/showpost.php?p=1782576&postcount=15
real.finder
20th January 2021, 02:03
EDIT: Looks like you already built this real.finder:
https://forum.doom9.org/showpost.php?p=1782576&postcount=15
that old one, here the one of 2017 https://www.solidfiles.com/v/xZLWLGM6r5LZg
edit: seems I already added this one to that old post
kedautinh12
20th January 2021, 02:05
I use same DGIndex.exe in DGMPGDec, only replaced DGDecode.dll with MPEG2DecPlus.dll and rename MPEG2DecPlus.dll to DGDecode.dll. I tested index .vob file with megui x64 and seen speed index of DGIndex.exe with MPEG2DecPlus.dll (changed name to DGDecode.dll) faster than original DGDecode.dll
videoh
20th January 2021, 02:06
My test results for MacGyver DVD. SSD->SSD.
DGIndex 2.0.0.3: 40 seconds
DGIndex maki: 107 seconds
Will kedautinh12 clarify matters or just admit that he was huffing. Who knows, maybe he actually meant frame-serving speed with the DLL. I just don't see any magic changes in the maki stuff.
kedautinh12
20th January 2021, 02:07
I was binary it with msvc 2019
https://drive.google.com/file/d/1nbxC2NO-bK-tu-d7Ew-zWSsCDa02TILk/view?usp=drivesdk
videoh
20th January 2021, 02:09
I use same DGIndex.exe in DGMPGDec, only replaced DGDecode.dll with MPEG2DecPlus.dll and rename MPEG2DecPlus.dll to DGDecode.dll. I tested index .vob file with megui x64 and seen speed index of DGIndex.exe with MPEG2DecPlus.dll (changed name to DGDecode.dll) faster than original DGDecode.dllOK, that's it, you are just terribly confused (rules won't let me say stupid). How can the same DGIndex index at different rates? The DLL doesn't come into the picture until after the indexing. To be charitable, perhaps wonkey_monkey's point is applicable, i.e., you got burned by OS and disk caching. Be gracious enough to admit it.
It's pretty low class to spread FUD based on your own confusion and cluelessness. Did you ever develop anything? If so, tell me what so I can run around slagging it off with no reason. People like you disgust me. I work so hard on this free stuff. I'll accept your apology, if you care to give it. And if you don't, well, there's an acronym that rhymes with TOAD.
Just in case you really care, DGIndex 2.0.0.3 blows away all these forks and clones. One example:
DGIndex 2.0.0.3: 40 seconds
DGIndex maki: 107 seconds
kedautinh12
20th January 2021, 02:10
My test results for MacGyver DVD. SSD->SSD.
DGIndex 2.0.0.3: 40 seconds
DGIndex maki: 107 seconds
Will kedautinh12 clarify matters or just admit that he was huffing. Who knows, maybe he actually meant frame-serving speed with the DLL. I just don't see any magic changes in the maki stuff.
I don't say DGIndex Maki faster, i only say MPEG2DECPLUS faster when replace MPEG2Decplus.dll with DGDecode.dll and rename MPEG2Decplus.dll to DGDecode.dll
videoh
20th January 2021, 02:23
You were talking about indexing and creating the D2V. That has nothing to do with the DLL. And as I said several times, MPEG2DecPlus only includes the DLL. Are you now saying it is the Avisynth frame serving that is faster? That's not going to work because DGDecode 2.0.0.3 is based off of MPEG2DecPlus (thank you and hat-tip to Asd-g!). All I did was cosmetics and add Vapoursynth support. People were asking for an official DG version. There simply is no magic code in MPEG2DecPlus versus DGMPGDec as far as the DLL is concerned.
So what are you talking about?
Basically, I think you are either a liar, totally clueless, or a never-DG guy. Pitiful.
See ya. Got real work to do to further improve the awesome DGMPGDec for free for the masses. Everybody can see what is going on, I don't have to belabor it.
videoh
20th January 2021, 02:44
I was binary it with msvc 2019
https://drive.google.com/file/d/1nbxC2NO-bK-tu-d7Ew-zWSsCDa02TILk/view?usp=drivesdk He says he wasn't talking about the maki stuff, but gives us a link to maki's stuff. It's like Monty Python. Good for a laugh I suppose. Ha ha!
kedautinh12
20th January 2021, 03:05
He says he wasn't talking about the maki stuff, but gives us a link to maki's stuff. It's like Monty Python. Good for a laugh I suppose. Ha ha!
Now I'm really outta here.
I only give Maki stuff cause i think he changed many thing after Chikuzen stop updated MPEG2DecPlus and Asd-g continue updated with some change. I encourage you need complex with 2 ver MPEG2DecPlus by Asd-g and DGMPGDecMod by Maki to be new DGMPGDec with many changed.
Changed from maki:
DgDecode: https://onedrive.live.com/?cid=8658EC275D9699D5&id=8658EC275D9699D5%213472&parId=8658EC275D9699D5%211215&o=OneUp
DgIndex: https://onedrive.live.com/?cid=8658EC275D9699D5&id=8658EC275D9699D5%213471&parId=8658EC275D9699D5%211215&o=OneUp
Dgvfpai https://onedrive.live.com/?cid=8658EC275D9699D5&id=8658EC275D9699D5%213511&parId=8658EC275D9699D5%211215&o=OneUp
kedautinh12
20th January 2021, 03:12
After i test again with DGMPGDec and MPEG2DecPlus. I compare speed index and it's same. I don't know why speed different yesterday. Sr, it's my mistake. Please forgive me
real.finder
20th January 2021, 03:16
I only give Maki stuff cause i think he changed many thing after Chikuzen stop updated MPEG2DecPlus and Asd-g continue updated with some change. I encourage you need complex with 2 ver MPEG2DecPlus by Asd-g and DGMPGDecMod by Maki to be new DGMPGDec with many changed.
Changed from maki:
DgDecode: https://onedrive.live.com/?cid=8658EC275D9699D5&id=8658EC275D9699D5%213472&parId=8658EC275D9699D5%211215&o=OneUp
DgIndex: https://onedrive.live.com/?cid=8658EC275D9699D5&id=8658EC275D9699D5%213471&parId=8658EC275D9699D5%211215&o=OneUp
Dgvfpai https://onedrive.live.com/?cid=8658EC275D9699D5&id=8658EC275D9699D5%213511&parId=8658EC275D9699D5%211215&o=OneUp
in fact Maki was the 1st one then Chikuzen frok from Maki and did many changes and cleanup in MPEGDec part and call it MPEG2DecPlus, then Chikuzen stopped, and finally Asd-g did frok from Chikuzen and change the name to D2VSource after remove DeBlock and any thing else a side from MPEGDec
videoh
20th January 2021, 03:18
After i test again with DGMPGDec and MPEG2DecPlus. I compare speed index and it's same. I don't know why speed different yesterday. Sr, it's my mistake. Please forgive me MPEG2DecPlus does not have an indexer! You could not have compared DGIndex 2.0.0.3 to a nonexistent thing. Sheesh, how many times do I have to say it.
Still, I accept your apology. Thank you.
And I will say it again: DGIndex 2.0.0.3 blows away the other forked indexers.
kedautinh12
20th January 2021, 03:32
in fact Maki was the 1st one then Chikuzen frok from Maki and did many changes and cleanup in MPEGDec part and call it MPEG2DecPlus, then Chikuzen stopped, and finally Asd-g did frok from Chikuzen and change the name to D2VSource after remove DeBlock and any thing else a side from MPEGDec
Oh, i seen Chikuzen stop update from 2016/09/01 and Maki still update continue untill 2017, you can seen it in changelog file
kedautinh12
20th January 2021, 03:33
MPEG2DecPlus does not have an indexer! You could not have compared DGIndex 2.0.0.3 to a nonexistent thing. Sheesh, how many times do I have to say it.
Still, I accept your apology. Thank you.
And I will say it again: DGIndex 2.0.0.3 blows away the other forked indexers.
Yeah, i seen, thank for your hard work
StainlessS
23rd January 2021, 02:27
Danette,
Bit busy at the moment, I'll try get around to it either tomorrow or Wednesday,
probably something reasonably simple to deal with [need mod and re-compile].
Sorry Danette, still not gotten around to it yet, been trying to coax myself into feeling the AutoIt vibe, but I just ain't feelin' it.
I'll try do it tomorrow, no really I will.
Time for Bed.
Danette
23rd January 2021, 18:55
Thanks.
StainlessS
24th January 2021, 01:15
It on its way, but still got some things to do, sorry for the delay.
StainlessS
24th January 2021, 06:29
Danette,
See SendSpace below this post.
I've updated both DGIndex_Batcher and MeGUI_AutoEncode_Batcher,
have not used either for some time, MeGUI changed "Settings" dialog to "Options", which broke MeGUI batcher, fixed [should work on pre build 2896 also].
Made a few additions to the DGIndex AVS template.
As So [just demo really].
# Standard DGIndex Infos
VideoFileName = "__vid__"
AudioFileName = "__aud__"
AudioDelay = Value("__del__")
# DGIndex_Batcher Infos
# Stuff from DGIndex Information Window will be inserted into below '__stuff__' insertion markers.
DGI_Field_Order = "__Field_Order__"
DGI_Stream_Type = "__Stream_Type__"
DGI_Profile = "__Profile__"
DGI_Frame_Size = "__Frame_Size__"
DGI_Display_Size= "__Display_Size__"
DGI_Aspect_Ratio= "__Aspect_Ratio__"
DGI_Frame_Rate = "__Frame_Rate__"
DGI_Video_Type = "__Video_Type__"
DGI_Sequence = "__Sequence__"
DGI_Frame_Struct= "__Frame_Struct__"
DGI_Frame_Type = "__Frame_Type__"
DGI_Colorimetry = "__Colorimetry__"
Mpeg2Source(VideoFileName)
AudioExt = GetFileExtension(AudioFileName)
Aud= (AudioExt==".ac3") ? NICAC3Source(AudioFileName,channels=2,DRC=0)
\ : (AudioExt==".mpa"||AudioExt=="mp1"||AudioExt==".mp2"||AudioExt==".mp3") ? NicMPG123Source(AudioFileName,Normalize=False)
\ : (AudioExt==".wav") ? RaWavSource(AudioFileName)
\ : (AudioExt==".dts") ? NicDTSSource(AudioFileName)
\ : 0
#Assert(!isInt(Aud),"NO AUDIO")
(!isInt(Aud)) ? AudioDubEx(Aud).DelayAudio(AudioDelay).Trim(0,0) : NOP # Trim, chop/add audio to length
(!isInt(Aud) && AudioRate() <> 44100) ? ResampleAudio(44100) : NOP
S= \
"Field Order = " + DGI_Field_Order + "\n" + \
"Stream Type = " + DGI_Stream_Type + "\n" + \
"Profile = " + DGI_Profile + "\n" + \
"Frame Size = " + DGI_Frame_Size + "\n" + \
"Display Size = " + DGI_Display_Size + "\n" + \
"Aspect Ratio = " + DGI_Aspect_Ratio + "\n" + \
"Frame Rate = " + DGI_Frame_Rate + "\n" + \
"Video Type = " + DGI_Video_Type + "\n" + \
"Sequence = " + DGI_Sequence + "\n" + \
"Frame Struct = " + DGI_Frame_Struct + "\n" + \
"Colorimetry = " + DGI_Colorimetry
SubTitle(S,lsp=0,font="Courier New")
FAR = (DGI_Aspect_Ratio=="16:9 [3]") ? 16/9.0 : (DGI_Aspect_Ratio=="4:3 [2]") ? 4/3.0 : 1
Eval( (FAR!=1) ? "MeGUI_DarX=Round(FAR*1000) MeGUI_DarY=1000" : "" )
Return Last
##########
Function GetFileExtension(string fn) { rfn=fn.RevStr i=rfn.FindStr(".") Return (i==0) ? "" : rfn.LeftStr(i).RevStr }
Gonna get some shuteye, sorry for the long delay.
Let me know how it goes and if probls, I'll not update the first post until I hear if its working ok, is tedious and time consuming
to test everything, especially as I eg dont have Vista to re-check its probs, nor illegal field transition DVD's handy and the like.
EDIT: zip contains both batchers, + source.
Final test on full DVD, 5 VOB's, using the DGIndex template and passing though to MeGUI Batcher and did full encode also, although at Ultra Fast setting.
videoh
24th January 2021, 11:40
Not seeing a SendSpace link.
gonca
24th January 2021, 14:44
It is in the signature
StainlessS
Your finger must have slipped when you typed MeGUI, it came out MedGUI
videoh
24th January 2021, 14:57
I don't see a signature. Where is it?
If for some reason signatures do not show for all users, it's better not to put your links there!
I have no idea why signatures are not displayed for me. Google it, I'm not the only one reporting no signatures showing.
videoh
24th January 2021, 15:36
Never mind. I had signature display disabled in my profile. And I don't recall doing that!
Still, that's a good reason not to put your links exclusively in your signature.
StainlessS
24th January 2021, 16:36
Thank you gonca and vh,
Post was only intended for danette.
EDIT: Seems to work OK on old DGIndex and new one.
videoh
24th January 2021, 17:27
Seems to work OK on old DGIndex and new one. Thanks for your tweak!
Danette
24th January 2021, 22:58
When DGIndex 2.0.0.3 is set to normal playback speed, DGIndex Batcher 1.20 processes files about 5% faster than when DGIndex 1.5.8 was set to maximum playback speed and DGIndex Batcher 1.18 was used. I ran 37 files (each file is a 25 minute TV episode), several times, and found this to hold.
However, when DGIndex 2.0.0.3 is set to maximum speed, DGIndex Batcher 1.20 freezes after 1-2 episodes, most often during processing of the first episode. I tried many times and rebooted my Win 7 computer, as well.
StainlessS
24th January 2021, 23:07
Did not even know it had a playback speed thingy.
Probably Batcher is waiting for something that has already happened, I'll take a look.
Thanks.
EDIT: So you are saying that it creates d2v file faster when on fast playback ?
or does it hang when its doing the preparatory preview scan to get info from the Information window.
EDIT: Do you have it doing the insert Infos whotsit, ie preview scan? [as in, insert into Template thingy]
EDIT: Also, you're doing ordinary Mpegs, not joining vobs from DVD ?
EDIT: It works OK without the fast Preview scan option set in DGIndex ?
EDIT: What exact setting do you have in the GUI ?
EDIT: Does the preview finish entirely, [ie real small clip, and fast machine] when it stalls ?
Is it stalling on eg VIDEO_TS.VOB or VTS_01_0.IFO, ie on VERY SHORT menu ?
Danette
25th January 2021, 02:59
Yes, the playback speed is under “Options”. I’ve also run a number of different tests comparing the two versions.
As far as a comparison of DGIndex 2.0.0.3 to DGIndex 1.5.8 goes, I don’t see where there is a speed improvement in DGIndex viewing itself. When I run a preview, DGIndex 1.5.8 consistently runs 20% faster - repeat: the old version is faster. The “save project” function is 30% faster on DGIndex 1.5.8 vs. DGIndex 2.0.0.3. Is the speed improvement delivered at the d2v processing point in Avisynth as a result of an improved d2v file (which would be great)?
When I run DGIndex 2.0.0.3 / DGIndex Batcher 1.20 on the 37 files, I get a 5% faster time than when using DGIndex 1.5.8 / DGIndex Batcher 1.18. How this can be, in view of the above paragraph, I have no idea. The time, and the time difference, is the same no matter what speed setting I use in both versions. However, when I use the “maximum” speed setting in DGIndex 2.0.0.3, that causes the crash in DGIndex Batcher 1.20. When I use the “maximum” speed setting in DGIndex 1.5.8, there is no crash in DGIndex Batcher 1.18. When I use the “normal” or “slow” speed settings in DGIndex 2.0.0.3, there is no crash in DGIndex Batcher 1.20.
After thinking about this, since there seems to be little difference in the time it takes to process files with DGIndex Batcher 1.20 vs. DGIndex Batcher 1.18, I don’t see any reason to have either version of DGIndex’s playback speed set at “maximum.” In fact, I’m not clear on what benefit there is to moving up from DGIndex 1.5.8 to DGIndex 2.0.0.3 (unless there is a resultant d2v file processing uptick). If anyone can clarify, I’d be very interested.
Answering the other questions you asked:
- Join sets must start from 1, insert info and correct field order transition are checked (same as in DGIndex Batcher 1.18).
- When it hangs, it does so just as the second scan of a file begins. Sometimes it gets through several files ok, before it hangs on the next file.
- Did I answer the question on the exact GUI setting?
- I’m processing MPEG files only.
StainlessS
25th January 2021, 04:49
Make sure that you have all settings identical in both versions of DGIndex.
I've been making some Mpeg files [re-encoded from MP4], I'll test some tomorrow.
Here, small mod to the template script, does not show Info subtitles if Batcher Insert Info is not turned on.
Make this change to subtitle Line
S= \
"Field Order = " + DGI_Field_Order + "\n" + \
"Stream Type = " + DGI_Stream_Type + "\n" + \
"Profile = " + DGI_Profile + "\n" + \
"Frame Size = " + DGI_Frame_Size + "\n" + \
"Display Size = " + DGI_Display_Size + "\n" + \
"Aspect Ratio = " + DGI_Aspect_Ratio + "\n" + \
"Frame Rate = " + DGI_Frame_Rate + "\n" + \
"Video Type = " + DGI_Video_Type + "\n" + \
"Sequence = " + DGI_Sequence + "\n" + \
"Frame Struct = " + DGI_Frame_Struct + "\n" + \
"Colorimetry = " + DGI_Colorimetry
(DGI_Field_Order != "__Field_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
Danette
25th January 2021, 14:35
Thanks, I made the addition.
Unfortunately, after further use, I'm finding that it freezes constantly, even at slower speed settings.
StainlessS
25th January 2021, 15:12
D,
Find DGIndex_Batcher_DEBUG.7z on SendSpace,
Debug Version, produces a Log file in same directory as exe.
Can you run it, and when freeze, press "SHIFT/CTRL/ALT/PAUSE, to exit batcher.
PAUSE on one of my keyboards requires pressing of a BLUE Fn key [so on that keyboard is 5 keys].
[PAUSE on its own pauses the batcher, and shows "Batcher Paused" type floating ToolTip, and again Un-Pauses it.]
Post the log somewhere please.
EDIT: Its almost certainly not "Frozen", its waiting for something to happen, I need to know what its waiting for.
videoh
25th January 2021, 15:48
@SS
Don't know if it is relevant but during indexing the newer version does not populate some of the Info dialog fields that were previously populated. Probably irrelevant because how could you query them in any case?
StainlessS
25th January 2021, 16:43
OK, thanks.
Perhaps a timing thing, eg trying to get infos before are populated, need longer delay before getting them.
What infos are missing, several from top, or maybe several from bottom of Information window. [missing contiguous ?]
It queries the text labels direct from the Information Window text box.
A bit clever is AutoIt, began life as an OS Setup/Rollout config utility, massive number of libraries for all manner of tasks, eg Regular Expression matching.
AutoIt is quite like BASIC, except that main bugbear is all variables and constants are prefixed with a Dollar, eg $SomeVar.
EDIT: Vh, Is yours a fast machine, and what OS. I cannot test on my i7-8700, still not got it setup final yet, still messing with
editing/testing W10Home Setup ISO via NTLite (Free Version).
Also just got Win ToolKit, same type Vista -> W10 ISO editor, but totally Free, seems to be Open Source, from WinCert home,
You need to have a WinCert account to access some Win Toolkit stuff there, but source seems to live on github.
Win Toolkit available from MajorGeeks + many more.
EDIT: We need delays for a reason, and setting Preview Speed to Maximum could well f*** that up a bit, some of it is a juggling act.
EDIT: List of Windows Setup ISO remastering software:- https://en.wikipedia.org/wiki/List_of_remastering_software
NLite is W2000, XP, Server 2003, XP x64
NTLite is Vista -> W10 from same guys.
Eg Remove ie11, Cortana, Win defender, XBox Stuff, + much more from W10. Add Updates, + Drivers, Settings and Registry Config, Unattended setup, user name etc.
EDIT: How to Make an Unofficial Windows 7-10 Version - NTLite Tutorial -26 Demo [YouTube] :- https://www.youtube.com/watch?v=XkZlado4q5M
EDIT: If you have AutoIt compiler, and the Scite editor for it, you can run batcher as a script or compiled executable.
If you set these two lines near beginning to true, will produce Debug Output, showing what it is doing, or waiting for,
the debug output stuff is implemented by me, and mosting comes from the ".\Common\BatchFunctions.au3" source code.
Just press F5 in Scite AutoIt IDE to run as script, or F7 to compile to executable.
The Au3Info.Exe tool in Scite IDE Tools Menu, shows info about ANY Windows Window, text box control, button Control etc,
and is how you find the ID type stuff to access text from a window text Edit box, etc. [Can run Au3Info.exe on its own without IDE for any window info].
EDIT: Oops, forgot the 2 debug lines.
Global Const $OUTBUG = True ; Debug output to console window (development environment only).
Global Const $WriteDebugFile = True ; Also requires $OUTBUG=true: SWITCH OFF FOR RELEASE VERSION
EDIT:This is the section accessing Information Windows infos
If $INSERT_INFOS <> 0 Then
If $SkipInfos = 0 Then
Sleep(50)
Dim $AVSIN = Fn_AppendSlash($SAVE_DIRECTORY) & $OutName & '.avs'
Fn_ConsoleWrite('STEP_50 Checking for Existing avs file: ' & $AVSIN)
If FileExists($AVSIN) Then
Dim $AVSTMP = Fn_AppendSlash($SAVE_DIRECTORY) & '~' & $OutName & '.avs'
Dim $handle_in = FileOpen($AVSIN, 0) ; Open for read
If ($handle_in <> -1) Then
Dim $handle_out = FileOpen($AVSTMP, 1) ; Open for write
If ($handle_out <> -1) Then
Fn_ConsoleWrite('STEP_51 Editing AVS File')
While 1
Dim $Txt = FileReadLine($handle_in)
If @error = -1 Then
FileClose($handle_in)
FileClose($handle_out)
Fn_ConsoleWrite('STEP_52 Renaming Edited AVS File: ')
FileMove($AVSTMP, $AVSIN, 1) ; MOVE, overwrite existing
ExitLoop
EndIf
Dim $OrgTxt = $Txt
Dim $TxtEdited = 0
For $si = 0 To UBound($DGISTR, 2) - 1
Dim $StatName = '__' & $DGISTR[0][$si] & '__'
Dim $StatVal = $Status[$si]
Dim $off = StringInStr($Txt, $StatName, 2) ; search '__string__' case insignificant
If $off > 0 Then
Dim $Lft = StringLeft($Txt, $off - 1)
Dim $Rgt = StringMid($Txt, $off + StringLen($StatName))
$Txt = $Lft & $StatVal & $Rgt
EndIf
Next
FileWriteLine($handle_out, $Txt)
If $TxtEdited <> 0 Then
Fn_ConsoleWrite(' '' & $OrgTxt & '' EDITED to '' & $Txt & ''')
EndIf
WEnd
Fn_ConsoleWrite('STEP_53 Editing AVS ALL DONE.')
Else
Fn_ConsoleWrite('STEP_54 Cannot open for WRITE AVS file: ' & $AVSTMP)
FileClose($handle_in)
EndIf
Else
Fn_ConsoleWrite('STEP_55 Cannot open for READ AVS file: ' & $AVSIN)
EndIf
Else
$Infos = $Infos & 'Not Inserting Infos, File Does Not EXIST ' & $OutName & '.avs' & @CRLF
Fn_ConsoleWrite('STEP_56 avs file does NOT Exist: ' & $AVSIN)
EndIf
Else
$Probs = $Probs & 'Not Inserting Infos into ORIGINAL EXISTING ' & $OutName & '.avs' & @CRLF
Fn_ConsoleWrite('STEP_57 Not Inserting Infos into EXISTING ' & $OutName & '.avs')
EndIf
Else
Fn_ConsoleWrite('STEP_58 Not Inserting Infos into ' & $OutName & '.avs')
EndIf
StainlessS
25th January 2021, 17:55
OK, just had it hang for me too,
but, is not the batcher that is hanging, is DGIndex [is it same for you Danette ?, see image below]
This was last few lines of Batcher Debug output before DGIndex hang.
STEP_38 Checking for Audio Delay Warning
Fn_WinWaitActive "Audio Delay Warning","OK",Timeout=1
!!! WinWait, Does not exist, Timeout ERROR !!! (1 Seconds)
STEP_41 Audio Delay Warning, dialog did NOT appear
STEP_41 Wait for Information Window to appear
Fn_WinActivate "Information",""
Fn_WinWaitActive "Information","",Timeout=300
Fn_WinWaitActive: "Information","" Testing for Window Minimized State
SHIFT+CTRL+ALT+PAUSE Batcher Terminated # I Clicked SHIFT/CTRL/ALT/PAUSE to terminate batcher at this point, DGINdex still not responding.
Fn_Exit
ToolTip OFF
HOTKEYS OFF
Fn_Exit: @ExitMethod="Close by Exit function" @Exitcode=0
Fn_Exit: Closing DebugFile
what it looks like after batcher terminated, information window still not populated.
https://i.postimg.cc/9rv0tgLY/DGIndex.jpg (https://postimg.cc/9rv0tgLY)
This is the Function in Batcher that was active when DGIndex froze [ in ".\Common\BatchFunctions.au3" ]
Func Fn_WinWaitActive($Title, $Text = '', $Timeout = $DEFAULT_WAIT_TIMEOUT)
; Pauses execution of the script until the requested window exists, also activates and waits until actually activated.
; Sets Window ON-TOP and then removes the ON-TOP-ness. On timeout, returns error and no retry.
; Return 1 on success, 0 on Error with @error = 1
$BUGZZ += 1
Fn_ConsoleWrite('Fn_WinWaitActive "' & $Title & '","' & $Text & '",Timeout=' & $Timeout)
If $Timeout < 1 Then
$Timeout = 1
Fn_ConsoleWrite(' !!! Fn_WinWaitActive, Timeout < 1 (forever), corrected to 1 !!!')
EndIf
Local $Hand, $E
$Hand = WinWait($Title, $Text, $Timeout)
If $Hand = 0 Then
$BUGZZ -= 1
Fn_ConsoleWrite(' !!! WinWait, Does not exist, Timeout ERROR !!! (' & $Timeout & ' Seconds)')
SetError(1)
Return 0 ; Does not exist and timed out
EndIf
Fn_ConsoleWrite('Fn_WinWaitActive: "' & $Title & '","' & $Text & '"' & ' Testing for Window Minimized State')
Local $state = WinGetState($Title, $Text)
If BitAND($state, 16) Then
Fn_ConsoleWrite('Fn_WinWaitActive: "' & $Title & "','" & $Text & '"' & ' Restoring Window from Minimized State')
WinSetState($Title, $Text, @SW_RESTORE)
EndIf
If Not WinActive($Hand, $Text) Then
$E = WinActivate($Hand)
If $E = 0 Then
Fn_ConsoleWrite(' !!! WinActivate Activate FAILED !!!')
EndIf
EndIf
$E = WinWaitActive($Hand, $Text, $Timeout)
If $E = 0 Then
Fn_ConsoleWrite(' !!! WinWaitActive Timeout ERROR !!! (' & $Timeout & ' Seconds)')
SetError(1)
Else
; This will first force the window on-top and then remove the on-top flag.
; Purpose to ensure that the window we are interested in is 'clickable' etc, but does not remain FORCED on-top.
WinSetOnTop($Hand, $Text, 1) ; Force to front
WinSetOnTop($Hand, $Text, 0) ; Switch it OFF again
EndIf
$BUGZZ -= 1
If $E <> 0 Then $E = 1 ; Convert handle to 1 # EDIT: Should read convert Error to 1, ie success
Return $E
EndFunc ;==>Fn_WinWaitActive
Above line in blue is last debug message before we try to ascertain Windows State
Local $state = WinGetState($Title, $Text)
Which it dont seem to return from, DGndex is frozen.
My Settings [happend on batching single Mpeg2, about 3500Kb video,716x576, 25 minutes PAL].
https://i.postimg.cc/gw3gk7TS/Untitled-00.jpg (https://postimg.cc/gw3gk7TS)
EDIT: I had DGindex Preview Speed set at maximum.
videoh
25th January 2021, 20:15
Looks like your app has crashed DGIndex. OK. I won't have the time to get into your software, AutoIT, and all that. So tell, me how are you invoking DGIndex and with what command lines, input, etc.? Are you trying to query the Info dialog window? The more details you can give me about how you use DGIndex, the better.
If you are waiting for the Info window, don't forget that you can disable it in the settings.
I have a 7700K with all SSDs.
StainlessS
25th January 2021, 20:58
only execute the DGIndex.exe,
Run('"' & $EXECUTABLE & '"', Fn_AppendSlash($CLIP_DIRECTORY))
$CLIP_DIRECTORY is the "Start In" directory. No command line. [above func ensures only single [EDIT: back] slash after dir]
Other interaction is via the eg shortcut key to open file (F2, sends the key code to keyboard queue),
or by clicking on mouse buttons after moving to a control button.
The part where it accesses Information Window text box aint even arrived yet, DGIndex Not repsponding. [froze for me batching single mpeg file]
Some code from .\Common\BatcherFunction.au3
Line causing last successfull debug output
Fn_ConsoleWrite('Fn_WinWaitActive: "' & $Title & '","' & $Text & '"' & ' Testing for Window Minimized State')
Local $state = WinGetState($Title, $Text) # Possible no return here in system call if waiting for DGIndex response
If BitAND($state, 16) Then
Fn_ConsoleWrite('Fn_WinWaitActive: "' & $Title & "','" & $Text & '"' & ' Restoring Window from Minimized State')
WinSetState($Title, $Text, @SW_RESTORE)
EndIf
If Not WinActive($Hand, $Text) Then
$E = WinActivate($Hand) # Possible no return here in system call if waiting for DGIndex response
If $E = 0 Then
Fn_ConsoleWrite(' !!! WinActivate Activate FAILED !!!')
EndIf
EndIf
$E = WinWaitActive($Hand, $Text, $Timeout) # Possible no return here in system call if waiting for DGIndex response
If $E = 0 Then
Fn_ConsoleWrite(' !!! WinWaitActive Timeout ERROR !!! (' & $Timeout & ' Seconds)')
SetError(1)
Else
; This will first force the window on-top and then remove the on-top flag.
; Purpose to ensure that the window we are interested in is 'clickable' etc, but does not remain FORCED on-top.
WinSetOnTop($Hand, $Text, 1) ; Force to front # Possible no return here in system call if waiting for DGIndex response
WinSetOnTop($Hand, $Text, 0) ; Switch it OFF again # Possible no return here in system call if waiting for DGIndex response
EndIf
# It does not get here
$BUGZZ -= 1
If $E <> 0 Then $E = 1 ; Convert error to 1, success
Return $E
EndFunc ;==>Fn_WinWaitActive
I'll add a few more debug messages to see at which point it fails to respond at all.
EDIT:
If you are waiting for the Info window, don't forget that you can disable it in the settings.
Yes, I think I point out that is necessary to have it switched on if accessing infos from it,
[otherwise it would timeout waiting for the window, and give an alert to the problem].
STEP_41 Wait for Information Window to appear
Fn_WinActivate "Information",""
Fn_WinWaitActive "Information","",Timeout=300 # Information window has appeared
Fn_WinWaitActive: "Information","" Testing for Window Minimized State # Last debug message before hanG
EDIT:
My functions in BatchFunction.au3 all begin with "Fn_", others like WinGetState, or WinActive are AutoIt stub functions
to access system APIs [where the API functions presumably go by the same name].
EDIT:
This debug output, with STEP number shows where it got to in the main batcher script.
STEP_41 Wait for Information Window to appear
And debug output is indented, each indent is a deeper level in the BatcherFunction.au3 "Fn_" style function code.
So, debugging in code block 2 above this, has STEP_41 code in main script calling Fn_WinActivate, which calls Fn_WinWaitActive.
[Its my indenting, not from any AutoIt builtin debugging stuff, a lot easier to make sense of debug output]
Inside the Fn_ style code, usually the first line is $BUGZZ += 1, indent 1 levels, and at end, $BUGZZ -= 1 = outdent.
EDIT: I notice that the Information window is totally blank apart from the window title, is that a change from earlier version ?
videoh
25th January 2021, 21:35
Tell me in DGIndex terms the exact sequence of operations (keystrokes) that lead to a problem. I can't make any sense out of your walls of AutoIt gibberish.
StainlessS
25th January 2021, 22:26
Just as a user would.
Send F2, open file.
Click DELETE ALL
Click ADD.
Select File in file selector, sends directory string to file selector filename text box, ENTER, then filename to filename text box, ENTER.
Send F5.
Preview window graphic appears and BLANK Information window. Non Responding.
I think this is part of prob from edit in last post.
EDIT: I notice that the Information window is totally blank apart from the window title, is that a change from earlier version ?
EDIT: You put up a blank Information window, and at some later point add controls and stuff to it.
AutoIt identifies windows via window name eg Title="Information", and also an optional second identifier,Text="Some string on Window".
I previously used Text="video", but had problems using "video" on current DGIndex, so I changed to "", which usually works Most-Of-The-Time.
When I was using Text="video", it would wait until Information window with "video" string was available, but now seems that we may have problem
due to not waiting because of the text="", ie is thinking Information window is ready, when you are maybe accessing it, and we try WinGetState and WinActivate it.
I'll try another method to detect when window is ready.
Thanks for you patience.
videoh
25th January 2021, 23:23
OK, thank you, SS. That gives me something to go on. I'll look into it this evening after swim team.
StainlessS
25th January 2021, 23:59
VH, give me some time, I think I may be able to fix it here.
Also, I cocked up, is not the Preview scan where it failed, is in indexing scan, it happened so quick I just assumed
it was preview scan. STEP_41 [from debug] is full index scan. [EDIT: I forgot that Preview was only for Field Order]
We do a few seconds of Preview scan to get Field Order which aint available after full scan [yep it may be wrong, but better than not at all].
I 'm knackered right now, did not get to bed till 05..00 AM or thereabouts and got zero sleep when I was there.
Gotta get some sleep now as I'm about to collapse.
Also,
It aint easy being stupid you know.
videoh
26th January 2021, 02:27
Sounds good. Let me know if you need me to look at anything.
I agree, stupid hurts. But you're not stupid!
Danette
26th January 2021, 03:31
Post the log somewhere please.
https://www.mediafire.com/file/g7zezj9hqq65e42/DGIndex_Batcher_DEBUG.log/file
OK, just had it hang for me too,
but, is not the batcher that is hanging, is DGIndex [is it same for you Danette ?, see image below]
Yes, but my DGIndex window is black and the Information window is gray.
videoh
26th January 2021, 03:58
Yes, but my DGIndex window is black and the Information window is gray. Albert Einstein said it is all relative.
StainlessS
26th January 2021, 22:28
Yes, but my DGIndex window is black and the Information window is gray.
Color of DGIndex window will probably just depends on 1st frame of video.
Information Window is grey because it has not created controls and not populated text controls .
I'm still struggling with it.
EDIT:
Yes, but my DGIndex window is black and the Information window is gray.
OK, I see what you mean.
I moved some window over the non responding windows, probably why Info window is white in my image,
and part of preview window also white.
StainlessS
27th January 2021, 03:24
OK guys,
Methinks we hast gotted it.
See SendSpace for the DEBUG_2 effort.
What I believe was the problem.
When getting Field Order from Preview,
We start preview,
When Information window appears,
Get the field Order from Information window
Close Information window <<<<<<<<< Caused trouble when DGIndex still writing info to Information Window.
Stop Preview
Later, starting Full Scan, DGIndex CRASH !!!. [Believe above DGIndex writing to [CLOSED] Info window corrupts DGIndex somehow].
EDIT: Maybe corrupts DGIndex Free Memory Lists(heap), and later when request malloc/new for Indexing, crash.
Changed to (sort of)
When getting Field Order from Preview,
We start preview,
When Information window appears,
Stop Preview
Get the field Order from Information window
Close Information window
If above is correct then crash could possibly happen if user closes Information window when Preview running, then later full scan -> Crash.
(without DGIndex_Batcher being involved)
It is possible that Getting Field Order from Info window whilst Preview still running is the problem,
but AutoIt specializes in that kind of thing [accessing text boxes belonging to other windows], and I assume protects against
simultaneously access causing problems. [critical section or whatever that type stuff is].
However, I aint no AutoIt expert, I've only ever written two apps in it, [DGIndex, and MeGUI batchers].
EDIT: I think I only had problems when Preview Speed = Maximum.
EDIT: Oh, and DGindex crash in first code block happens right at beginning of full scan,
If it were AutoIt problem accessing Info Win when preview still running, crash would likely happen then, and not later during full scan [maybe].
Anyway, the changed code seems to resolve the problem, I gone done lots an lots, and not no probs not never. [unless you find different :) ]
EDIT: Tomorrow, I'll restore the original crash method, but not read the Field Order info, just close the Information window, and see what happens.
Danette
27th January 2021, 14:28
Yes: it works fine, now. Thank you.
I've run it about six times, on 30-37 different files each time, with no issues. Several of those runs were with the speed setting on "maximum", although there seems to be no benefit in doing so.
As mentioned before, I'm getting about a 5% increase in indexing process speed with the DGMPGDec 2.0.0.3 as compared to DGIndex 1.5.8. I'd like to ask videoh if this is what should be expected.
StainlessS
27th January 2021, 14:40
although there seems to be no benefit in doing so.
Should make no difference at all, it stops preview [or old method reads info and stops] as soon as it sees the Information Window [with text "Video"] appearing.
I dont imaging Preview speed being at max makes any difference to how fast the Info window appears.
So, we seem to have sorted it.
I'll still re-do with old method and no read of info to see what happens.
EDIT: I'll probably take a bit more time to post final stable together with MeGUI Batcher update, as I made quite a few changes to common batcher code which need some testing in MeGUI batcher.
StainlessS
28th January 2021, 21:36
Well guys, I've now had time to get back to this.
Here is the code I've used, [taken direct from original v1.20, before I made changes. [about line 485]
If $INSERT_INFOS <> 0 Then
Fn_ConsoleWrite('STEP_14 Activate Main Window')
Fn_WinActivate($MAIN_WN, $MAIN_WN_TXT, $DEFAULT_WAIT_TIMEOUT)
Fn_ConsoleWrite('STEP_15 Select Preview via F5 key')
Fn_Send($MAIN_WN, $MAIN_WN_TXT, $KEY_F5) ; Preview
Fn_ConsoleWrite('STEP_16 Wait for Information Window to appear')
Sleep(50)
Fn_WinActivate($INFORMATION_WN, $INFORMATION_TXT) ; Wait for the Indexing Information window to appear
Fn_ConsoleWrite('STEP_17 Get Field Order') ; Not available in Save Project Info window
Sleep(50)
; $Status[0] = ControlGetText($INFORMATION_WN, $INFORMATION_TXT, $DGISTR[1][0]) ; do it quick
$Status[0] = "Not got Field Order"
Fn_ConsoleWrite(' Got Field Order Status ' & $DGISTR[0][0] & ' = '' & $Status[0] & ''')
Fn_ConsoleWrite('STEP_18 Close Information Window')
Sleep(50)
Fn_WinActivate($INFORMATION_WN, $INFORMATION_TXT) ; Wait for the Indexing Information window to appear
Fn_WinClose($INFORMATION_WN, $INFORMATION_TXT) ; Close the Information window
Fn_ConsoleWrite('STEP_19 Activate Main Window')
Fn_ConsoleWrite('STEP_20 STOP Preview via ESC key')
Fn_WinActivate($MAIN_WN, $MAIN_WN_TXT, $DEFAULT_WAIT_TIMEOUT)
Fn_Send($MAIN_WN, $MAIN_WN_TXT, $KEY_ESC) ; STOP Preview
Sleep(50)
EndIf
Above, RED line commented out, and Blue line substituted.
The red line [commented out] is where we read text from DGIndex Information Window, [commented out] which could have possibly been cause
of crash.
The substitute line, just provides a dummy line of text to $Status[0] instead of reading Information window text string.
ie
$Status[0] = "Not got Field Order"
Exact same crashing, so closing the Information Window whilst Preview is playing is what crashes DGIndex, so
if user closes info window then exact same crash could happen [without DGIndex Batcher being involved].
EDIT: So its a DGIndex bug VH.
videoh
28th January 2021, 21:40
Exact same crashing, so closing the Information Window whilst Preview is playing is what crashes DGIndex, I just started DGIndex 2.0.0.3, opened a VOB, hit preview, watched some video, then closed the Info dialog. DGIndex did not crash and the preview continued.
StainlessS
28th January 2021, 21:44
It dont happen every time, batcher can throw dozens of files at DGIndex, it may take a few before it happens.
I've thrown 20 or 30 at it without problems.
The original v1.20 script with that mod, dont touch DGIndex internals.
[As it happens, it occurred first time in my above test]
EDIT: Also, if we stop preview and then close Info window, it dont happen.
Closing Info first and then preview is what causes prob. [EDIT: actually we cant close preview when crash happens, DGIndex Not responding]
It looks like you're writing to window without checking if its still open.
EDIT: We've cured it anyways, we just need to stop preview before we close the Info window, but that
just avoids the batcher experiencing the bug.
EDIT: Also, batcher closes Info win immediately it appears, perhaps its the speed of the batcher that is hard for a user to emulate.
EDIT: Above Greyed out EDIT is wrong.
EDIT: The crash itself does not happen until full index scan starts, however the problem is caused when closing info win.
Maybe your writing to info scrambles your free memory lists [if you are writing direct to text box memory that has already been freed (when Info window closed)].
When you later try to malloc/new memory when doing full index, your memory lists are messed up and produce crash.
Above is only guesswork.
EDIT: Clarification.
Free Memory lists in C libraries (pretty much all cross platform C compilers, and probably CPP) re-use the first 2 long words (8 bytes) of the free'ed memory block
to create a linked list. So if writing to a once valid memory block used for a string in your window, it could corrupt a free memory list
linked list element. Malloc in pretty much all (32 bit) libs chops off a multiple of 8 bytes, so if user asks for 1 byte, he get block of 8, if 9 bytes, a block of 16, etc. Only the amount requested belongs to the user, but making minimum of 8 bytes is more speed efficient, reduces memory fragmentation, allows for the ISO
guarantee that returned mem pointer is castable to a structure of any type, and also allows creation of linked list element using the memory block to 'track' itself [ie the freed memory block itself is used in the linked list and requires no other memory to track where the freed memory block is].
64 bit compiler library malloc will carve off a minimum block of memory of 16 bytes, for above same reasons. [prev sentence is guess work but pretty much certain to be true, and easily provable if required].
StainlessS
28th January 2021, 22:15
changing above block to this
If $INSERT_INFOS <> 0 Then
Fn_ConsoleWrite('STEP_14 Activate Main Window')
Fn_WinActivate($MAIN_WN, $MAIN_WN_TXT, $DEFAULT_WAIT_TIMEOUT)
Fn_ConsoleWrite('STEP_15 Select Preview via F5 key')
Fn_Send($MAIN_WN, $MAIN_WN_TXT, $KEY_F5) ; Preview
Fn_ConsoleWrite('STEP_16 Wait for Information Window to appear')
Sleep(50)
Fn_WinActivate($INFORMATION_WN, $INFORMATION_TXT) ; Wait for the Indexing Information window to appear
; MOVED
Fn_ConsoleWrite('STEP_19 Activate Main Window')
Fn_ConsoleWrite('STEP_20 STOP Preview via ESC key')
Fn_WinActivate($MAIN_WN, $MAIN_WN_TXT, $DEFAULT_WAIT_TIMEOUT)
Fn_Send($MAIN_WN, $MAIN_WN_TXT, $KEY_ESC) ; STOP Preview
Fn_ConsoleWrite('STEP_17 Get Field Order') ; Not available in Save Project Info window
Sleep(50)
; $Status[0] = ControlGetText($INFORMATION_WN, $INFORMATION_TXT, $DGISTR[1][0]) ; do it quick
$Status[0] = "Not got Field Order"
Fn_ConsoleWrite(' Got Field Order Status ' & $DGISTR[0][0] & ' = '' & $Status[0] & ''')
Fn_ConsoleWrite('STEP_18 Close Information Window')
Sleep(50)
Fn_WinActivate($INFORMATION_WN, $INFORMATION_TXT) ; Wait for the Indexing Information window to appear
Fn_WinClose($INFORMATION_WN, $INFORMATION_TXT) ; Close the Information window
; Fn_ConsoleWrite('STEP_19 Activate Main Window')
; Fn_ConsoleWrite('STEP_20 STOP Preview via ESC key')
; Fn_WinActivate($MAIN_WN, $MAIN_WN_TXT, $DEFAULT_WAIT_TIMEOUT)
; Fn_Send($MAIN_WN, $MAIN_WN_TXT, $KEY_ESC) ; STOP Preview
Sleep(50)
EndIf
Red commented out, Purple moved. Blue Substitute.
We close Preview window first above, before closing Info window.
We still dont access the string from the info window, but above should prevent the bug during Full scan index.
So the original v1.20 script with first edit in previous post will crash even though we dont access the info win text box string.
and code block above will not produce the DGIndex Not Responding bug.
So, close Info win first = bug, close preview win first OK.
EDIT: Also, Previw Speed = Maximum, defo seems to be a factor in bug causation.
EDIT: Another possibility, is that you display Info window (with the label "Video" just below the tiltlebar) and
we close info window when you are still creating other controls on the info win.
We detect the Info win as ready when we see the mentioned 'Video' string, and that is when we close it.
videoh
28th January 2021, 22:57
Nothing I do crashes DGIndex standalone. If your app is doing stupid things, don't try to put it on me.
StainlessS
28th January 2021, 23:00
Well if your happy, then so am I, we got it fixed for us.
StainlessS
28th January 2021, 23:53
Simple proof of problem,
Full Autoit script, no additional script/libraries involved.
Opt('MustDeclareVars', 1) ; require pre-declared vars
Dim Const $WinTitle = 'Information' ; Information window title
Dim Const $WinTxt = 'Video' ; 2nd optional identifier for Information Window [some text on Information Window)
Dim Const $Timeout = 0 ; FOREVER
DO
Dim $Hand = WinWait($WinTitle, $WinTxt, $Timeout) ; Wait for $WinTitle to appear
if $Hand <> 0 Then
WinClose($WinTitle, $WinTxt) ; Window exists, close it
ExitLoop ; Done, exit loop and then exit program
Endif
Until 1 ; # EDIT: I meant this to be until 0(forever), but it still works . [as if DO and Until 1, and ExitLoop , all missing]
Exit 0 ; End Program
Execute the DGI_BUGTEST.exe,
it will wait for DGIndex to put up Information window [needs to be Preview window for bug to exhibit]
It will immediately close the info window.
You then need stop the preview.
Do full index scan and bang !!! [may require several tries to produce bug result.
It cannot be any more simple than this.
Script and Exe on SendSpace as DGI_BugTest.7z
EDIT: OK, I fixed above prob, and re-upped to SendSapce.
Now as this
Opt('MustDeclareVars', 1) ; require pre-declared vars
Dim Const $WinTitle = 'Information' ; Information window title
Dim Const $WinTxt = 'Video' ; 2nd optional identifier for Information Window [some text on Information Window)
Dim Const $Timeout = 0 ; FOREVER
Dim $Hand = WinWait($WinTitle, $WinTxt, $Timeout) ; Wait for $WinTitle to appear
if $Hand <> 0 Then
WinClose($WinTitle, $WinTxt) ; Window exists, close it
Endif
Exit 0 ; End Program
EDIT: Original batcher script has several Sleep(SomeAmountOfTime) calls in it, above script does no sleeps()'s and so may exhibit problem more often, or even always.
The Script/exe exits straight away when Info window closed, so need to be re-executed to retry.
EDIT: I've just tried with DGIndex v1.57, (only tried once) and no crash. Not tried with v1.58 DGIndex, not sure if I've got it (I got DGDecode v1.58, not DGIndex)
EDIT:
Or even (seems to work every time, as does above)
if WinWait('Information', 'Video', 0) <> 0 Then WinClose('Information', 'Video')
Exit 0
It probably dont matter too much, is unlikely to be much (if ever) of a prob to human user.
StainlessS
29th January 2021, 01:41
DGIndex_Batcher() v1.21, see 1st post.
v1.18, 13 Mar 2018, Recompile AutoIt v3.3.14.4
v1.19, 13 July 2018, Recompile AutoIt v3.3.14.5
v1.20, 24 Jan 2021, Some fixes.
v1.21, 28 Jan 2021, Close Preview window before Information Window, avoid DGIndex v2.0 Not Responding when Full Indexing.
videoh
29th January 2021, 03:21
it will wait for DGIndex to put up Information window [needs to be Preview window for bug to exhibit]
It will immediately close the info window.
You then need stop the preview.
Do full index scan and bang !!! [may require several tries to produce bug result.
It cannot be any more simple than this. I opened DGIndex, loaded a VOB, started preview, closed Info dialog, stopped the preview, and then did save project. It does not crash.
StainlessS
29th January 2021, 04:17
OK, [when you say closed Info Dialog, assume you mean via the DGI_BUGTEST.7z exe]
Dont know if relevant but as Danette was doing MPEG2's I only ever tried on those, not VOBS. [well maybe MPG1, dont know, maybe Danette can comment].
as posted it probably dont matter for human user.
It probably dont matter too much, is unlikely to be much (if ever) of a prob to human user.
I'm happy, we dont have any problems.
videoh
29th January 2021, 04:33
Just doing it with DGIndex, not the AutoIt stuff.
StainlessS
29th January 2021, 05:01
DGIndex_Batcher v1.22, update see 1st post.
v1.18, 13 Mar 2018, Recompile AutoIt v3.3.14.4
v1.19, 13 July 2018, Recompile AutoIt v3.3.14.5
v1.20, 24 Jan 2021, Some fixes.
v1.21, 28 Jan 2021, Close Preview window before Information Window, avoid DGIndex v2.0 Not Responding when Full Indexing.
v1.22, 29 Jan 2021, Cockup in v1.21, had left DGIndex bug testing code uncommented, bug still existed. Fixed.
videoh
29th January 2021, 14:01
had left DGIndex bug testing code uncommented, bug still existed
You have not demonstrated any DGIndex bug, and if you want to keep up with that well I can fsck with you too. Game on!
StainlessS
29th January 2021, 15:08
What is it with you ???????
Apparently you cant make a horse drink, not even when you push him into the water.
I really dont care, anymore, if you're happy then who am I to disturb your oblivion.
EDIT: We are finished here.
Danette
29th January 2021, 16:30
I’ve now run v1.22 on five different TV series (number of episodes per series ranges from 24-39) and, yes: these are all MPEG’s from NTSC DVD’s (ripped by MakeMKV). All runs completed with no problems.
In fact, whereas DGIndex Batcher v1.20 was 5% faster vs. v1.18, v1.22 is coming in at nearly 40% faster than v1.18. So, either DGIndex Batcher 1.22 is operating much more efficiently than previous versions or it is now taking advantage of the reported efficiency increase in the new DGIndex version …maybe a little of both.
StainlessS
29th January 2021, 17:02
Any speedup is probably a bit of both.
I made some changes in the common batcher source file, removed or shortened some delays and such.
Also, I don't remember how fast earlier DGIndex was [on mpgs] , but was actually surprised by its speed when processing mpeg2's. I usually only use it
nowadays for VOBs, even though the batcher was originally used [by me] mostly for mpg2 and mpg1 conversions, together with the MeGUI batcher thingy
for full automation. It surely goes like the clappers.
EDIT: Speed improvement of the batcher is probably only 1 or 2 seconds faster at best [per file], so it really
depends upon duration of the video how much percent time spent is reduced.
My tests files were 25 minutes each, and I guess about 8 seconds or so for the full indexing save Project file,
so reduction of a second or so could make a difference.
The GUI interaction of the batcher probably took longer than the actual indexing time. [just a guess, I ain't timed it].
videoh
29th January 2021, 17:13
or it is now taking advantage of the reported efficiency increase in the new DGIndex version …maybe a little of both. Don't discount the possibility that StainlessS is just a script kiddie who has no idea what he is doing, and blames others for his shortcomings.
Qaenos
2nd February 2021, 12:55
Just tried to download from both MediaFire and SendSpace and I got an error message on Microsoft Edge saying that I couldn't download either file because a virus has been detected. The file name was DGIndex_Batcher_v1.22_20210129.zip in both cases.
https://i.ibb.co/KKD7hz3/Screenshot-2021-02-02-065339.png (https://ibb.co/GH9kp3b)
StainlessS
2nd February 2021, 16:15
Post it on Virustotal, and then you'll see what other AV thinks.
Or here:- https://www.virustotal.com/gui/url/1195c065ed01a0acdd9b815599ca2fff849f697faa0ff778373ad39dc618fcdf/detection
0 out of 83 AV software thinks it is a problem, all give it a 'Clean' status.
I note that Windows Defender is not used on VirusTotal, perhaps there is a reason.
Also, maybe you should switch off PUPs [if there is an option for it, PUP = Potentially Unwanted Program],
I dont really use Defender, maybe someone else can advise where the switch is in W10 settings.
EDIT: I assume that Edge uses Defender style detection engine.
Maybe its the Edge SmartScreen thing, not defender, again, I dont use Edge. [Switch OFF SmartScreen]
EDIT: Or maybe try another browser.
Qaenos
3rd February 2021, 17:00
I just tried the mediafire and the sendspace downloads using Chrome and same thing - virus detected, failed download.
videoh
3rd February 2021, 17:05
I just downloaded from the sendspace link with Chrome without any issues.
StainlessS
3rd February 2021, 17:13
Here:- https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview
You will find link to
Detect and block potentially unwanted applications:- https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-antivirus/detect-block-potentially-unwanted-apps-microsoft-defender-antivirus
Maybe you can turn it [PUPs] off.
Also, give me a couple of minutes and I'll post a password protected 7z on SendSpace.
EDIT: I'm wondering if some malicious user has posted some bad report to SmartScreen [crazy/nasty people do exist].
EDIT: OK, posted on SendSpace:- https://www.sendspace.com/file/zqudoy
Qaenos
3rd February 2021, 18:02
StainlessS, thanks - I could really use this tool and I appreciate the help.
I just clicked the Sendspace link https://www.sendspace.com/file/zqudoy and it says 502 Bad Gateway.
StainlessS
3rd February 2021, 19:11
I think that bad gateway thing is a temp internet/server thing, retry it. Worked for me no problem.
Qaenos
3rd February 2021, 20:28
I downloaded the file, extracted it, clicked on the .exe and got an error message that it might contain a virus so it wouldn't let me open it.
StainlessS
3rd February 2021, 20:37
Well I guess you need to switch off PUPs in Windows Defender, I've no idea how to do that.
I'm guessing that its latest W10 H204.
You're not having much luck really, are you :)
EDIT:
The only version of W10 that I have at the moment, I removed Windows Defender from the ISO before setup [using NTLite],
and am now struggling because I cant switch off W10 Firewall, I seem to have disabled it being switch off [when removing Win Defender].
Am now trying again, but not sure where I went wrong.
Can someone who is familiar with W10 Defender, please assist Qaenos.
EDIT: You might be able to submit the file to M$, so they can examine and white list it.
StainlessS
3rd February 2021, 20:48
I've upped to SendSpace without UPX compression:- https://www.sendspace.com/file/uvngwx
Some AV software dont like UPX because it cant see inside it. [twice the size of original]
Qaenos
3rd February 2021, 21:07
I've upped to SendSpace without UPX compression:- https://www.sendspace.com/file/uvngwx
Some AV software dont like UPX because it cant see inside it. [twice the size of original]
Thanks - I appreciate all the effort, but I just tried the UPX-free .exe files and same thing - Windows won't let me run it because it thinks there might be a virus.
I really do want some way to perform DGIndex on a whole directory of .mkv files, but I don't think I'm willing to turn of Windows Defender to do it.
StainlessS
3rd February 2021, 21:24
Can someone who is familiar with W10 Defender, please assist Qaenos.
EDIT: You might be able to submit the file to M$, so they can examine and white list it.
If it is flagged as a PUP, then it dont mean virus, it means Potentially Unwanted, ie it dont know if you want it or not and is just being paranoid.
You need to get 'into' the WD setting and logs stuff and see what is happening.
Nothing more I can suggest sorry.
EDIT:
Add-an-exclusion-to-windows-security
https://support.microsoft.com/en-us/windows/add-an-exclusion-to-windows-security-811816c0-4dfd-af4a-47e4-c301afe13b26
EDIT
You can't. Microsoft doesn't maintain such a whitelist of files since their systems assume that software developers will sign their code using a code signing certificate.
The file submission process exists only to allow Microsoft to determine whether the detection for a file might be either a false positive or that the detection for actual malware is failing, it will not result in addition to any "safe list" since this doesn't exist.
The following links are also found at the page link provided above and explain this further.
https://www.microsoft.com/security/portal/mmpc/developer/resources.aspx
https://www.microsoft.com/security/portal/mmpc/developer/faq.aspx
Does Microsoft accept files for a known list or false positive prevention program?
No. We do not accept these requests from software developers. Signing your program’s files in a consistent manner, with a digital certificate issued by a trusted root authority, helps our research team quickly identify the source of a program and apply previously gained knowledge. In some cases this can result in your program being quickly added to the known list or, far less frequently, in adding your digital certificate to a list of trusted publishers.
So you will either need to set an exception manually as suggested by the second response above or explore the option of signing your code with a certificate, which is typically both costly and complex.
https://answers.microsoft.com/en-us/protect/forum/all/getting-my-program-added-to-windows-defender-safe/3b0b07fb-743f-4c85-a18c-43ca84e6c3f1
Again, nothing at all that I can do, main reason I want rid of Defender on my W10,
I've got a usable anti-virus, dont need no paranoid one.
StainlessS
3rd February 2021, 22:50
I really do want some way to perform DGIndex on a whole directory of .mkv files
I did not noticed the 'mkv' above, I dont think DGIndex supports mkv, so its no good to you anyway.
Danette
4th February 2021, 15:44
Interesting, I ran a long overdue update to my Bitdefender antivrius program and it, too, is detecting a virus in the new DGIndex Batcher. The message I get is that a trojan is involved: Trojan.GenericKD.45668852. The AV program removed it and DGindex Batcher ceased to function. I restored it and it works again.
StainlessS
4th February 2021, 15:54
If Qaenos did indeed want to proc DgIndex files [ie not MKV],
then he could always down the source code and AutoIt, and compile it,
and exclude defender thing from giving false +ve.
StainlessS
4th March 2021, 19:01
Thanks - I appreciate all the effort, but I just tried the UPX-free .exe files and same thing - Windows won't let me run it because it thinks there might be a virus.
I really do want some way to perform DGIndex on a whole directory of .mkv files, but I don't think I'm willing to turn of Windows Defender to do it.
Below will not help with MKV [DGIdex dont process MKV] but may at least allow use with appropriate files.
From Here [link originally posted by TheFluff]:- https://decentsecurity.com/#/holiday-tasks/
14.) Enable SmartScreen (Windows 8+)
This will check with Microsoft and warn users if they download+run any programs not commonly seen. This will prevent most infections downloaded from fake emails unless the user clicks through the stern warnings.
Start > type "SmartScreen" > click "Change SmartScreen Settings"
On the left, click "Change Windows SmartScreen Settings"
Select "Get administrator approval" (Windows 8) or "Warn before running an unrecognized app" (Windows 10) and hit Ok
Maybe it helps [allow admin approval rather than delete file]..
StainlessS
15th March 2021, 16:47
NOTE, DGMPGDec / DGIndex / DGDecode (Mpeg2Source) [x86 + x64, Avs + Vapoursynth] seem to have been updated recently , version I have is 2.0.0.4
here v2.0.0.5:- http://rationalqm.us/dgmpgdec/dgmpgdec.html
Danette
2nd May 2021, 23:39
New version has been working flawlessly!
Request/question:
In the log files, is there a way to have the field order identified? The line item is there, but is always absent the order.
StainlessS
3rd May 2021, 00:31
In the log files, is there a way to have the field order identified? The line item is there, but is always absent the order.
You mean in the output Avs file, not the log file ?
Below line in Template is wrong,
(DGI_Field_Order != "__Field_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
Should be
(DGI_Field_Order != "__Field"+"_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
Problem was, DGI_Field_Order is properly changed from "__Field_Order__" to "Top"
But later in script
(DGI_Field_Order != "__Field_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
Also got changed to
(DGI_Field_Order != "Top") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
So it thinks Infos not inserted.
Sorry :(
Danette
3rd May 2021, 01:16
You mean in the output Avs file, not the log file ?(
No, I mean the log file. I use much of the info in that log file, as generated by DGIndex Batcher, to make various determinations of how to handle videos. For example; I have numerous mpeg files that I am processing and some have TFF, while others have BFF. MediaInfo doesn’t capture, in their “Scan order” line, the order in many of these files for some reason. I was hoping that it was just an oversight in DGIndex Batcher
Below line in Template is wrong,
(DGI_Field_Order != "__Field_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
Should be
(DGI_Field_Order != "__Field"+"_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
Problem was, DGI_Field_Order is properly changed from "__Field_Order__" to "Top"
But later in script
(DGI_Field_Order != "__Field_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
Also got changed to
(DGI_Field_Order != "Top") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
So it thinks Infos not inserted.
Sorry :(
Does this mean that it can’t be done in DGIndex Batcher? When I run DGIndex, the field order info seems to be generated, but the log files generated by DGIndex Batcher are so much easier to use.
StainlessS
3rd May 2021, 01:51
The Log file is only for Batcher related problems like "*** WARNING ***, avs file is NOT overwritten".
Typical log file might be something like
5 Files Processed
5 Avs Files Created in target Folder
0 AVS Files moved to PROBLEM Folder
0 Files Skipped
The Field Order entries filled in by TEMPLATE avs are eg
DGI_Field_Order = "Top"
DGI_Stream_Type = "MPEG2 Program"
DGI_Profile = "main@main"
DGI_Frame_Size = "720x576"
DGI_Display_Size= "720x576"
DGI_Aspect_Ratio= "4:3 [2]"
DGI_Frame_Rate = "25.000000 fps"
DGI_Video_Type = "PAL"
DGI_Sequence = "Field/Frame"
DGI_Frame_Struct= "Frame"
DGI_Frame_Type = "Interlaced"
DGI_Colorimetry = "BT.470-2 B,G"
However, DGI_Field_Order is gotten by playing Preview in DGIndex for a few frames, and extracting the field order
from the DGIndex Information window, BUT, this info is possibly incorrect or not constant throughout the clip. [eg Illegal Field order transition].
DGIndex does not even write Field Order into the d2v file.
From d2v,
Stream_Type=1
MPEG_Type=2
iDCT_Algorithm=6
YUVRGB_Scale=1
Luminance_Filter=0,0
Clipping=0,0,0,0
Aspect_Ratio=4:3
Picture_Size=720x576
Field_Operation=0
Frame_Rate=25000 (25/1)
It is a good idea to always check Field Order, and also, just because it says Interlaced in VOB, dont mean that it is interlaced,
so you need to check that also. [and if it aint interlaced or NTSC soft telecine then field order is of little worth].
Danette
3rd May 2021, 02:35
Yes, my videos are nearly all NTSC and, nominally, interlaced (which is generally incorrect and, actually, telecined). I have found that, with some regularity, some older m2v's are identified, by DGIndex Batcher, as having illegal field order transition and then corrected.
The log files, generated by DGIndex Batcher, that I am referencing have these listings:
Frame Size: 720x480
Display Size: [not specified]
Aspect Ratio: 4:3 [2]
Frame Rate: 29.970030 fps
Video Type: NTSC
Frame Type: Interlaced
Coding Type: B
Colorimetry: BT.470-2 B,G*
Frame Structure: Frame
Field Order:
Coded Number: 4224
Playback Number: 368
Frame Repeats: 0
Field Repeats: 0
VOB ID:
Cell ID:
Bitrate:
Bitrate (Avg):
Bitrate (Max):
Timestamp:
Elapsed: 0:00:00
Remain: FINISH
FPS:
Info:
Note the absence of Filed Order identification.
StainlessS
3rd May 2021, 02:50
That looks to be the contents of DGIndex Information Window [not batcher],
are you saying the batcher writes that to some log file ?
If so, whats the file called, I aint used DGIndex_Batcher for some time, and I dont see anything that does that in the source.
videoh
3rd May 2021, 03:17
DGIndex writes the Info window contents to a log file when closed. If a save project is done without a previous play/preview, then the Field order is not populated. It's fixable but you'll have to make a request at the DG Tools forum.
StainlessS
3rd May 2021, 03:49
DGIndex writes the Info window contents to a log file when closed. If a save project is done without a previous play/preview, then the Field order is not populated. It's fixable but you'll have to make a request at the DG Tools forum.
Arh, thats what it is, when this [bottom] option is ticked [I forgot it did that]
https://i.postimg.cc/3NB6kM9g/DGIndex-Log.jpg (https://postimages.org/)
Thankyou.
some older m2v's are identified, by DGIndex Batcher, as having illegal field order transition and then corrected.
The Batcher dont detect field order transition, it intercepts [and auto closes] any alert dialog from the DGIndex, and auto accepts or rejects the offer to correct the illegal transition based on your Batcher options dialog selections.
EDIT: IIRC, where Illegal Field Order Transition is intercepted, the files are moved to the PROBLEM folder for later perusal, [and not
forwarded to MeGUI_AutoEncode_Batcher, if that option was selected in DGIndex_Batcher control dialog]
EDIT: You sometimes get an Illegal transition at either end of a clip, due to somebody adding leading or trailing
sequence that did not belong with the original movie [quite often all black]. If it happens at the end it probably dont matter at all.
Suggest that you do as DG proposes, and make request at DG Tools forum for DGIndex Info window Log, Field Order update.
[The Batcher does not need or touch that log at all].
Danette
4th May 2021, 14:22
DGIndex writes the Info window contents to a log file when closed. If a save project is done without a previous play/preview, then the Field order is not populated. It's fixable but you'll have to make a request at the DG Tools forum.
Thanks. I've submitted the request.
videoh
4th May 2021, 15:07
I'm not seeing anything at DG Tools forum. Where and how did you submit a request? You have to become a member and then create a thread in the appropriate forum. Thank you.
http://rationalqm.us/board/index.php
StainlessS
4th May 2021, 15:43
By the way Danette,
If you insert this [or just the ones you are interested in]
DGI_Field_Order = "__Field_Order__"
DGI_Stream_Type = "__Stream_Type__"
DGI_Profile = "__Profile__"
DGI_Frame_Size = "__Frame_Size__"
DGI_Display_Size= "__Display_Size__"
DGI_Aspect_Ratio= "__Aspect_Ratio__"
DGI_Frame_Rate = "__Frame_Rate__"
DGI_Video_Type = "__Video_Type__"
DGI_Sequence = "__Sequence__"
DGI_Frame_Struct= "__Frame_Struct__"
DGI_Frame_Type = "__Frame_Type__"
DGI_Colorimetry = "__Colorimetry__"
into your DGIndex template, and in the Batcher control dialog whosit tick the "Insert Infos" option,
it will fill in the entries so you can see them in the generated AVS file as well as the log file. [when log mod added for Field order]
Might look like this.
DGI_Field_Order = "Top"
DGI_Stream_Type = "MPEG2 Program"
DGI_Profile = "main@main"
DGI_Frame_Size = "720x576"
DGI_Display_Size= "720x576"
DGI_Aspect_Ratio= "4:3 [2]"
DGI_Frame_Rate = "25.000000 fps"
DGI_Video_Type = "PAL"
DGI_Sequence = "Field/Frame"
DGI_Frame_Struct= "Frame"
DGI_Frame_Type = "Interlaced"
DGI_Colorimetry = "BT.470-2 B,G"
EDIT:
Or even
# ***
# The field order is type __Field_Order__ : Full Frame Aspect Ratio is __Aspect_Ratio__ : Frame Type is __Frame_Type__
# ***
Will insert into AVS
# ***
# The field order is type Top : Full Frame Aspect Ratio is 4:3 [2] : Frame Type is Interlaced
# ***
videoh
4th May 2021, 19:56
Does DGIndex Batcher use CLI or does it open DGIndex normally? If it uses CLI, try giving the -preview option.
kedautinh12
4th May 2021, 21:02
Asd-g updated new ver, can you add this to DGMPGDec
https://github.com/Asd-g/MPEG2DecPlus
videoh
4th May 2021, 23:30
Asd-g updated new ver, can you add this to DGMPGDec
https://github.com/Asd-g/MPEG2DecPlus Yes, I already have it on my to-do list.
StainlessS
5th May 2021, 00:00
Does DGIndex Batcher use CLI or does it open DGIndex normally? If it uses CLI, try giving the -preview option.
-preview Previews the first 100 frames (used for log generation).
It uses AutoIt Run command to execute, if not previously running, but thanks for the suggestion.
[I dont know how its low level implemented].
AutoIt docs
Run
Runs an external program.
Run ( "program" [, "workingdir" [, show_flag [, opt_flag]]] )
Remarks
Paths with spaces need to be enclosed in quotation marks.
To run DOS (console) commands, try Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE) ; don't forget " " before "/c"
Batcher AutoIt code
; Check if Batcher TARGET is already running, if not, then start it.
If Not WinExists($MAIN_WN) Then
If $DEFAULT_AUTO_EXECUTE Then
Dim $LoopCnt = 0
Do
; Dont enclose Working Directory ($CLIP_DIRECTORY) in quotes, it dont work.
Run('"' & $EXECUTABLE & '"', Fn_AppendSlash($CLIP_DIRECTORY))
If @error = 0 Then
ProcessWait($PROCESS_NAME)
Sleep(1000) ; a little time to get up, and a window
If $LoopCnt > 0 Then
UpdateIni() ; Update $EXECUTABLE
EndIf
ExitLoop
EndIf
If MsgBox(8192 + 32 + 1, 'Problem Unable to run ' & $PROCESS_NAME, 'Find ' & $PROCESS_NAME) <> 1 Then Exit 1
$EXECUTABLE = FileOpenDialog('Finding ' & $PROCESS_NAME, $EXECUTABLE, '(' & $PROCESS_NAME & ')', 1 + 2, $PROCESS_NAME)
$LoopCnt = $LoopCnt + 1
Until 1 + 1 <> 2 ; 4E4, ... For a long time.
Else
MsgBox(0, 'Problem', $PROCESS_NAME & ' does not appear to be started, please check')
Exit 1
EndIf
EndIf
We dont actually need to use any -preview type command option, Also, we need to do things in order, and only if required, and is no
problem to send the F5 key to start preview when/if required.
[EDIT: Also, we process multiple VOBs/MPGs with single instance of DGIndex, and may need start Preview for each of them]
Preview
; If get Infos required then do Preview and get Field Order
If $INSERT_INFOS <> 0 Then
Fn_ConsoleWrite('STEP_14 Activate Main Window')
Fn_WinActivate($MAIN_WN, $MAIN_WN_TXT, $DEFAULT_WAIT_TIMEOUT)
Fn_ConsoleWrite('STEP_15 Select Preview via F5 key')
Fn_Send($MAIN_WN, $MAIN_WN_TXT, $KEY_F5) ; Preview
Sleep(5)
Fn_ConsoleWrite('STEP_16 Wait for Information Window to appear')
if Fn_WinWaitActive($INFORMATION_WN, $INFORMATION_TXT) then ; Wait for the Indexing Information window to appear
Sleep(5)
Fn_ConsoleWrite('STEP_17 STOP Preview via ESC key')
Fn_Send($MAIN_WN, $MAIN_WN_TXT, $KEY_ESC) ; STOP Preview
Fn_ConsoleWrite('STEP_17 Preview Get Field Order') ; Not available in Save Project Info window
Sleep(5)
$Status[0] = ControlGetText($INFORMATION_WN, $INFORMATION_TXT, $DGISTR[1][0]) ; Get Field Order
If @error Then
Fn_ConsoleWrite('STEP_17 Get Field Order FAILED')
Sleep(1)
Else
Fn_ConsoleWrite('STEP_17 Got Field Order Status ' & $DGISTR[0][0] & ' = "' & $Status[0] & '"')
Endif
Fn_WinClose($INFORMATION_WN, $INFORMATION_TXT) ; Close the Information window
Else
Fn_ConsoleWrite('STEP_17 Wait Information Window FAILED')
EndIf
EndIf
Yes, I already have it on my to-do list.
Oh good, I was wondering how to answer that, thought it was targeted at me.
videoh
5th May 2021, 01:39
Thank you for the explanation, SS. I can add a -preview option to GUI mode too, but it may be a while, so feel free to solve it your own way using AutoIt. ;)
StainlessS
5th May 2021, 01:46
Thanks, sounds very useful, even when implemented we would continue with current method, so as to work with older + newer versions.
Danette
5th May 2021, 23:14
By the way Danette,
If you insert this [or just the ones you are interested in]
into your DGIndex template, and in the Batcher control dialog whosit tick the "Insert Infos" option,
it will fill in the entries so you can see them in the generated AVS file as well as the log file. [when log mod added for Field order]
This seems like it should work with the ideal output, but I cannot figure out how to do it. I've created an AVS file with the code you mentioned as the contents, then added that AVS file as the template in DGIndex, but it never outputs a log file and reports a failure to overwrite the template file for some reason.
However, I am not clear if you were intending to modify, through autoit, DGIndex Batcher to generate these complete (vs. the currently incomplete) log files. It does seem that it is a DGIndex issue, but videoh is not going to work on it on the assumption that your are addressing it.
If that is the case, I will not try to figure out how to get your 'Template' idea to work. Please clarify, so that I know if I should wait for a modified DGIndex Batcher version or pursue the 'Template' approach.
StainlessS
6th May 2021, 08:20
Firstly, DGindex and DGIndex Batcher are two entirely different whotsits.
The Batcher has nothing to do with DGIndex's log file, does not read it, does not touch it.
If you want the DGIndex log update, then make request in DG's forum.
DGIndex [Not the Batcher] can auto create an AVS file based on a DGIndex template, and this template MUST be
set via DGIndex Menu/Option/Template/ to point to YOUR required template. This MUST be done before using the batcher.
The Batcher will only insert Infos into an avs file auto created by DGIndex and its template option.
The Batcher just emulates a users behaviour, ie presses buttons and clicks things and such in DGIndex GUI.
Additionally, as a special option, the batcher can replace special format strings in a DGIndex template generated file,
with the inserted infos taken from the DGIndex preview window. If an output AVS file already exists, DGIndex will not generate
another from the template, BUT, in the batcher control dialog window, there is an option to auto delete any existing file of the same name
as would be generated by DGIndex, it will delete the already existing file before DGIndex attempts to create the avs, and in doing so will
make sure that DGIndex WILL create the avs even if it was already existing.
Also, [I think this is correct, but not 100% sure without looking at source code] DGIndex will overwrite d2v files if already existing,
but will only do so IF YOU give it the go ahead via a dialog box [the whole point of the batcher is to do things without having
to be there filling in dialog boxes, and so will auto delete existing d2v's too, if that option is set in the Batcher control dialog box on startup.
If the option to delete existing d2v is not selected in the batcher control dialog, and the d2v does exist, then it will still be sitting there
ad-infinitum until you attend to the DGIndex confirmation to delete dialog box.]
So, copy the later given template into your DGIndex Template folder. Then,
In DGIndex [run it] and set the Template to this copied file. Exit DGIndex.
In the Batcher ini file, ie "DGIndex_Batcher.ini", just check that this entry points to the desired DGIndex executable. [DGIndex was updated recently].
The ini might look something like this, in blue points to the DGIndex executable that will be started..
[Default]
EXECUTABLE=C:\NON-INSTALL\DGMpgDec\DGIndex.exe
MEGUI_BATCHER=D:\DVD\BATCH_TEST\MeGUI_AutoEncode_Batcher.exe
CLIP_DIRECTORY=D:\DVD\BATCH_TEST\
SAVE_DIRECTORY=D:\DVD\BATCH_TEST\OUTPUT\
JOIN_FILES=1
JOIN_FROM_ONE=1
AUTO_OVERWRITE=1
AUTO_OVERWRITE_AVS=1
IGNORE_AUDIO_DELAY=1
INSERT_INFOS=1
CORRECT_FIELDORDER=0
AUTO_CLOSE=1
BEEPER=0
CALL_MEGUI=0
MEGUI_STOP=0
EDIT: If the Executable is wrongly set, then delete the ini file and it will be re-created and ask for you to point to correct executable, will also
need to set the other options in the Batcher control dialog.
Here is the TEMPLATE to copy into the DGIndex.exe template directory. [then set the template option in DGIndex.Exe]
DGIndexBatcher_TEMPLATE.avs
# Standard DGIndex Infos
VideoFileName = "__vid__"
AudioFileName = "__aud__"
AudioDelay = Value("__del__")
# DGIndex_Batcher Infos
# ***
# The field order is type __Field_Order__ : Full Frame Aspect Ratio is __Aspect_Ratio__ : Frame Type is __Frame_Type__
# ***
# Stuff from DGIndex Information Window will be inserted into below '__stuff__' insertion markers.
DGI_Field_Order = "__Field_Order__"
DGI_Stream_Type = "__Stream_Type__"
DGI_Profile = "__Profile__"
DGI_Frame_Size = "__Frame_Size__"
DGI_Display_Size= "__Display_Size__"
DGI_Aspect_Ratio= "__Aspect_Ratio__"
DGI_Frame_Rate = "__Frame_Rate__"
DGI_Video_Type = "__Video_Type__"
DGI_Sequence = "__Sequence__"
DGI_Frame_Struct= "__Frame_Struct__"
DGI_Frame_Type = "__Frame_Type__"
DGI_Colorimetry = "__Colorimetry__"
Mpeg2Source(VideoFileName)
AudioExt = GetFileExtension(AudioFileName)
Aud= (AudioExt==".ac3") ? NICAC3Source(AudioFileName,channels=2,DRC=0)
\ : (AudioExt==".mpa"||AudioExt=="mp1"||AudioExt==".mp2"||AudioExt==".mp3") ? NicMPG123Source(AudioFileName,Normalize=False)
\ : (AudioExt==".wav") ? RaWavSource(AudioFileName)
\ : (AudioExt==".dts") ? NicDTSSource(AudioFileName)
\ : 0
#Assert(!isInt(Aud),"NO AUDIO")
(!isInt(Aud)) ? AudioDubEx(Aud).DelayAudio(AudioDelay).Trim(0,0) : NOP # Trim, chop/add audio to length
(!isInt(Aud) && AudioRate() <> 44100) ? ResampleAudio(44100) : NOP
S= \
"Field Order = " + DGI_Field_Order + "\n" + \
"Stream Type = " + DGI_Stream_Type + "\n" + \
"Profile = " + DGI_Profile + "\n" + \
"Frame Size = " + DGI_Frame_Size + "\n" + \
"Display Size = " + DGI_Display_Size + "\n" + \
"Aspect Ratio = " + DGI_Aspect_Ratio + "\n" + \
"Frame Rate = " + DGI_Frame_Rate + "\n" + \
"Video Type = " + DGI_Video_Type + "\n" + \
"Sequence = " + DGI_Sequence + "\n" + \
"Frame Struct = " + DGI_Frame_Struct + "\n" + \
"Colorimetry = " + DGI_Colorimetry
(DGI_Field_Order != "__Field" + "_Order__") ? SubTitle(S,lsp=0,font="Courier New") : NOP # Dont Show Subs if Infos not inserted
GOT_INFOS = (DGI_Aspect_Ratio=="16:9 [3]")
FAR = (GOT_INFOS) ? 16/9.0 : (DGI_Aspect_Ratio=="4:3 [2]") ? 4/3.0 : 1
Eval( (FAR!=1) ? "MeGUI_DarX=Round(FAR*1000) MeGUI_DarY=1000" : "" )
Return Last
##########
Function GetFileExtension(string fn) { rfn=fn.RevStr i=rfn.FindStr(".") Return (i==0) ? "" : rfn.LeftStr(i).RevStr }
Run DGIndex_Batcher and check out the Avs produced.
EDIT: I'll mod the TEMPLATE file a bit, and re-upload the batcher. later today.
Danette
6th May 2021, 14:30
Yes, I do realize that autoit is just performing a macro function in the operation of DGIndex.
I tried, to the best of my understanding, to use the suggestions, above, but the log file still contains an empty “Field Order”. DGIndex Batcher is fine with the avs files. It is only the log file issue that I am trying to correct.
videoh did just point out, in the DG Tools forum, that all fields are filled correctly in the log when “Preview” is used and the file is closed. So, it does seem that, unless DGIndex Batcher runs that “Preview” function as part of it’s process, the complete log will not be created.
I have my own macro program (similar to autoit) that I use and can run the files through the “Preview” function in DGIndex to generate the complete log files, now that I know how they are created. I was hoping to have DGIndex Batcher do it for the sake of simplicity.
Before I make this macro, I’ll wait and take a look at your modification when you post it, to see if it solves my issue. Thanks for doing this.
StainlessS
6th May 2021, 15:54
Yes I know, as I said, the batcher does NOT touch the log at all, only DGIndex touches that file.
See my previous post 1st paragraph.
And mods I make in future will still NOT touch the log file, only DGIndex does that.
videoh
6th May 2021, 16:46
Yes I know, as I said, the batcher does NOT touch the log at all, only DGIndex touches that file.
You don't have to touch the log file. You just need to issue an F5 to DGIndex, wait a second, and then issue a stop.
StainlessS
6th May 2021, 18:46
Yes I know that F5 will start Preview, and ESC [I think] will stop it, we already do that to start preview and get Field Order
from the Preview window, to insert it into the template created AVS file. But, Danette wants it in the log file too, not the AVS file.
The DGIndex log file is only output at all if the option is set in DGIndex Menu/Option/Enable Info Log, and it would require
a significant amount more work just to insert the single missing item into the log, its just not something I'm particalarly
keen on doing [I dont really have much free time now or in the near furture].
If you [VH] do indeed add the Field Order item to the log, then both Danette and I will be very happy (and you will no doubt gain
an enormous amount of satisfaction, knowing that you made us (and probably others) quite delighted :) ]
It would not be a bad idea to have the field order in the log file, even when the batcher is not in use, I always used to wonder why
it was skipped from the log, like it had been overlooked or something.
When using DGIndex [on its own, no batcher] I always make a point of using preview first to see what Field Order says [and aspect ratio,
and Frame type]. It would not be the worst idea in the world for DGIndex to have the ability to insert additional infos into the AVS file on its own, just like it does the filenames and audio delay.
If addtional infos were indeed output to the template created AVS file, might I suggest that the same replacement key names
[or whatever they should be called, eg "__vid__", "__aud__", and "__del__"], be augmented using the existing
names used in the batcher.
The items in double quotes
DGI_Field_Order = "__Field_Order__"
DGI_Stream_Type = "__Stream_Type__"
DGI_Profile = "__Profile__"
DGI_Frame_Size = "__Frame_Size__"
DGI_Display_Size= "__Display_Size__"
DGI_Aspect_Ratio= "__Aspect_Ratio__"
DGI_Frame_Rate = "__Frame_Rate__"
DGI_Video_Type = "__Video_Type__"
DGI_Sequence = "__Sequence__"
DGI_Frame_Struct= "__Frame_Struct__"
DGI_Frame_Type = "__Frame_Type__"
DGI_Colorimetry = "__Colorimetry__"
EDIT: I deliberately used the same pre and postceding double underscore to identify the names,
the same as implemented in DGIndex. I also implemented similar double underscore ident in the
Avisynthesizer_Mod thingy, the original used '%' chars which I thought could be mistaken for something else,
eg "%f" insertion markers used in Avisynth String().
Danette
6th May 2021, 20:22
Yes, StainlessS, you captured, exactly, my entire issue and basis for the request. I understand, completely, your time issue and how much value you get for quite a bit more work, and the same for videoh.
As I mentioned, I can build my own macro to utilize the “Preview” function in DGIndex (Esc key does pause the preview for closing purposes) so, I hope neither of you sense any disappointment on my part. I have many such macros and they are relatively simple to do.
StainlessS
6th May 2021, 21:02
The Batcher is in no way a Macro, which goes around blindly clicking on the exact same area of screen and with the same timings as when it was recorded.
It has to wait for windows to appear [at whatever size and postion], after finishing whatever it is they were doing, detect error / warning dialog boxes jumping up, or not, and other stuff [eg user messing around with windows when its trying to complete its mission].
If it were just a matter of pressing record and spending a few moments clicking on stuff, before halting record, that would be a doddle.
EDIT: Incidently, AutoIt has a macro recorder amongst its tools, not sure if I've ever used it though.
Just curious, what macro recorder do you use [Maybe Autoit, or AutoHotKey macro recorders ?]
(The stuff above about it not being a macro, is for anybody else reading who might think that it was a macro,
I understand that you did not think it was a macro).
EDIT: The DGIndex and MegGUI batchers purpose, was to save me/others spending an inordinate amount of time sitting clicking through the DGIndex procedure, with long timouts between having to do something, and then having to do the same tedious routine using MeGUI,
with sometimes long pauses between stages [depending upon any kind of pre-processing in Avisynth].
With a task of converting maybe 100 MPEG2 files to MP4, using both DGIndex and MeGUI. You could be sitting there for hours and hours
before you even click on the start encode button in MeGUI. With the batchers [working together, DGIndex calling MeGUI and handing it
info on what it has to do], you could set it going by group selecting the 100 MPEG2s, click OK, then go to the pub. And some long time later it would finish the DGIndex fandango, and pass the remainder of the task to the MegGUI batcher, which would eventually
start the encoding of the MP4s and then auto shut down when all complete.
I dont really need to convert masses of mpegs to MP4 anymore, so I dont often use either batcher.
EDIT: Current versions of MeGUI are quite a bit better than earlier versions. At one time, MeGUI would reload an avisynth script about 5 times when reading a script [before the Preview window appeared]. And then about 7 reloads prior to actually adding to the encode queue. [or maybe the other way around]. So if there was some kind of pre-processing in an avisynth script, it had to be done about 12 times in all, for each script, that could lead to a real tedious task where adding lots of avisynth scripts to the encode queue.
Danette
6th May 2021, 22:10
Yes, I understand what you mean about a "macro" being a simple capture-type tool, such as in Word or Excel. It's a nomenclature thing. My "macro" definition is wider than that, meaning that it is a series of commands to do much, if not all, of what you described. It will, e.g.; look at how-ever-many numbers of files I choose, then perform the functions I set, with debugging, as needed, but prescribed by me if I see problems. I do suspect that autoit is more sophisticated.
The program I use is called "Macro Express".
StainlessS
7th May 2021, 00:04
I've just had a look at Macro Express, looks quite good, and more than just an action recorder. [$50.00 Std, $70 Pro]
AutoIt and AutoHotkey [the devs split the project] was I think quite similar to M.E. at one time,
started out for use in Operating system rollouts, and post install config.
I think that AutoHotkey is now probably more like M.E. than AutoIt, which evolved into a nearly BASIC like programming language,
with unique GUI/window manipulation abilities, and you can even create simple GUI's like the the Batcher Control dialog box.
[One of the first examples for AutoIt emulates a desktop calculator].
videoh
7th May 2021, 01:39
If you issue the F5 and ESC, then the field order should be in the log. I just tested and it's working for me. How long did you wait between F5 and ESC?
Danette
7th May 2021, 04:55
I've just had a look at Macro Express, looks quite good, and more than just an action recorder. [$50.00 Std, $70 Pro]
I can’t comment upon the current Macro Express version. My current version is about five years old and I assume that it has evolved somewhat since then. However, it still handles everything I’ve thrown at it and I’ve been using it for about twenty years.
If you issue the F5 and ESC, then the field order should be in the log. I just tested and it's working for me. How long did you wait between F5 and ESC?
Although I haven’t fully developed my own Macro Express “macro” for running just a log file, I can confirm that the F5 and ESC does set the field order with about a five-second run (haven’t tried less than that). My plan would be to allow about thirty seconds, just to increase the confidence in the data that it finds.
videoh
7th May 2021, 12:10
5 seconds should be enough.
StainlessS
7th May 2021, 18:17
Thankyou, but, I'm hittin' a dead end.
Loading DVD vob and pressing F5, wait about 20 seconds and then hit ESC, followed by closing DGIndex, I get this
Stream Type: MPEG2 Program
Profile: main@main
Frame Size: 720x576
Display Size: 720x576
Aspect Ratio: 4:3 [2]
Frame Rate: 25.000000 fps
Video Type: PAL
Frame Type: Interlaced
Coding Type: B
Colorimetry: BT.470-2 B,G
Frame Structure: Frame
Field Order: Top
Coded Number: 490
Playback Number: 490
Frame Repeats: 0
Field Repeats: 0
VOB ID: 1
Cell ID: 1
Bitrate: 4.236 Mbps
Bitrate (Avg): 4.359 Mbps
Bitrate (Max): 4.535 Mbps
Audio Stream: 80: AC3 2/0 224
Timestamp: 0:00:19
Elapsed: 0:00:19
Remain: FINISH
FPS: 24.96
Info:
which is nice.
But, Load VOB again into DGIndex, press F5, wait for about 20 seconds, hit ESC,
and then, F4 (save project), I get this
Stream Type: MPEG2 Program
Profile: main@main
Frame Size: 720x576
Display Size: 720x576
Aspect Ratio: 4:3 [2]
Frame Rate: 25.000000 fps
Video Type: PAL
Frame Type: Interlaced
Coding Type: P
Colorimetry: BT.470-2 B,G
Frame Structure: Frame
Field Order:
Coded Number: 44024
Playback Number: 480
Frame Repeats: 0
Field Repeats: 0
VOB ID: 1
Cell ID: 1
Bitrate:
Bitrate (Avg):
Bitrate (Max):
Audio Stream: 80: AC3 2/0 224
Timestamp: 0:29:19
Elapsed: 0:00:11
Remain: FINISH
FPS:
Info:
So full save project, loses the Field Order obtained from Preview.
EDIT: In 2nd code block, Coded Number seems to be full project length in frames,
and Playback Number seems to be number of frames Previewed.
EDIT: All above without the batcher thingy.
EDIT: But same results as above when doing same (with modded code) from within the batcher.
videoh
7th May 2021, 20:09
Hmm, save project may clear the info. Investigating...
Danette
7th May 2021, 22:21
I ran into the same problem when developing the macro using Macro Express. The last "Information" window / log file created, before closing, overwrites any other such file upon closing. To get around it, I ran the "Save Project" first and the "Preview" last. Of course, I'm not doing any of the more complex things that DGIndex Batcher is doing.
videoh
8th May 2021, 02:05
To get around it, I ran the "Save Project" first and the "Preview" last. That's very creative, congratulations! Still and all, that should be fixed. I'll get to it after the DGDemux port to linux is completed. I have a linux bug up my you-know-what. Maybe it will make people hate me less, but maybe not. ;)
Emulgator
8th January 2022, 19:04
Hi StainlessS, a small wish: open file extension mask for .MTS
Batcher 1.22 can not see camera files with .MTS extension.
StainlessS
8th January 2022, 19:27
OK, but on the back burner.
You could add it yourself, source is supplied and only have to (by memory) hit the F5 key to recompile.
[AutoIt compiler and the additional Scite editor for it]
StainlessS
8th January 2022, 19:57
Emulgator,
Line 142,
Global Const $FILTER = 'MPG Files (*.vob;*.mpg;*.mpeg;*.m1v;*.m2v;*.mpv;*.tp;*.ts;*.trp;*.m2t;*.m2ts;*.pva;*.vro)'
Just add your new semi-colon separated extension to the list,
ie,
Global Const $FILTER = 'MPG Files (*.vob;*.mpg;*.mpeg;*.m1v;*.m2v;*.mpv;*.tp;*.ts;*.trp;*.m2t;*.m2ts;*.pva;*.vro;*.mts)'
Rebuild is actually F7.
Well, here is just the exe,
https://www.mediafire.com/file/gc97gchevu2m27s/DGIndex_Batcher-%255BEmulgator%255D.7z/file
EDIT: Untested.
Emulgator
14th January 2022, 00:28
Deepest Thanks, StainlessS !
.mts are visible now.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.