Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > (HD) DVD, Blu-ray & (S)VCD > IFO/VOB Editors

Reply
 
Thread Tools Search this Thread Display Modes
Old 2nd May 2010, 07:12   #21  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
Control+Shift+V means Control+upper case V. So, if Caps-Lock is on, you need to type Control-v without the shift key, and if it is off, you have to hold shift. In other words, use Control+whatever key combination you use to type "V" in notepad.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 2nd May 2010, 22:59   #22  |  Link
Gothmog
Registered User
 
Join Date: Dec 2003
Posts: 3
Quote:
Originally Posted by blutach View Post
Just a guess - maybe a keyboard problem. Try swapping your keyboard and see if that helps.

Regards
I swapped keyboards and bingo, it works again! Looks like that's the only thing wrong with it. #@%@#%

And here I thought hardware went bad all at once.

Thanks!!!

Last edited by Gothmog; 3rd May 2010 at 03:36. Reason: rule 4
Gothmog is offline   Reply With Quote
Old 16th July 2010, 23:11   #23  |  Link
IVaN_000
Registered User
 
Join Date: Nov 2007
Posts: 60
Is there an unattended way to open a DVD folder, search for BOVs, "Remove useless stuff", save, and then exit?

I tried to make a little app in C# to perform those tasks by retrieving the handles of PgcEdit buttons, and sending Windows messages to them, but apparently windows made in Tcl/Tk work different than regular Win32 windows, because that didn't work as I expected. For example, trying to use WM_CLOSE to close some windows (like "Verify number of streams") actually minimizes them. I guess I should study some Tcl and write a plugin to automatize that.

(Sorry for my poor English.)
IVaN_000 is offline   Reply With Quote
Old 17th July 2010, 09:44   #24  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
Quote:
Originally Posted by IVaN_000 View Post
I guess I should study some Tcl and write a plugin to automatize that.
Yes, that's the way to do it. When a DVD is passed to PgcEdit via the command line, the plugins are always loaded and executed after the DVD has been loaded. Normally, a plugin does nothing at load time, except to add itself to the Plugins menu, but you can theoretically launch any processing, then exit PgcEdit.

Unfortunately, you cannot just launch the Remove Useless Stuff procedure from the plugin, as it opens a window. But you can launch the procedures that Remove Useless Stuff uses, one at a time. (Note however that sometimes, one of these procedures can display a dialog box if it encounters a problem, so there is no guarantee that it will work completely unattended.)

Try this:
Code:
# Launch Remove Useless Stuff unattended

# check if a DVD has been loaded at startup
if {[info exists ::dvddir]} {
	# Delete all useless Dead Commands
	::main::clean_up_dvd 2
	if {$::dvd_modified} {::main::Write_DVD false}

	# Delete all useless Dead Buttons and BOVs
	::macros::delete_all_dead_buttons true
	if {$::dvd_modified} {::main::Write_DVD false}

	# Delete all unreferenced cell commands
	::utils::delete_all_unreferenced_cell_commands true
	if {$::dvd_modified} {::main::Write_DVD false}

	# Delete completely all uncalled Titlesets
	::utils::delete_uncalled_vts true
	if {$::dvd_modified} {::main::Write_DVD false}

	# Clear useless Set commands and free useless GPRMs
	::macros::clear_useless_set_commands true

	# Clear jumps and links to void PGCs
	::utils::clear_jumps_to_void_pgcs true
	if {$::dvd_modified} {::main::Write_DVD false}

	# Remove useless menu VOB files
	::macros::remove_useless_menu_vobs true

	# Delete all uncalled PGCs
	::utils::delete_all_uncalled true
	if {$::dvd_modified} {::main::Write_DVD false}

	# Delete all NOPs
	::main::clean_up_dvd -2
	if {$::dvd_modified} {::main::Write_DVD false}
	
	# close PgcEdit
	exit
}
The BOVs are scanned automatically at startup anyway, so you don't need to add that function in the plugin.

Note that you will need to copy the PgcEdit installation folder elsewhere and add the plugin in that folder only, or you will not been able to use PgcEdit without running your plugin when a DVD is opened at startup.

Note also that I have not tested the method. I hope it works. :-)
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV

Last edited by r0lZ; 17th July 2010 at 09:52.
r0lZ is offline   Reply With Quote
Old 21st July 2010, 14:34   #25  |  Link
mikenadia
Registered User
 
Join Date: Nov 2007
Posts: 246
Conflict between PGCedit and Vobblanker options.

Preprocessed the VOB with PGCedit (including "remove unwanted stuff": all options checked). Then run Voblanker ( with 32k gaps unchecked, VIDEO_TS= 0k, otherwise 64k).
With 32k gaps unchecked (in Vobblanker options), no issue.
With 32k gaps checked (in Vobblanker options), if I rerun "remove unwanted stuff" VIDEO_TS goes down to 0k (instead of 64k), meaning I probably have to rerun Vobblanker. It seems that it is the option "remove unnecessary Menu VOB" that makes the difference.
I understand it may be normal behaviour but I would like to know what options I should unckeck in "Remove useless stuff" if I decide to rerun with a future version without having to rerun Vobblanker.
Thanks in advance.

Last edited by mikenadia; 21st July 2010 at 23:14. Reason: Thanks, r0lZ
mikenadia is offline   Reply With Quote
Old 21st July 2010, 21:10   #26  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
PgcEdit and ImgBurn use a special technique commonly called "64K gaps" to be sure that the IFO and BUP files are placed in different ECC (error correction) blocks of the DVD. For example, when there is no VIDEO_TS.VOB file, VIDEO_TS.BUP is placed on disc after VIDEO_TS.IFO and a gap so that a read error in one ECC block doesn't ruin both files.

In the other hand, VobBlanker has an option to create a blank VIDEO_TS.VOB file to fill the gap. Therefore, the IFO and BUP will always be on different ECC blocks, even with burning program that rebuild the IFO and suppress the gap, such as Nero.

If you don't burn with ImgBurn, then the VobBlanker option might be useful. But if you burn with ImgBurn or if you create an ISO with PgcEdit (with the 32k gap option enabled), then the VOB file is absolutely useless.

Anyway, PgcEdit's Remove Useless Stuff does what it is supposed to do: it removes the useless VOB file. Of course, you can untick that option if you need the VIDEO_TS.VOB file, but take care. Some commercial DVDs create huge VIDEO_TS.VOB files, just to align the layer break correctly. Not removing them is a great waste of space if you want to burn the DVD on a single layer disc. And note that the other useless menu VOBs will not be removed either, and it is rarely necessary to create gaps between VTS IFO and BUP files, since there is always at least one VOB file between the two files on disc.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 27th July 2010, 15:31   #27  |  Link
notec
Registered User
 
notec's Avatar
 
Join Date: Jan 2008
Posts: 14
Quote:
Originally Posted by r0lZ View Post
You can turn any of the cleanup function off before launching the Remove Useless Stuff. So, if you don't like a feature of Remove Useless Stuff, you can skip it. Personally, I use that function usually immediately after having ripped the DVD, to remove most useless stuff, but I like to keep the NOPs, as they are sometimes used as GOTO targets, and keeping them can be useful when I modify the navigation manually. When I have finished my edits, I launch it again, and that time, I remove also the useless NOPs.
Nice tip didn't know that about the NOPs and GOTOs.

Do you run "Remove Useless Stuff" (Ctrl+Shift+R) the second time with all the options ticked or just with the the remove NOPs box ticked? Does it hurt to run as after opening the DVD with them all ticked? (I'm assuming no but thought I'd ask).

thx...
notec is offline   Reply With Quote
Old 27th July 2010, 18:44   #28  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
You can tick all options both times, especially if you have modified the navigation. PgcEdit might find new stuff to remove. Also, sometimes, running all options two times can be useful, as some cleanup functions can free stuff that can be only removed during the second pass. (I did my best to put the functions in the most useful order, but I had to take the speed of the operations into account, and the best order depends of each DVD.)
Anyway, Remove Useless Stuff should be transparent to the navigation (unless there is a bug somewhere).
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 29th July 2010, 14:22   #29  |  Link
notec
Registered User
 
notec's Avatar
 
Join Date: Jan 2008
Posts: 14
Now running before and after as you describe. Thanks for the tips (and confidence that it's a viable solution for proper clean up)!
notec is offline   Reply With Quote
Old 30th July 2010, 15:53   #30  |  Link
mikenadia
Registered User
 
Join Date: Nov 2007
Posts: 246
Cosmetics
1) Straight from the rip.
Code:
[71 00 00 05 00 00 00 00]   1  Set gprm(5) =(mov) 0 
[71 00 00 02 00 00 00 00]   2  Set gprm(2) =(mov) 0 
[00 C1 00 01 00 06 00 05]   3  if ( gprm(1) >= 6 ) then { Goto line 5 } 
[30 06 00 01 03 83 00 00]   4  (JumpSS) Jump to VTSM 3, Root menu (TTN 1) 
[30 06 00 01 07 83 00 00]   5  (JumpSS) Jump to VTSM 7, Root menu (TTN 1) 
[30 06 00 00 00 00 00 00]   6  (JumpSS) Jump to First Play PGC
From the info GPRM Summary tab, it seems that gprm(1) is never >=6.
But VTSM 7 does not exist , so line 5 is a Jump to nowhere, but because line 5 is a Jump and because there is no Goto line 6 , line 6 is considered as a Dead command and is deleted while running "Remove useless stuff".

2) Sometimes, I have
Code:
[71 00 00 05 20 00 00 00]   1  Set gprm(5) =(mov) 8192 
[71 00 00 05 00 01 00 00]   2  Set gprm(5) =(mov) 1 
[71 00 00 03 00 01 00 00]   3  Set gprm(3) =(mov) 1 
[30 02 00 00 00 01 00 00]   4  (JumpTT) Jump to Title 1
Two consecutive set commands for the same gprm and at non variable values. Can I always delete the first one?

Thanks in advance.
mikenadia is offline   Reply With Quote
Old 30th July 2010, 16:10   #31  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
1) I don't see your point. PgcEdit can delete line 6, as normally it cannot be executed. The fact that line 5 is a jump to nowhere doesn't change that. A player should normally hang on that line. If it doesn't hang, you're lucky, but you cannot assume that all players will happily continue to the next line.
PgcEdit could be smarter and check if the condition of the test in line 3 can never be true, and when it's the case, it could delete lines 3, 5 and 6, but it is extremely difficult to do that (especially as I have to take the speed of the operations into account and verifying all possible values of a GPRM in each condition is much too slow).

2) When the second command's operator is =(mov), then yes, you can safely remove the previous set, as the value of the GPRM is overwritten anyway.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 30th July 2010, 16:17   #32  |  Link
mikenadia
Registered User
 
Join Date: Nov 2007
Posts: 246
I understand but my point is that "Remove useless stuff" should not delete line 6 (assuming that it is a Dead command) without checking that the previous Jump (here line 5) is not a Jump to Nowhere.

Otherwise, I have to make sure to have solved all the " Jump to nowhere" issues before running " Remove useless stuff".

The intent of the DVD is to have lines 1, 2, 3,4, 6 left, I think.

Thanks.

Edit: I was not asking for lines 3, 5 , 6 to be removed and the "Jump to nowhere" check will be welcome , if there is no objection.
Edit2:If you insert a conditionnal Goto to a non existing line ( the last one + 1), when you create that line, the conditionnal GOto is modified (the last one (before any modifications ) +2). Just cosmetics. One click away. (Or when you insert a conditionnal Goto to a non existing line, it may create automatically the missing lines).
Also, selecting more than one line, and clicking on Add only creates one line.

Last edited by mikenadia; 30th July 2010 at 17:29.
mikenadia is offline   Reply With Quote
Old 30th July 2010, 16:28   #33  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
Well, I could add a global check for Jumps to Nowhere as the first step of Remove useless stuff or just before Delete Dead Commands, and issue a warning when there are jumps to nowhere, but as I have explained, it is not possible to check every command before processing them, because that's too slow.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 7th September 2010, 09:58   #34  |  Link
frank
Banned
 
Join Date: Oct 2001
Location: https://t.me/pump_upp
Posts: 811
Hello r0lZ,
I want to set the sound on as standard in PgcEditPreview.exe.
It's very useful when I check the chapterpoints for noise.
How to do it?

I don't see a PgcEdit option at the options dialog menu.
Perhaps you can implement a button?
frank is offline   Reply With Quote
Old 7th September 2010, 11:55   #35  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
The Preview options are in the Preview menu.
Tick Preview -> Playback Mode -> Real Time With Audio, and select the option you prefer in Preview -> Default Audio Stream. If you tick "Based on Virtual Player Setup", be sure to set the right language code in the Player Setups for SPRM 16.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV

Last edited by r0lZ; 7th September 2010 at 11:57.
r0lZ is offline   Reply With Quote
Old 7th September 2010, 21:45   #36  |  Link
frank
Banned
 
Join Date: Oct 2001
Location: https://t.me/pump_upp
Posts: 811
Great! Never searched it there.
frank is offline   Reply With Quote
Old 9th October 2010, 15:27   #37  |  Link
mikenadia
Registered User
 
Join Date: Nov 2007
Posts: 246
Cosmetics.
Straight from the rip (lines 2 to 5 of the pre-command highlighted in purple).
Code:
[20 04 00 00 00 00 00 02]   1  LinkPGCN PGC 2 
[61 00 00 05 00 8D 00 00]   2  Set gprm(5) =(mov) sprm(13:Parental level) 
[79 00 00 05 00 0F 00 00]   3  Set gprm(5) &=(and) 15 (preserve bits 0-3) 
[20 C4 00 05 00 06 00 04]   4  if ( gprm(5) >= 6 ) then { LinkPGCN PGC 4 } 
[71 00 00 05 00 00 00 00]   5  Set gprm(5) =(mov) 0 
********** post commands:
[00 B1 00 05 00 01 00 03]   1  if ( gprm(5) != 1 ) then { Goto line 3 } 
[00 03 00 00 00 00 08 04]   2  (SetTmpPML) Set parental level =(mov) 8, Goto line 4 
[20 04 00 00 00 00 00 03]   3  LinkPGCN PGC 3 
[20 04 00 00 00 00 00 04]   4  LinkPGCN PGC 4 
********** cell commands:
After running "Remove useless stuff" and Killing Playback on two parental menus as part of running "Remove...".
(lines 2 to 7 of the pre-command highlighted in purple).
Code:
[20 04 00 00 00 00 00 02]   1  LinkPGCN PGC 2 
[56 00 00 00 04 00 00 00]   2  (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1) 
[71 00 00 05 00 01 00 00]   3  Set gprm(5) =(mov) 1 
[00 B1 00 05 00 01 00 06]   4  if ( gprm(5) != 1 ) then { Goto line 6 } 
[00 03 00 00 00 00 04 07]   5  (SetTmpPML) Set parental level =(mov) 4, Goto line 7 
[20 06 00 00 00 00 00 02]   6  LinkPGN Program 2 
[20 04 00 00 00 00 00 06]   7  LinkPGCN PGC 6 
********** post commands:
[56 00 00 00 04 00 00 00]   1  (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1) 
[71 00 00 05 00 01 00 00]   2  Set gprm(5) =(mov) 1 
[00 B1 00 05 00 01 00 05]   3  if ( gprm(5) != 1 ) then { Goto line 5 } 
[00 03 00 00 00 00 04 06]   4  (SetTmpPML) Set parental level =(mov) 4, Goto line 6 
[20 06 00 00 00 00 00 02]   5  LinkPGN Program 2 
[20 04 00 00 00 00 00 06]   6  LinkPGCN PGC 6
 ********** cell commands:
I was expecting the lines 2 to 7 to be removed. I understand that PGCEdit cannot try for every combination (gprm...) to see if those lines can be removed but I saw the them highlighted in purple. (I do not know the exact meaning of the purple highlighting . I did not find it in the Help file). Running " Remove..." another time does not remove them.

Thanks in advance.

Last edited by mikenadia; 9th October 2010 at 21:50. Reason: Thanks, rOlz
mikenadia is offline   Reply With Quote
Old 9th October 2010, 18:43   #38  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
You're right. PgcEdit should have removed the purple lines. (Purple is assigned to the "dead" lines: the lines that cannot be executed due to non-conditional jumps or gotos.)

I'm not sure why PgcEdit has not removed them. (The function that removes the dead lines is new and still not perfect, and I prefer to leave some dead lines than to remove useful ones!) Anyway, I will have a look. Thanks for the detailed example. :-)
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 9th October 2010, 23:10   #39  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
Hum, I don't know how you did your tests, but on my system, PgcEdit has removed the dead commands correctly.
If you still have the files, can you try DVD -> Delete All Dead Commands alone?
Also, what version are you using?
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 10th October 2010, 02:25   #40  |  Link
mikenadia
Registered User
 
Join Date: Nov 2007
Posts: 246
I am using 9.3.0.1000 . The dead commands are deleted when using the "Delete Dead command" alone.
The problem arises when , in " Remove useless stuff", the Delete Dead command" is used in combination with "Remove useless menu VOB when possible". Then I am asked to Kill Playback on the two "Parental Mgt" menus (recognized as useless) and the "deleted command " reappear somehow.

After having done "Remove useless stuff" with only the "Delete Dead command" and "Remove useless menu VOB when possible" checked, I have
Code:
[20 04 00 00 00 00 00 02]   1  LinkPGCN PGC 2 
[00 00 00 00 00 00 00 00]   2  NOP 
[56 00 00 00 04 00 00 00]   3  (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1) 
[71 00 00 05 00 01 00 00]   4  Set gprm(5) =(mov) 1 
[00 00 00 00 00 00 00 00]   5  NOP 
[00 B1 00 05 00 01 00 08]   6  if ( gprm(5) != 1 ) then { Goto line 8 } 
[00 03 00 00 00 00 08 09]   7  (SetTmpPML) Set parental level =(mov) 8, Goto line 9 
[20 04 00 00 00 00 00 03]   8  LinkPGCN PGC 3 
[20 04 00 00 00 00 00 04]   9  LinkPGCN PGC 4
Thanks in advance.

Edit: after only doing "Remove useless menu VOBS, some dead commands are added (now, lines 2 to 13 are highlighted purple).
Actually, the lines 7 to 13 are added everytime I run "Remove useless menu VOBs", that is why they reappear if I run "Remove useless stuff " twice even I do not have any "Killing Playback" the second time.
And those lines are identical if I "kill Playback" on those two " Parental Mgt " PGCs straight from the rip (they are also dead commands).
Code:
********** pre commands:
[20 04 00 00 00 00 00 02]   1  LinkPGCN PGC 2 
[61 00 00 05 00 8D 00 00]   2  Set gprm(5) =(mov) sprm(13:Parental level) 
[79 00 00 05 00 0F 00 00]   3  Set gprm(5) &=(and) 15 (preserve bits 0-3) 
[20 C4 00 05 00 04 00 02]   4  if ( gprm(5) >= 4 ) then { LinkPGCN PGC 2 } 
[71 00 00 05 00 00 00 00]   5  Set gprm(5) =(mov) 0 
[00 00 00 00 00 00 00 00]   6  NOP 
[56 00 00 00 04 00 00 00]   7  (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1) 
[71 00 00 05 00 01 00 00]   8  Set gprm(5) =(mov) 1 
[00 00 00 00 00 00 00 00]   9  NOP 
[00 B1 00 05 00 01 00 0C]  10  if ( gprm(5) != 1 ) then { Goto line 12 } 
[00 03 00 00 00 00 04 0D]  11  (SetTmpPML) Set parental level =(mov) 4, Goto line 13 
[20 06 00 00 00 00 00 02]  12  LinkPGN Program 2 
[20 04 00 00 00 00 00 06]  13  LinkPGCN PGC 6
If, straight from the rip, I "kill Playback" on those two Parental Mgt" PGCs and then run "Remove Useless stuff" (with Remove useless menu VOBs ( the dead commands are still there).

Last edited by mikenadia; 10th October 2010 at 04:05.
mikenadia is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 03:40.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.