Log in

View Full Version : Non-squential playback, is that possible?


lovelegend
12th November 2004, 11:22
I've an anime DVD with three ep's on it, and in order to fit in a DVDr, I used DVD Decrypter IFO mode to rip out the opening songs and ending songs of the last two ep's and used IFOedit to creat a new IFO. However, I would like to play it like before, i.e.,
opening --> ep1 --> ending --> opening (of ep1) --> ep2 --> ending (of ep1) --> opening (of ep1) --> ep3 --> ending (of ep1)

Will it be possible? If so, how could I do it? Sorry, I'm a newbie in IFOedit but wanna do a tough work.. :D

P.S. There is one VTS with different cell ID (the chapters) only...

P.S. Also there's a menu which could access the opening/ending of ep2/ep3, it will be very cool if I can edit the menu so that if I choose opening of ep2, it will play opening (of ep1) and continue on ep2...

jeanl
12th November 2004, 18:21
I would use PgcEdit to change the navigation on your DVD. PgcEdit lets you modify pre/post commands in your PGC so you can pretty much make your DVD do exactly what you want it to do.
I can't be more specific here because you don't tell us how your DVD is laidout (i.e., how navigation goes from chapter to chapter), but here's how I would go about doing it, assuming that the opening/ending/chapters are in different PGC...
- I would use a gprm to remember which chapter it is I want to play. for example gprm(0).
- In the post-command area of the opening, I would jump to the PGC corresponding to the value in gprm(0). That way, after the opening, I go to the desired chapter.
- In the post-command of each chapter, I would jump to the ending PGC.
- In the post-command of the ending PGC, I would incrememt gprm(0) and jump to the opening PGC.

- In the first-play PGC, I would set gprm(0)=1, and jump to the opening PGC...

So, assuming gprm(0) = 1, the play sequence would be
opening -> chapter 1 -> ending (gprm(0)=2) -> opening -> chapter 2 -> ending gprm(0)=3) -> ...


- If you have a menu, I would change the post-command of the menu PGC so when I push the "Play chapter 1" button, I set gprm(0) to 1, and jump to the opening etc...


The ideas above might not work in all situations (for example, if your chapters are in the same PGC, you'd have to link to specific cells, etc) but that's my rough idea of how to do it... PGCEdit is the way to go. Or use a commercial authoring tool that supports this kind of stuff (I know there are some).

Jeanl

2COOL
12th November 2004, 18:45
@lovelegend

What anime are your working on? Also, what region code is it? Sorry, I don't have an answer to your question at this moment. Just curious to know. ;)

[EDIT 1]So what's exactly on your DVD you need to get rid off? You mentioned three episodes and keeping the menu. The extras are probably trailers as anime DVDs are notorious for that. If you blank your extras, would it fit nicely on a DVD? I'm assuming you don't want to do transcoding/encoding to shrink it down.

[EDIT 2]P.S. There is one VTS with different cell ID (the chapters) only...No problem, we can always use VidChanger to change it to unique VOB IDs instead of Cell IDs.

lovelegend
12th November 2004, 20:10
My main problem is I don't fully understand the DVD structure and the commands... ^^"

@ jeanl
Um... your way is using gprm(0) as a dummy variable...
But the problem is, there is only one VTS there. I can set pre- and post-commands for that VTS, but how could I set pre- and post-command for each cell ID (chapter)? Or should I split the vob file into chapters (one single vob for each chapter). I tried but it's a headache for me to import the VTS (since I don't have IFO for each of those vob files... ^^")

@2COOL
It's Inuyasha region 3, and there are no extras in the DVD, only three ep's there. Actually one DVDr only fits one opening song + one ending song + 2.5 ep's, but for short I said three ep's... If I shrink it down, then the DVD needs to be compressed down to 75%, which I can't accept... :p

jeanl
12th November 2004, 20:27
Originally posted by lovelegend
My main problem is I don't fully understand the DVD structure and the commands... ^^"

@ jeanl
Um... your way is using gprm(0) as a dummy variable...
But the problem is, there is only one VTS there. I can set pre- and post-commands for that VTS, but how could I set pre- and post-command for each cell ID (chapter)? Or should I split the vob file into chapters (one single vob for each chapter). I tried but it's a headache for me to import the VTS (since I don't have IFO for each of those vob files... ^^")
Wait. You say you have a single VTS, but that's fine. I'm hoping you have several PGC (program chains) in that VTS. YOu can check with PgcEdit.
If you have a single PGC, each cell corresponding to a chapter, you have to use cell commands, it'll make the whole thing a bit more complicated. This should work though:

- I would use a gprm to remember which chapter it is I want to play. for example gprm(0) and gprm(1) to remember if I need to play the opening (for example == 1) ending (for example == 2) or non (for example == 0).
- In the precommand of the PGC, I would do this:
. Check gprm(1) to see if I need to play opening or ending. Link to the right cell accordingly.
. If not, link to the chapter cell according to gprm(0).
- In the opening cell command, I'd set gprm(1) to 0 and jump to the tail.
- In the ending cell command, I'd set gprm(1) to 1 and jump to the tail.
- in each chapter's ending cell command, I'd set gprm(1) to 2 and jump to the tail.
- In the post-command, I'd test if gprm(1) == 1 (meaning, we're done playing the ending, let's go to the next chapter), if so I would increment gprm(0) (next chapter) and loop back to the top of the PGC. Otherwise I'd just jump to the top of the PGC.

In the first-play PGC, I would set gprm(0)=1 and gprm(1) = 1, and jump to the opening PGC..

Now, if you wait a couple more days, PgcEdit version 0.4 will have a Trace function, which will allow you to single-step through all this, watching gprm() and making sure navigation does what is intended!

Jeanl

2COOL
12th November 2004, 20:57
I was thinking about this situation during my drive to work. The openings and endings have all unique Cell IDs. At this point, I would use VIDChanger to change all those IDs to fixed cell IDs.

So you would end up with IDs like (V/C 1/2, 2/1, 3/1, ...) instead of (V/C 1/1, 1/2, 1/3, ...). This makes it better for stripping out your unreferenced cells later. So, here's a example of what I think the IDs are laid out after VIDChanger.


E.g.
VOB ID Cell ID
Episode 1
Opening 1 1
Ending 4 1

Episode 2
Opening 5 1
Ending 9 1

Episode 3
Opening 10 1
Ending 14 1

Just reuse episode 1 by editing the "Cell Position in VOB:" section. In IfoEdit, that's where you'll see in your VTS_PGC_#,

e.g.

Cell_1: has VOB ID 1
Cell_1: has Cell ID 1
Cell_1: has VOB ID 1
Cell_1: has Cell ID 2

Sorry, I'm at work right now so I don't have PgcEdit to give you the run down on this but I can tell you it's in your PGC Editor when you click on a PGC in PGC Selection.

Well anyways, to reuse the Ep 1's IDs, you need to know what Eps 2 & 3 IDs are too. When you do, it's a matter of editing the numbers. So, with that said, I should end up with this.


E.g.

NEW:
VOB ID Cell ID
Episode 1
Opening 1 1
Ending 4 1

Episode 2
Opening 1 1
Ending 4 1

Episode 3
Opening 1 1
Ending 4 1

Now you can use IfoEdit to strip out your unreferenced cells.

V/C

5/1
9/1
10/1
14/1

Should work. There are other ways to do this like using PgcEdit and VobBlanker for reusing IDs. There won't be any gprm editing here.

lovelegend
12th November 2004, 21:39
Originally posted by jeanl
Wait. You say you have a single VTS, but that's fine. I'm hoping you have several PGC (program chains) in that VTS. YOu can check with PgcEdit.
PgcEdit can make some dummy PGC, and I was going to make some and use those to set gprm (since button click on menu can have only one command line, so I thought of linking those menu buttons to some dummy PGC's, and in those PGC's there are pre-command of setting gprm and then jump to the corresponding cell...


If you have a single PGC, each cell corresponding to a chapter, you have to use cell commands, it'll make the whole thing a bit more complicated. This should work though:
I just knew there's cell commands... ^^"
I know that pre-command and post-command will be executed before and after a VTS, but when will the cell command be executed?


- I would use a gprm to remember which chapter it is I want to play. for example gprm(0) and gprm(1) to remember if I need to play the opening (for example == 1) ending (for example == 2) or non (for example == 0).
- In the precommand of the PGC, I would do this:
. Check gprm(1) to see if I need to play opening or ending. Link to the right cell accordingly.
. If not, link to the chapter cell according to gprm(0).
- In the opening cell command, I'd set gprm(1) to 0 and jump to the tail.
- In the ending cell command, I'd set gprm(1) to 1 and jump to the tail.
- in each chapter's ending cell command, I'd set gprm(1) to 2 and jump to the tail.
- In the post-command, I'd test if gprm(1) == 1 (meaning, we're done playing the ending, let's go to the next chapter), if so I would increment gprm(0) (next chapter) and loop back to the top of the PGC. Otherwise I'd just jump to the top of the PGC.

In the first-play PGC, I would set gprm(0)=1 and gprm(1) = 1, and jump to the opening PGC..
I've read this few times but I still don't understand... ^^"
OK, let's name the cell after decryption:
cell 1 - opening song
cell 2 - ep 1 (main movie)
cell 3 - ending song
cell 4 - ep 2 (main movie)
cell 5 - ep 3 (main movie)
and the sequence should be:
cell 1 -> cell 2 -> cell 3 -> cell 1 -> cell 4 -> cell 3 -> cell 1 -> cell 5 -> cell 3

it will help me a lot in understanding your concept if you use those parameters.. ^^
and what do gprm(0) an gprm(1) do?

Now, if you wait a couple more days, PgcEdit version 0.4 will have a Trace function, which will allow you to single-step through all this, watching gprm() and making sure navigation does what is intended!

Yeah, I can wait, and I need to learn those DVD commands as well (too many different Jump and Link commands, need to know the difference between them... :p )...
btw, thank you very much for your help! :D

2COOL
12th November 2004, 21:44
Can you post your IFO's VTS Overview in IfoEdit? use the copy2clipboard button.

lovelegend
12th November 2004, 22:03
Originally posted by 2COOL
Can you post your IFO's VTS Overview in IfoEdit? use the copy2clipboard button.

This is the VTS overview of the original Disc:

VTS overview:

Menu attributes:
Video: MPEG-2 720x480 (NTSC) (NTSC 525/60) (4:3) (not specified perm.display)
Audio 1: Not Specified (Linear PCM) 2ch 48Kbps 16bps
SubPicture 1: Not Specified (2-bit rle )

Title Set (Movie) attributes:
Video: MPEG-2 720x480 (NTSC) (NTSC 525/60) (4:3) (not specified perm.display)
Audio 1: Japanese (Linear PCM) 2ch 48Kbps 16bps (ID: 0xa0)
Audio 2: Chinese (Dolby AC-3) 2ch 48Kbps DRC (ID: 0x81)
SubPicture 1: Chinese (2-bit rle ) (ID: 0x20)
SubPicture 2: Chinese (2-bit rle ) (ID: 0x21)

PGC_1 (program chain): [Title(TTN): 1] [01:12:58.24 / 30 fps] (Programs: 15) (Cells: 15) (uses VOB-IDs: 1,2,3)
[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] : time: 00:01:34.29 / 30 fps [Pos: 00:01:34.29] [Frames: 2849] SP/ILVU/DISC/SA:[ no/ no/yes/ no]
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 1/ 2] : time: 00:11:48.00 / 30 fps [Pos: 00:13:22.29] [Frames: 24089] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 03] [Pg 03] [Cell 03] [V/C Id: 1/ 3] : time: 00:08:45.15 / 30 fps [Pos: 00:22:08.14] [Frames: 39854] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 04] [Pg 04] [Cell 04] [V/C Id: 1/ 4] : time: 00:01:31.00 / 30 fps [Pos: 00:23:39.14] [Frames: 42584] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 05] [Pg 05] [Cell 05] [V/C Id: 1/ 5] : time: 00:00:40.04 / 30 fps [Pos: 00:24:19.18] [Frames: 43788] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 06] [Pg 06] [Cell 06] [V/C Id: 2/ 1] Layer Br.: time: 00:01:35.04 / 30 fps [Pos: 00:25:54.22] [Frames: 46642] SP/ILVU/DISC/SA:[ no/ no/yes/ no]
[Ch 07] [Pg 07] [Cell 07] [V/C Id: 2/ 2] : time: 00:12:00.00 / 30 fps [Pos: 00:37:54.22] [Frames: 68242] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 08] [Pg 08] [Cell 08] [V/C Id: 2/ 3] : time: 00:08:33.00 / 30 fps [Pos: 00:46:27.22] [Frames: 83632] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 09] [Pg 09] [Cell 09] [V/C Id: 2/ 4] : time: 00:01:31.15 / 30 fps [Pos: 00:47:59.07] [Frames: 86377] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 10] [Pg 10] [Cell 10] [V/C Id: 2/ 5] : time: 00:00:39.29 / 30 fps [Pos: 00:48:39.06] [Frames: 87576] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 11] [Pg 11] [Cell 11] [V/C Id: 3/ 1] Layer Br.: time: 00:01:35.01 / 30 fps [Pos: 00:50:14.07] [Frames: 90427] SP/ILVU/DISC/SA:[ no/ no/yes/ no]
[Ch 12] [Pg 12] [Cell 12] [V/C Id: 3/ 2] : time: 00:15:04.00 / 30 fps [Pos: 01:05:18.07] [Frames: 117547] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 13] [Pg 13] [Cell 13] [V/C Id: 3/ 3] : time: 00:05:30.00 / 30 fps [Pos: 01:10:48.07] [Frames: 127447] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 14] [Pg 14] [Cell 14] [V/C Id: 3/ 4] : time: 00:01:30.15 / 30 fps [Pos: 01:12:18.22] [Frames: 130162] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 15] [Pg 15] [Cell 15] [V/C Id: 3/ 5] : time: 00:00:40.02 / 30 fps [Pos: 01:12:58.24] [Frames: 131364] SP/ILVU/DISC/SA:[yes/ no/ no/ no]

Menu Language Units: 1
Language Menu Unit 1: [Japanese]

Language Menu Unit 1: [Japanese]
Menu 1: [Root-Menu] (entry PGC) (Programs: 1) (Cells: 1) (uses VOB-IDs: 1)
Menu 2: [Chapter (PTT) Menu] (entry PGC) (Programs: 1) (Cells: 1) (uses VOB-IDs: 2)
Menu 3: [Audio Menu] (entry PGC) (Programs: 1) (Cells: 1) (uses VOB-IDs: 3)
Menu 4: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 4)
Menu 5: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 5)
Menu 6: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 6)
Menu 7: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 7)
Menu 8: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 8)
Menu 9: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 9)
Menu 10: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 10)
Menu 11: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 11)
Menu 12: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 12)
Menu 13: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 13)
Menu 14: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 14)
Menu 15: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 15)
Menu 16: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 16)
Menu 17: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 17)
Menu 18: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 18)
Menu 19: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 19)
Menu 20: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 20)
Menu 21: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 21)
Menu 22: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 22)
Menu 23: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 23)
Menu 24: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 24)
Menu 25: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 25)
Menu 26: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 26)
Menu 27: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 27)
Menu 28: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 28)
Menu 29: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 29)
Menu 30: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 30)
Menu 31: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 31)
Menu 32: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 32)
Menu 33: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 33)
Menu 34: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 34)
Menu 35: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 35)
Menu 36: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 36)


If you want the IFO of the ripped vob (by using IFOedit's "creat IFO" option), then you need to wait some mins, because I deleted the vob file already... ^^"
hold on, let me rip it again... ^^

jeanl
12th November 2004, 22:06
Originally posted by lovelegend
PgcEdit can make some dummy PGC, and I was going to make some and use those to set gprm (since button click on menu can have only one command line, so I thought of linking those menu buttons to some dummy PGC's, and in those PGC's there are pre-command of setting gprm and then jump to the corresponding cell...



I just knew there's cell commands... ^^"
I know that pre-command and post-command will be executed before and after a VTS, but when will the cell command be executed?

Wait. Here, you're confusing VTS and PGC. A VTS (video title set) can include many PGC (program chains). Each PGC has its own pre and post commands. In addition, a PGC can have cell commands. These cell commands are executed AFTER the cell plays back (at the end of the video in the cell).

I've read this few times but I still don't understand... ^^"
OK, let's name the cell:
cell 1 - opening song
cell 2 - ep 1
cell 3 - ending song
cell 4 - ep 2
cell 5 - ep 3
and the sequence should be:
cell 1 -> cell 2 -> cell 3 -> cell 1 -> cell 4 -> cell 3 -> cell 1 -> cell 5 -> cell 3

it will help me a lot in understanding your concept if you use those parameters.. ^^
and what do gprm(0) an gprm(1) do?
OK:
gprm(0) tells you which ep to play.
gprm(1) tells you if you're playing an episode opening song or end song:

gprm(1) == 0 -> episode
gprm(1) == 1 -> opening song
gprm(1) == 3 -> ending song
So, here's how it would work:


- In the precommand of the PGC, I would do this:
Check gprm(1) to see if I need to play opening or ending.
if gprm(1) == 0 we don't need opening or ending, so link to ep1, ep2 or ep3 based on gprm(0).
if gprm(1) != 0 Link to cell number given by gprm(1).

- In the opening cell (cell 1) command, I'd set gprm(1) to 0 and link to the tail. This will execute the post-command of your PGC.
- In the ending cell (cell 3) command, I'd set gprm(1) to 1 and link to the tail.
- in each chapter's ending cell (2,4 and 5) command, I'd set gprm(1) to 3 and jump to the tail.

- In the post-command of the PGC, I'd test if gprm(1) == 1 (meaning, we're done playing the ending, let's go to the next chapter),
if so I would increment gprm(0) (next chapter) and loop back to the top of the PGC.
Otherwise I'd just jump to the top of the PGC.

- In the first-play PGC, I would set gprm(0)=1 and gprm(1) = 1, and jump to the opening PGC..

So the sequence is:

First-Play: gprm(0)=1 gprm(1) = 1
pre-commands: gprm(1) = 1, link to cell 1.
cell 1 plays.
cell 1 command: gprm(1) = 0, link to tail.
Post-command: gprm(1) = 0 , so jump back to head of PGC:
pre-commands: gprm(1) = 0, so link to episode in gprm(0): 1, cell 2
cell 2 plays.
cell 2 command: gprm(1) = 3, link to tail.
Post-command: gprm(1) = 3, so jump back to head of PGC:
pre-commands: gprm(1) = 3, so link to cell 3.
cell 3 (ending) plays.
cell 3 command: gprm(1) = 1, link to tail.
Post-command: gprm(1) = 1 , increment gprm(0) = 2 and jump back to head of PGC

and on and on:
pre-commands: gprm(1) = 1, link to cell 1.
cell 1 plays.
cell 1 command: gprm(1) = 0, link to tail.
Post-command: gprm(1) = 0 , so jump back to head of PGC:
pre-commands: gprm(1) = 0, so link to episode in gprm(0): 2, cell 4
cell 4 plays.

etc

Jeanl

2COOL
12th November 2004, 22:45
Audio 1: Japanese (Linear PCM) 2ch 48Kbps 16bps (ID: 0xa0)

Interesting.

lovelegend
12th November 2004, 23:49
Originally posted by jeanl
[/code]
So the sequence is:

First-Play: gprm(0)=1 gprm(1) = 1
pre-commands: gprm(1) = 1, link to cell 1.
cell 1 plays.
cell 1 command: gprm(1) = 0, link to tail.
Post-command: gprm(1) = 0 , so jump back to head of PGC:
pre-commands: gprm(1) = 0, so link to episode in gprm(0): 1, cell 2
cell 2 plays.
cell 2 command: gprm(1) = 3, link to tail.
Post-command: gprm(1) = 3, so jump back to head of PGC:
pre-commands: gprm(1) = 3, so link to cell 3.
cell 3 (ending) plays.
cell 3 command: gprm(1) = 1, link to tail.
Post-command: gprm(1) = 1 , increment gprm(0) = 2 and jump back to head of PGC

and on and on:
pre-commands: gprm(1) = 1, link to cell 1.
cell 1 plays.
cell 1 command: gprm(1) = 0, link to tail.
Post-command: gprm(1) = 0 , so jump back to head of PGC:
pre-commands: gprm(1) = 0, so link to episode in gprm(0): 2, cell 4
cell 4 plays.

etc

Jeanl [/B]

I got your meaning now... ^^
so I need one PGC for each of your (pre + cell + post) commands, right?




@2COOL
Here is the VTS View of the created IFO:

VTS overview:

Menu attributes:
Video: MPEG-2 720x480 (NTSC) (NTSC 525/60) (4:3) (not specified perm.display)

Title Set (Movie) attributes:
Video: MPEG-2 720x480 (NTSC) (NTSC 525/60) (4:3) (not specified perm.display)
Audio 1: Not Specified (Linear PCM) 2ch 48Kbps 16bps (ID: 0xa0)
Audio 2: Not Specified (Dolby AC-3) 2ch 48Kbps DRC (ID: 0x81)
SubPicture 1: Not Specified (2-bit rle ) (ID: 0x20)
SubPicture 2: Not Specified (2-bit rle ) (ID: 0x21)

PGC_1 (program chain): [Title(TTN): 1] [00:24:19.18 / 30 fps] (Programs: 5) (Cells: 5) (uses VOB-IDs: 1)
[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] : time: 00:01:34.29 / 30 fps [Pos: 00:01:34.29] [Frames: 2849] SP/ILVU/DISC/SA:[ no/ no/yes/ no]
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 1/ 2] : time: 00:11:48.00 / 30 fps [Pos: 00:13:22.29] [Frames: 24089] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 03] [Pg 03] [Cell 03] [V/C Id: 1/ 3] : time: 00:08:45.15 / 30 fps [Pos: 00:22:08.14] [Frames: 39854] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 04] [Pg 04] [Cell 04] [V/C Id: 1/ 4] : time: 00:01:31.00 / 30 fps [Pos: 00:23:39.14] [Frames: 42584] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 05] [Pg 05] [Cell 05] [V/C Id: 1/ 5] : time: 00:00:40.04 / 30 fps [Pos: 00:24:19.18] [Frames: 43788] SP/ILVU/DISC/SA:[yes/ no/ no/ no]

PGC_2 (program chain): [Title(TTN): 1] [00:21:12.29 / 30 fps] (Programs: 3) (Cells: 3) (uses VOB-IDs: 2)
[Ch 06] [Pg 01] [Cell 01] [V/C Id: 2/ 2] : time: 00:12:00.00 / 30 fps [Pos: 00:12:00.00] [Frames: 21600] SP/ILVU/DISC/SA:[yes/ no/yes/ no]
[Ch 07] [Pg 02] [Cell 02] [V/C Id: 2/ 3] : time: 00:08:33.00 / 30 fps [Pos: 00:20:33.00] [Frames: 36990] SP/ILVU/DISC/SA:[yes/ no/ no/ no]
[Ch 08] [Pg 03] [Cell 03] [V/C Id: 2/ 5] : time: 00:00:39.29 / 30 fps [Pos: 00:21:12.29] [Frames: 38189] SP/ILVU/DISC/SA:[yes/ no/ no/ no]

PGC_3 (program chain): [Title(TTN): 1] [00:15:04.00 / 30 fps] (Programs: 1) (Cells: 1) (uses VOB-IDs: 3)
[Ch 09] [Pg 01] [Cell 01] [V/C Id: 3/ 2] : time: 00:15:04.00 / 30 fps [Pos: 00:15:04.00] [Frames: 27120] SP/ILVU/DISC/SA:[yes/ no/yes/ no]

jeanl
13th November 2004, 00:04
I got your meaning now... ^^
so I need one PGC for each of your (pre + cell + post) commands, right?
no, everything happens in the same PGC. This PGC will have a bunch of pre-command, a bunch of post-commands, and one cell command for each cell.

You can add cell commands in PgcEdit by adding commands below the "cell command" area. Then in each cell in your PGC, you have to indicate the cell command number (in the cell command area of your PGC) to be use for this cell.
In other words, in PgcEdit, you'll have
cell commands:
1. this one
2. that one
3. another one
etc...

You'll have to edit Cell 1 to use precommand 3 if you want precommand 3 to be executed at the end of Cell 1's playback. To do this, you double click on the PGC, and you'll see a list of cells and that's where you can edit stuff (the "cell cmd" field).

There's another simpler way I just thought about. The end song always goes to the opening song, right? So you can hard-code that in the end song's cell command (increment gprm(0) and link straight to the opening song cell, I think you can fit that in a single cell command but I'm not sure). Then the opening song's cell command should go to the post-command (linktail), where you'll link to the rith episode (based on gprm(0)).
The sequence is simpler:
- Fist play
- Opening song, cell command linkTail
- post-command, link to episode in gprm(0)
- episode, cell command links to end song
- end song, cell command increments gprm(0) and link to opening song.

etc...

It looks a bit simpler to me, but I'm not sure you can do it (i.e., remember that you can only have 1 cell command per cell)...
It will all be much easier once r0lZ releases PgcEdit 0.4 with the Trace function. :)
Jeanl

2COOL
13th November 2004, 00:34
@lovelegend

Let's work with your original files here and not your new one.

I take it that this is how your DVD is laid out with your original DVD files.

PGC_1 (program chain): [Title(TTN): 1]

[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] Ep 1 Opening
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 1/ 2]
[Ch 03] [Pg 03] [Cell 03] [V/C Id: 1/ 3]
[Ch 04] [Pg 04] [Cell 04] [V/C Id: 1/ 4]
[Ch 05] [Pg 05] [Cell 05] [V/C Id: 1/ 5] Ep 1 Ending
[Ch 06] [Pg 06] [Cell 06] [V/C Id: 2/ 1] Ep 2 Opening
[Ch 07] [Pg 07] [Cell 07] [V/C Id: 2/ 2]
[Ch 08] [Pg 08] [Cell 08] [V/C Id: 2/ 3]
[Ch 09] [Pg 09] [Cell 09] [V/C Id: 2/ 4]
[Ch 10] [Pg 10] [Cell 10] [V/C Id: 2/ 5] Ep 2 Ending
[Ch 11] [Pg 11] [Cell 11] [V/C Id: 3/ 1] Ep 3 Opening
[Ch 12] [Pg 12] [Cell 12] [V/C Id: 3/ 2]
[Ch 13] [Pg 13] [Cell 13] [V/C Id: 3/ 3]
[Ch 14] [Pg 14] [Cell 14] [V/C Id: 3/ 4]
[Ch 15] [Pg 15] [Cell 15] [V/C Id: 3/ 5] Ep 3 Ending

If so, then what I've been trying to say is to REUSE your Ep 1 opening and ending cells like so.

PGC_1 (program chain): [Title(TTN): 1]

[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] Ep 1 Opening
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 1/ 2]
[Ch 03] [Pg 03] [Cell 03] [V/C Id: 1/ 3]
[Ch 04] [Pg 04] [Cell 04] [V/C Id: 1/ 4]
[Ch 05] [Pg 05] [Cell 05] [V/C Id: 1/ 5] Ep 1 Ending
[Ch 06] [Pg 06] [Cell 06] [V/C Id: 1/ 1] Ep 1 Opening
[Ch 07] [Pg 07] [Cell 07] [V/C Id: 2/ 2]
[Ch 08] [Pg 08] [Cell 08] [V/C Id: 2/ 3]
[Ch 09] [Pg 09] [Cell 09] [V/C Id: 2/ 4]
[Ch 10] [Pg 10] [Cell 10] [V/C Id: 1/ 5] Ep 1 Ending
[Ch 11] [Pg 11] [Cell 11] [V/C Id: 1/ 1] Ep 1 Opening
[Ch 12] [Pg 12] [Cell 12] [V/C Id: 3/ 2]
[Ch 13] [Pg 13] [Cell 13] [V/C Id: 3/ 3]
[Ch 14] [Pg 14] [Cell 14] [V/C Id: 3/ 4]
[Ch 15] [Pg 15] [Cell 15] [V/C Id: 1/ 5] Ep 1 Ending

In PgcEdit, load up your files and in PGC Selection, double-click on your Title 1 PGC to bring up your PGC Editor dialog.

In your bottom section, you will see a VOB/Cell ID column. Click on your Ep 2 opening cell and change it to what Ep 1 is, which is 1/1. Get the picture? change the rest of the cell in questions.

Click OK to set. Save and preview to test. You should have your Eps 2 & 3 changed to what Ep 1 has. Your menus should work flawlessly with your Ep 1 opening and ending clips now playing instead.

Now, these cells have become unreferenced materials and can be stripped out without playback problems.

[V/C Id: 2/ 1] Ep 2 Opening (original)
[V/C Id: 2/ 5] Ep 2 Ending (original)
[V/C Id: 3/ 1] Ep 3 Opening (original)
[V/C Id: 3/ 5] Ep 2 Ending (original)

Unfortunately, they are holding the same VOB IDs. :( In IfoEdit, you can strip by VOB IDs but if you do with your files right now, stripping VOB ID 2 will strip out ALL cells with VOB ID 2 as below. You don't want that! We just want to strip two of them, right?

[Ch 06] [Pg 06] [Cell 06] [V/C Id: 2/ 1] Ep 2 Opening
[Ch 07] [Pg 07] [Cell 07] [V/C Id: 2/ 2]
[Ch 08] [Pg 08] [Cell 08] [V/C Id: 2/ 3]
[Ch 09] [Pg 09] [Cell 09] [V/C Id: 2/ 4]
[Ch 10] [Pg 10] [Cell 10] [V/C Id: 2/ 5] Ep 2 Ending
That's why I proposed for you to use VIDChanger (download (http://www.iespana.es/jsoto/)), prior to PgcEdit, in Fix Cell mode to change those into unique VOB IDs prior to editing like so.

All you need to do in VIDChanger is input folder, output folder, and set Next Cells to Fix Cell_Id. Process! Replace new files with original ones.

After VIDChanger and before editing with PgcEdit:

PGC_1 (program chain): [Title(TTN): 1]

[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] Ep 1 Opening
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 2/ 1]
[Ch 03] [Pg 03] [Cell 03] [V/C Id: 3/ 1]
[Ch 04] [Pg 04] [Cell 04] [V/C Id: 4/ 1]
[Ch 05] [Pg 05] [Cell 05] [V/C Id: 5/ 1] Ep 1 Ending
[Ch 06] [Pg 06] [Cell 06] [V/C Id: 6/ 1] Ep 2 Opening
[Ch 07] [Pg 07] [Cell 07] [V/C Id: 7/ 1]
[Ch 08] [Pg 08] [Cell 08] [V/C Id: 8/ 1]
[Ch 09] [Pg 09] [Cell 09] [V/C Id: 9/ 1]
[Ch 10] [Pg 10] [Cell 10] [V/C Id: 10/ 1] Ep 2 Ending
[Ch 11] [Pg 11] [Cell 11] [V/C Id: 11/ 1] Ep 3 Opening
[Ch 12] [Pg 12] [Cell 12] [V/C Id: 12/ 1]
[Ch 13] [Pg 13] [Cell 13] [V/C Id: 13/ 1]
[Ch 14] [Pg 14] [Cell 14] [V/C Id: 14/ 1]
[Ch 15] [Pg 15] [Cell 15] [V/C Id: 15/ 1] Ep 3 Ending

This makes it easier for IfoEdit VOB ID stripping after PgcEdit.
You can now uncheck these VOB IDs for stripping: 6, 10, 11, and 15.

[V/C Id: 6/ 1] Ep 2 Opening (original)
[V/C Id: 10/ 1] Ep 2 Ending (original)
[V/C Id: 11/ 1] Ep 3 Opening (original)
[V/C Id: 15/ 1] Ep 3 Ending (original)

Let me know if your percentage of compression has increased in DVD Shrink. Is over 80% acceptable for you? Remember now, v3.2 is better with compressing than 3.1. Let your eyes do the deciding. ;)

Are you still confused?

jeanl
13th November 2004, 01:55
2COOL's solution is definitely the way to go if you still have the original. Being able to reuse cells is one of the reasons why the DVD spec is so darn confusing, so we might as well use it!
It's also much more elegant than playing with pre/post/cell commands.

2COOL: How would you do it if the original no longer is available?
Jeanl

sweetness
13th November 2004, 02:00
@2COOL
what if you use vobBlanker to blank out(have to post to pre unchecked)
[V/C Id: 2/ 1]
[V/C Id: 2/ 5]
[V/C Id: 3/ 1]
[V/C Id: 3/ 5]
and then change the V/C Id's. would that work too? i've noticed reused cells are blanks.
and i don't know if it's faster too?

2COOL
13th November 2004, 02:29
@jeanl

Originally posted by jeanl
2COOL: How would you do it if the original no longer is available?
Jeanl Boy, it would be hard pressed on the freeware level, worse if menus were kept. Working with non-working files is pain. Even if lovelegend used an authoring program to completely rearrange everything, I would hope that the DVD had performed as planned then it would be a matter of tweaking it later on. In a worse case scenario, the menus would have to go. Then I would start working with gprm settings like you were.

@sweetness
Originally posted by sweetness
what if you use vobBlanker to blank out(have to post to pre unchecked)
[V/C Id: 2/ 1]
[V/C Id: 2/ 5]
[V/C Id: 3/ 1]
[V/C Id: 3/ 5]
and then change the V/C Id's. would that work too? i've noticed reused cells are blanks.Before editing the IDs...yes. The blank cells would end up as unreferenced. 10 KB blank vs stripped out. No difference to me. Again, unreferenced material.

and i don't know if it's faster too? Probably, since IfoEdit processing time for big Titles can be really slow at times. :( Derrow? We have a need...for speed! :p

lovelegend
13th November 2004, 19:53
Thanks guys, I've solved this problem and learnt a lot! :)

@jeanl
Though finally I didnt use your method, I still wanna learn more about your idea... :D
I found that cell command can be executed once for one cell. That's why all the cell commands are linking to the tail in order to perform the post commands, right? So all the pre and post commands are all if-then cases (i.e., checking the parameters gprm(0) and gprm(1)), right?
Also, the cell command "gprm(1) = 0, link to tail", isn't it two command lines instead of one already?


@2COOL
Sorry, I need to bother you again... ^^"
review the PGC:

PGC_1 (program chain): [Title(TTN): 1]

[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1]
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 1/ 2]
[Ch 03] [Pg 03] [Cell 03] [V/C Id: 1/ 3]
[Ch 04] [Pg 04] [Cell 04] [V/C Id: 1/ 4]
[Ch 05] [Pg 05] [Cell 05] [V/C Id: 1/ 5]
[Ch 06] [Pg 06] [Cell 06] [V/C Id: 2/ 1]
[Ch 07] [Pg 07] [Cell 07] [V/C Id: 2/ 2]
[Ch 08] [Pg 08] [Cell 08] [V/C Id: 2/ 3]
[Ch 09] [Pg 09] [Cell 09] [V/C Id: 2/ 4]
[Ch 10] [Pg 10] [Cell 10] [V/C Id: 2/ 5]
[Ch 11] [Pg 11] [Cell 11] [V/C Id: 3/ 1]
[Ch 12] [Pg 12] [Cell 12] [V/C Id: 3/ 2]
[Ch 13] [Pg 13] [Cell 13] [V/C Id: 3/ 3]
[Ch 14] [Pg 14] [Cell 14] [V/C Id: 3/ 4]
[Ch 15] [Pg 15] [Cell 15] [V/C Id: 3/ 5]

If you remember, one DVDr fits only 2.5 ep's...
In the above case, cell 13 and cell 14 don't fit in the DVDr...
How could I cut out those two cells and insert to the DVD 2 (original DVD has 3 ep's and my copy would be 2.5 ep's a disc, so I will blank out cell 11-15 of DVD 2 (i.e., ep 6))... should I rip only cell 13 (of DVD 1) by DVD Decrypter and then use VobBlanker to replace a cell in DVD 2 (and do the same thing for cell 14 of DVD 1)?

jeanl
13th November 2004, 21:24
Originally posted by lovelegend
Thanks guys, I've solved this problem and learnt a lot! :)

@jeanl
Though finally I didnt use your method, I still wanna learn more about your idea... :D
I found that cell command can be executed once for one cell. That's why all the cell commands are linking to the tail in order to perform the post commands, right? So all the pre and post commands are all if-then cases (i.e., checking the parameters gprm(0) and gprm(1)), right?

You're right...


Also, the cell command "gprm(1) = 0, link to tail", isn't it two command lines instead of one already?

Yes, i think you're right, although some commands can be compounded into 1. For example, you can do "gprm(1) = gprm(8), link to tail" in one command. Unfortunately you can only have 1 cell command per cell, so you'd have to find a way around that. But the best way to go is the one pointed to by 2COOL...
Jeanl

2COOL
13th November 2004, 23:07
@lovelegend

DVDShrink didn't meet your quality requirements?

lovelegend
14th November 2004, 17:41
Originally posted by 2COOL
DVDShrink didn't meet your quality requirements?

Hee... I just wanna learn more about it... ^^"
Actually I'm following this guide:
http://forum.doom9.org/showthread.php?s=&threadid=84887&perpage=20&pagenumber=1

However, when I demuxed the video stream, the filesize is right (4GB file), but it has playtime 25 mins only (which is the ep 1)... I tried both pgcdemux and rejig still got the same result... :(

lovelegend
15th November 2004, 21:08
Originally posted by lovelegend
However, when I demuxed the video stream, the filesize is right (4GB file), but it has playtime 25 mins only (which is the ep 1)... I tried both pgcdemux and rejig still got the same result... :(
This problem is solved by using IfoEdit to author new DVD instead of Rejig. However, I found a problem using 2COOL's method -- after playing cell 5 it jumps to cell 6 (which is actually reusing cell 1), but when I press "Next", it will jump to cell 2 instead of cell 7... :(

How could I fix this problem? Maybe jeanl's registry setting method? :rolleyes: Or you have any new idea, 2COOL? :D

jeanl
15th November 2004, 21:11
Originally posted by lovelegend
This problem is solved by using IfoEdit to author new DVD instead of Rejig. However, I found a problem using 2COOL's method -- after playing cell 5 it jumps to cell 6 (which is actually reusing cell 1), but when I press "Next", it will jump to cell 2 instead of cell 7... :(

Maybe I should use jeanl's registry setting method to fix this problem? Or you have any new idea, 2COOL? :D
by the way, lovelegend, r0lZ released version 0.4 of his PgcEdit app, with the great Trace function. You should definitely check it out in you haven't so far!
http://forum.doom9.org/showthread.php?s=&threadid=85329
Jeanl

2COOL
15th November 2004, 21:43
Originally posted by lovelegend
Or you have any new idea, 2COOL? :D Does your Cell 6 have a cell command with it? In fact, in PgcEdit, do a PGC Info Dump so that I can see if you have ANY cell commands.

lovelegend
16th November 2004, 02:00
@jeanl
I'm still reading your guide... :)
But I still have something to work on, so it may take me few more days before I can finish your guide and start trying.. ;)

@2COOL
There's no cell commands...
And sorry for the info, I just found that it has no playback problem on DVD player but software player -- PowerDVD (I ripped the files onto my HDD and did all the editing, so I kept testing the playback on PowerDVD)... I just tested one more software player -- media player classic and it had no playback problem as well.... :cool:

wingchun
23rd May 2005, 23:10
I'm trying to do exactly the same thing. I've been working for this for a couple of days!
What I did till now is:
Use DVD Remake Pro to blank out all the titles I don't need.
Use PGCEdit to make the blanked cells use always the same copy of the titles.
Now I have the same problem as you.
My DVD plays:
Intro>Episode 1>Ending>Intro>Episode 1 again...
If I use menu to go to another episode the intro always skips to the episode one!
The only way to avoid this is to create a command like: you're playing episode 2 so X=2 then if X=2 after the ending go to episode 3 then X=3.
It seems that DVD Remake Pro is an easy tool to do this, but I'm still not able!!! See the attachment.. It shows the command and another screen that shows how cell one and 4 are used more than one time.

Here there are the commands PGCEdit shows me:


TST 1 , 1 TTN 1 (1:46:17) Title 1 - Chapters: 20, Programs: 20, Cells: 21

********** pre commands:
[00 00 00 00 00 00 00 00] 1 NOP
[00 00 00 00 00 00 00 00] 2 NOP
[00 00 00 00 00 00 00 00] 3 NOP
[00 00 00 00 00 00 00 00] 4 NOP
[00 00 00 00 00 00 00 00] 5 NOP
[61 00 00 00 00 06 00 00] 6 Set gprm(0) =(mov) gprm(6)
[71 00 00 06 00 00 00 00] 7 Set gprm(6) =(mov) 0
[71 00 00 01 00 00 00 00] 8 Set gprm(1) =(mov) 0
[71 00 00 02 00 00 00 00] 9 Set gprm(2) =(mov) 0
[00 A2 00 00 00 01 00 00] 10 if ( gprm(0) == 1 ) then { Break }
[20 A6 00 00 00 02 00 02] 11 if ( gprm(0) == 2 ) then { LinkPGN Program 2 }
[20 A6 00 00 00 03 00 03] 12 if ( gprm(0) == 3 ) then { LinkPGN Program 3 }
[20 A6 00 00 00 04 00 04] 13 if ( gprm(0) == 4 ) then { LinkPGN Program 4 }
[20 A6 00 00 00 05 00 05] 14 if ( gprm(0) == 5 ) then { LinkPGN Program 5 }
[20 A6 00 00 00 06 00 06] 15 if ( gprm(0) == 6 ) then { LinkPGN Program 6 }
[20 A6 00 00 00 07 00 07] 16 if ( gprm(0) == 7 ) then { LinkPGN Program 7 }
[20 A6 00 00 00 08 00 08] 17 if ( gprm(0) == 8 ) then { LinkPGN Program 8 }
[20 A6 00 00 00 09 00 09] 18 if ( gprm(0) == 9 ) then { LinkPGN Program 9 }
[20 A6 00 00 00 0A 00 0A] 19 if ( gprm(0) == 10 ) then { LinkPGN Program 10 }
[20 A6 00 00 00 0B 00 0B] 20 if ( gprm(0) == 11 ) then { LinkPGN Program 11 }
[20 A6 00 00 00 0C 00 0C] 21 if ( gprm(0) == 12 ) then { LinkPGN Program 12 }
[20 A6 00 00 00 0D 00 0D] 22 if ( gprm(0) == 13 ) then { LinkPGN Program 13 }
[20 A6 00 00 00 0E 00 0E] 23 if ( gprm(0) == 14 ) then { LinkPGN Program 14 }
[20 A6 00 00 00 0F 00 0F] 24 if ( gprm(0) == 15 ) then { LinkPGN Program 15 }
[20 A6 00 00 00 10 00 10] 25 if ( gprm(0) == 16 ) then { LinkPGN Program 16 }
[20 A6 00 00 00 11 00 11] 26 if ( gprm(0) == 17 ) then { LinkPGN Program 17 }
[20 A6 00 00 00 12 00 12] 27 if ( gprm(0) == 18 ) then { LinkPGN Program 18 }
[20 A6 00 00 00 13 00 13] 28 if ( gprm(0) == 19 ) then { LinkPGN Program 19 }
[20 A6 00 00 00 14 00 14] 29 if ( gprm(0) == 20 ) then { LinkPGN Program 20 }
********** post commands:
[30 08 00 08 01 C0 00 00] 1 (CallSS) Call the VMGM PGC 8, resume cell 1
********** cell commands:
[20 07 00 00 00 00 00 05] 1 LinkCN Cell 5
[20 07 00 00 00 00 00 07] 2 LinkCN Cell 7
[20 07 00 00 00 00 00 0A] 3 LinkCN Cell 10
[20 07 00 00 00 00 00 0C] 4 LinkCN Cell 12
[20 07 00 00 00 00 00 10] 5 LinkCN Cell 16
[20 07 00 00 00 00 00 12] 6 LinkCN Cell 18



Playback time: 01:46:17.03 (at 25 fps)
PG Playback mode: sequential
PUOs: 4 (0x00000004)
- Title play (0x00000004)
NextPGCN: 0
PrevPGCN: 0
GoUpPGCN: 0
PGC Still Time: 0
Audio stream 1 status: 0x00008000 (stream=0)
Audio stream 2 status: 0x00008100 (stream=1)
Audio stream 3 status: 0x00008200 (stream=2)
Subpic stream 1 status: 0x80000000 (streams for 4:3=0, wide=0, letterbox=0, pan&scan=0)
Subpic stream 2 status: 0x80010100 (streams for 4:3=0, wide=1, letterbox=1, pan&scan=0)
Subpic stream 3 status: 0x80020200 (streams for 4:3=0, wide=2, letterbox=2, pan&scan=0)
Subpic stream 4 status: 0x80030300 (streams for 4:3=0, wide=3, letterbox=3, pan&scan=0)
Subpic stream 5 status: 0x80040400 (streams for 4:3=0, wide=4, letterbox=4, pan&scan=0)
Subpic stream 6 status: 0x80050500 (streams for 4:3=0, wide=5, letterbox=5, pan&scan=0)
Subpic stream 7 status: 0x80060600 (streams for 4:3=0, wide=6, letterbox=6, pan&scan=0)

Chap. Prog. Cell Type Layer Res- Still Cell Playback End Entry First Last Last VOB Cell
(PTT) Flags Break tric- Time Cmd. Time Time VOBU ILVU VOBU VOBU ID ID
ted. sector End Start End

0 1 1 1 2 yes no 0 0 00:01:32.13 00:01:32.13 0 0 47836 48105 1 1
0 2 2 2 0 yes no 0 0 00:10:30.00 00:12:02.13 48106 0 395403 395814 1 2
0 3 3 3 0 yes no 0 1 00:11:07.02 00:23:09.15 395815 0 759774 760108 1 3
0 4 4 4 2 yes no 0 0 00:01:35.07 00:24:44.22 3184046 0 3231051 3231356 13 3
0 5 5 5 2 yes no 0 2 00:00:32.06 00:25:17.03 760114 0 776950 777210 3 1
0 6 6 6 2 yes no 0 0 00:01:32.13 00:26:49.16 0 0 47836 48105 1 1
0 7 7 7 2 yes no 0 0 00:10:56.01 00:37:45.17 777216 0 1139000 1139416 5 1
0 8 8 8 0 yes no 0 3 00:11:34.17 00:49:20.09 1139417 0 1539269 1539757 5 2
0 9 9 9 2 yes no 0 0 00:01:35.07 00:50:55.16 3184046 0 3231051 3231356 13 3
0 10 10 10 2 yes no 0 4 00:00:30.23 00:51:26.14 1539763 0 1556516 1556732 7 1
0 11 11 11 2 yes no 0 0 00:01:32.13 00:52:59.02 0 0 47836 48105 1 1
0 12 12 12 2 yes no 0 0 00:04:48.03 00:57:47.05 1556738 0 1713509 1714131 9 1
0 13 0 yes no 0 0 00:06:03.21 01:03:51.01 1714132 0 1918317 1918870 9 2
0 13 13 14 0 yes no 0 5 00:12:32.01 01:16:23.02 1918871 0 2349565 2349780 9 3
0 14 14 15 2 yes no 0 0 00:01:35.07 01:17:58.09 3184046 0 3231051 3231356 13 3
0 15 15 16 2 yes no 0 6 00:00:31.13 01:18:29.22 2349786 0 2365960 2366254 11 1
0 16 16 17 2 yes no 0 0 00:01:32.13 01:20:02.10 0 0 47836 48105 1 1
0 17 17 18 2 yes no 0 0 00:11:54.03 01:31:56.13 2366260 0 2763405 2763836 13 1
0 18 18 19 0 yes no 0 0 00:12:14.19 01:44:11.07 2763837 0 3183675 3184045 13 2
0 19 19 20 0 yes no 0 0 00:01:35.07 01:45:46.14 3184046 0 3231051 3231356 13 3
0 20 20 21 0 yes no 0 0 00:00:30.14 01:46:17.03 3231357 0 3247226 3247613 13 4

http://img49.echo.cx/img49/7593/image12xi.jpg

jeanl
23rd May 2005, 23:21
I don't understand how this is supposed to work! Assuming episode 1 is in cell 1, the cell command for this cell says link to cell 7, and the cell command for cell 7 says, link to cell 7 again! This should give you an infinite loop...
You need to give us more info. What cell have the episodes, which cell has the intro, which cell has the ending (if there's one), etc.
Also, don't forget that when finished playing a cell, the cell command is executed, so take that into account in your navigation.

Open the DVD in PgcEdit and use the "trace" function to follow, step by step, where the navigation takes you, then you'll understand why things are not working...
jeanl

wingchun
23rd May 2005, 23:28
Cell 1 is the intro, and I used last cell 20 for the ending.
So when skip the chapters, the ending "cell 20" takes me to the opening "cell 1", and this one again to "cell 2" episode 1 (not Star Wars ;))

2COOL
23rd May 2005, 23:36
Can you go back an edit your post with PgcEdit commands by just enclosing them in [CODE] [ /CODE] tags.

jeanl
23rd May 2005, 23:43
I see. Here's what you need to do (at least, that's 1 solution).
* Use 2 registers. One that holds the episode to play, the other one that tells you whether the intro has been played. Use the highlight register to tell you whether the intro has been played. This will make it possible to set it in a cell command.
* In your precommand:
. Test whether the intro has been played, by checking the value in the highlight register. If not played link to intro.
. If intro has been played link to the right episode cell.

* In your cells:
. Your intro cell (cell 1 from what you say) should have a cell command that sets the highlight register to 1024 for example and links to the top of the precommands.
. Each episode should have a cell command that links to the ending cell (21).
. The ending cell should have no cell command.

* In your postcommand area, reset the highlight register (to indicate the intro should be played) increment the episode to play and link to the top of the PGC.

If you can't find the commands to do that, I'll post more info...
Jeanl

wingchun
24th May 2005, 01:56
I'm not sure about what do you mean. I'll "study" it tomorrow, cos' it's getting late here..
By the way, I exported a "Test DVD" with DVD Remake, it has all the commands and IFO, but the video has only two seconds for each cell.
If someone wants to take a look:
Test DVD 30Megabytes (http://ForDOOM9.homestead.com/DVDOriginal.rar)

jeanl
24th May 2005, 05:48
Here's what I did, and it seems to work OK...

TST 1 , 1 TTN 1 (0:55) Title 1 - Chapters: 20, Programs: 20, Cells: 21

********** pre commands:
[00 A1 00 01 00 01 00 03] 1 if ( gprm(1) == 1 ) then { Goto line 3 }
[00 02 00 00 00 00 00 00] 2 Break
[73 00 00 00 00 01 00 00] 3 Set gprm(0) +=(add) 1
[00 A2 00 00 00 01 00 00] 4 if ( gprm(0) == 1 ) then { Break }
[20 A6 00 00 00 02 00 02] 5 if ( gprm(0) == 2 ) then { LinkPGN Program 2 }
[20 A6 00 00 00 03 00 03] 6 if ( gprm(0) == 3 ) then { LinkPGN Program 3 }
[20 A6 00 00 00 04 00 04] 7 if ( gprm(0) == 4 ) then { LinkPGN Program 4 }
[20 A6 00 00 00 05 00 05] 8 if ( gprm(0) == 5 ) then { LinkPGN Program 5 }
[20 A6 00 00 00 06 00 06] 9 if ( gprm(0) == 6 ) then { LinkPGN Program 6 }
[20 A6 00 00 00 07 00 07] 10 if ( gprm(0) == 7 ) then { LinkPGN Program 7 }
[20 A6 00 00 00 08 00 08] 11 if ( gprm(0) == 8 ) then { LinkPGN Program 8 }
[20 A6 00 00 00 09 00 09] 12 if ( gprm(0) == 9 ) then { LinkPGN Program 9 }
[20 A6 00 00 00 0A 00 0A] 13 if ( gprm(0) == 10 ) then { LinkPGN Program 10 }
[20 A6 00 00 00 0B 00 0B] 14 if ( gprm(0) == 11 ) then { LinkPGN Program 11 }
[20 A6 00 00 00 0C 00 0C] 15 if ( gprm(0) == 12 ) then { LinkPGN Program 12 }
[20 A6 00 00 00 0D 00 0D] 16 if ( gprm(0) == 13 ) then { LinkPGN Program 13 }
[20 A6 00 00 00 0E 00 0E] 17 if ( gprm(0) == 14 ) then { LinkPGN Program 14 }
[20 A6 00 00 00 0F 00 0F] 18 if ( gprm(0) == 15 ) then { LinkPGN Program 15 }
[20 A6 00 00 00 10 00 10] 19 if ( gprm(0) == 16 ) then { LinkPGN Program 16 }
[20 A6 00 00 00 11 00 11] 20 if ( gprm(0) == 17 ) then { LinkPGN Program 17 }
[20 A6 00 00 00 12 00 12] 21 if ( gprm(0) == 18 ) then { LinkPGN Program 18 }
[20 A6 00 00 00 13 00 13] 22 if ( gprm(0) == 19 ) then { LinkPGN Program 19 }
[20 A6 00 00 00 14 00 14] 23 if ( gprm(0) == 20 ) then { LinkPGN Program 20 }
[30 08 00 00 01 83 00 00] 24 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** post commands:
[71 00 00 01 00 00 00 00] 1 Set gprm(1) =(mov) 0
[20 04 00 00 00 00 00 01] 2 LinkPGCN PGC 1
********** cell commands:
[71 01 00 01 00 01 00 09] 1 Set gprm(1) =(mov) 1 ; LinkTopPGC
[71 07 00 00 00 02 00 15] 2 Set gprm(0) =(mov) 2 ; LinkCN Cell 21
[71 07 00 00 00 03 00 15] 3 Set gprm(0) =(mov) 3 ; LinkCN Cell 21
[71 07 00 00 00 04 00 15] 4 Set gprm(0) =(mov) 4 ; LinkCN Cell 21
[71 07 00 00 00 05 00 15] 5 Set gprm(0) =(mov) 5 ; LinkCN Cell 21
[71 07 00 00 00 06 00 15] 6 Set gprm(0) =(mov) 6 ; LinkCN Cell 21
[71 07 00 00 00 07 00 15] 7 Set gprm(0) =(mov) 7 ; LinkCN Cell 21
[71 07 00 00 00 08 00 15] 8 Set gprm(0) =(mov) 8 ; LinkCN Cell 21
[71 07 00 00 00 09 00 15] 9 Set gprm(0) =(mov) 9 ; LinkCN Cell 21
[71 07 00 00 00 0A 00 15] 10 Set gprm(0) =(mov) 10 ; LinkCN Cell 21
[71 07 00 00 00 0B 00 15] 11 Set gprm(0) =(mov) 11 ; LinkCN Cell 21
[71 07 00 00 00 0C 00 15] 12 Set gprm(0) =(mov) 12 ; LinkCN Cell 21
[71 07 00 00 00 0D 00 15] 13 Set gprm(0) =(mov) 13 ; LinkCN Cell 21
[71 07 00 00 00 0E 00 15] 14 Set gprm(0) =(mov) 14 ; LinkCN Cell 21
[71 07 00 00 00 0F 00 15] 15 Set gprm(0) =(mov) 15 ; LinkCN Cell 21
[71 07 00 00 00 10 00 15] 16 Set gprm(0) =(mov) 16 ; LinkCN Cell 21
[71 07 00 00 00 11 00 15] 17 Set gprm(0) =(mov) 17 ; LinkCN Cell 21
[71 07 00 00 00 12 00 15] 18 Set gprm(0) =(mov) 18 ; LinkCN Cell 21
[71 07 00 00 00 13 00 15] 19 Set gprm(0) =(mov) 19 ; LinkCN Cell 21
[71 07 00 00 00 14 00 15] 20 Set gprm(0) =(mov) 20 ; LinkCN Cell 21
[20 01 00 00 00 00 00 0D] 21 LinkTailPGC



Playback time: 00:00:55.02 (at 25 fps)
PG Playback mode: sequential
PUOs: 0 (0x00000000)
NextPGCN: 0
PrevPGCN: 0
GoUpPGCN: 0
PGC Still Time: 0
Audio stream 1 status: 0x00008000 (stream=0)
Subpic stream 1 status: 0x80000000 (streams for 4:3=0, wide=0, letterbox=0, pan&scan=0)
Subpic stream 2 status: 0x80010100 (streams for 4:3=0, wide=1, letterbox=1, pan&scan=0)
Subpic stream 3 status: 0x80020200 (streams for 4:3=0, wide=2, letterbox=2, pan&scan=0)
Subpic stream 4 status: 0x80030300 (streams for 4:3=0, wide=3, letterbox=3, pan&scan=0)
Subpic stream 5 status: 0x80040400 (streams for 4:3=0, wide=4, letterbox=4, pan&scan=0)
Subpic stream 6 status: 0x80050500 (streams for 4:3=0, wide=5, letterbox=5, pan&scan=0)
Subpic stream 7 status: 0x80060600 (streams for 4:3=0, wide=6, letterbox=6, pan&scan=0)

Chap. Prog. Cell Type Layer Res- Still Cell Playback End Entry First Last Last VOB Cell
(PTT) Flags Break tric- Time Cmd. Time Time VOBU ILVU VOBU VOBU ID ID
ted. sector End Start End

1 1 1 2 yes no 0 1 00:00:02.13 00:00:02.13 0 0 357 585 1 1
2 2 2 2 yes no 1 2 00:00:02.16 00:00:05.04 586 0 1102 1269 2 1
3 3 3 2 yes no 1 3 00:00:02.16 00:00:07.20 1270 0 1824 2013 3 1
4 4 4 2 yes no 1 4 00:00:02.13 00:00:10.08 2014 0 2732 3010 4 1
5 5 5 2 yes no 1 5 00:00:02.16 00:00:12.24 3011 0 3469 3622 5 1
6 6 6 2 yes no 1 6 00:00:02.16 00:00:15.15 3623 0 4046 4309 6 1
7 7 7 2 yes no 1 7 00:00:02.16 00:00:18.06 4310 0 4833 5013 7 1
8 8 8 2 yes no 1 8 00:00:02.13 00:00:20.19 5014 0 5743 6008 8 1
9 9 9 2 yes no 1 9 00:00:02.16 00:00:23.10 6009 0 6827 7104 9 1
10 10 10 2 yes no 1 10 00:00:02.16 00:00:26.01 7105 0 7535 7680 10 1
11 11 11 2 yes no 1 11 00:00:02.16 00:00:28.17 7681 0 8144 8372 11 1
12 12 12 2 yes no 1 12 00:00:02.16 00:00:31.08 8373 0 8920 9104 12 1
13 2 yes no 1 13 00:00:02.16 00:00:33.24 9105 0 9871 10133 13 1
13 13 14 2 yes no 1 14 00:00:02.16 00:00:36.15 10134 0 10635 10802 14 1
14 14 15 2 yes no 1 15 00:00:02.16 00:00:39.06 10803 0 11615 11888 15 1
15 15 16 2 yes no 1 16 00:00:02.16 00:00:41.22 11889 0 12302 12435 16 1
16 16 17 2 yes no 1 17 00:00:02.16 00:00:44.13 12436 0 12877 13114 17 1
17 17 18 2 yes no 1 18 00:00:02.16 00:00:47.04 13115 0 13633 13798 18 1
18 18 19 2 yes no 1 19 00:00:02.16 00:00:49.20 13799 0 14442 14719 19 1
19 19 20 2 yes no 1 20 00:00:02.16 00:00:52.11 14720 0 15544 15821 20 1
20 20 21 2 yes no 1 21 00:00:02.16 00:00:55.02 15822 0 16258 16489 21 1


Don't worry about the still times, I was trying to make each chapter last a bit longer.
Here's how it works:
- gprm(1) tells you whether the intro (cell 1) has been played. So in the precommands if gprm(1) == 1 we skip to the part that plays the right cell based on gprm(0).
- gprm(0) tells you which chapter to play, this is pretty much the way you had it.

- Each episode cell (2 to 20) has its own cell command, where gprm(0) is set to indicate which cell just played, and then jump to cell 21 (the ending). The reason I'm setting gprm(0) there is that if you skip from episode to episode (using the Next button), gprm(0) needs to be updated so at the end of the episode you won't go back to a previous episode.

- The cell command for cell 1 (intro) sets gprm(1) to 1 and jumps to the top of the PGC. gprm(1)=1 indicates the intro was played, no need to play it again.
- Cell 21 (the ending) has a cell command that links to the postcommands (this isn't really needed).
- The postcommand simply reset gprm(1) to 0 (so the intro will be played next time we go to the precommands) and then jumps to the beginning of the PGC.
NOTE: this command could also be LinkTopPGC, but I found in PowerDVD that this does not work, I have no idea why! In other words, it looks like a LinkTopPGC command in the postcommand area does not jump to the top of the precommands in the same PGC, although it did in mediaplayer classic...


Anyway, check it out for yourself, but you get the idea...
Jeanl

wingchun
25th May 2005, 17:52
Thanks. By the way, I'm using PgcEdit to add these commands.
If I select Info:Pgc I can't just copy and paste your commands.
I had to select each command and re-edit it manually.
I didn't manage to change:
[30 08 00 00 01 83 00 00] 24 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
Where's the command for "menu of current VTS"? I should enter a number.
Moreover, where is the menu to change post commands and cell commands?

jeanl
25th May 2005, 17:57
wingchun, the easiest way is to copy the bunch of commands in the post, and paste them in the command area in PgcEdit (on the right)... That works! Don't re-enter them by hand! Pasting in the PGC info does not work, but pasting in the pre/post command area does work.
Make sure you have the "renumber gotos" option set to true in your options. This makes sure the gotos point to the right lines when you insert commands. If you don't you have to readjust them manually...

Anyway. If you double click on a command, you can select by name, by type etc. Just select CallSS, then you can select where the CallSS should point to...

Jeanl

wingchun
25th May 2005, 20:28
Ah, yes. I tried to paste pre,post and cell commands at the same time instead of cut&paste them separately.
I'm taking a look to the DVD now. It seems to play properly, thanks.
It just doesn't work when I skip, maybe it doesn't read post commands, I'll try something later.
Also every button I press in the chapter menu takes me to cell one, I saw that their commands are LinkTailPGC, I'll change each one of them to Jump to a definite Title and Chapter.
I'll work on it...
Also, do you know any way I can remove the layer break between cell 12 and 13 and merge them in one chapter?
I tried deleting cell 13 in PGC Edit, then in IFOedit I tried to change cell 12 limits to the ones of cell 13:
Cell_13: start sector of last VOBU 2108953
Cell_13: last sector of this cell 2109506
And get a longer cell 12, but it remains 00:04:48.03
If I add:
Cell_12: playback time (BCD) 280643
And Cell_13: playback time (BCD) 394081
Ifoedit says that fps isn't valid for frame 12.
What I'm doing wrong?

jeanl
25th May 2005, 21:54
Originally posted by wingchun
Ah, yes. I tried to paste pre,post and cell commands at the same time instead of cut&paste them separately.
I'm taking a look to the DVD now. It seems to play properly, thanks.
It just doesn't work when I skip, maybe it doesn't read post commands, I'll try something later.

It worked for me! That's strange. What happens when you skip?

Also every button I press in the chapter menu takes me to cell one, I saw that their commands are LinkTailPGC, I'll change each one of them to Jump to a definite Title and Chapter.

Yes, I saw that, simply make sure that gprm(0) is set to the chapter you want to go to - 1 (remember it's incremented in the precommands) and that gprm(1) is 0 so the intro gets played.

I'll work on it...
Also, do you know any way I can remove the layer break between cell 12 and 13 and merge them in one chapter?
I tried deleting cell 13 in PGC Edit, then in IFOedit I tried to change cell 12 limits to the ones of cell 13:
Cell_13: start sector of last VOBU 2108953
Cell_13: last sector of this cell 2109506
And get a longer cell 12, but it remains 00:04:48.03
If I add:
Cell_12: playback time (BCD) 280643
And Cell_13: playback time (BCD) 394081
Ifoedit says that fps isn't valid for frame 12.
What I'm doing wrong?
mmm, I don't think I can help you there... Maybe blutach?
jeanl

wingchun
29th May 2005, 03:03
Sorted everything out. Thanks.

Mr.Bitey
15th August 2006, 02:36
Thanks for this thread guys - VERY useful!

Ive saved a HEAP of space and kept my episode dvd backups looking like the original :-)

I used the pcgedit re-mapping cellid's method with a heap of anime titles, thanks to this thread it was quick and easy. Each one used seperate cells for the intro and finish (start and end) of each episode so it was very easy to re-use a single start and finish. I even went back and re-did some of my favourite titles!

Cheers,
Bitey

jeanl
20th August 2006, 08:26
That was an OLD thread!!! Glad to see that it's still useful!
Jeanl

bigotti5
20th August 2006, 09:35
@jeanl

NOTE: this command could also be LinkTopPGC, but I found in PowerDVD that this does not work, I have no idea why! In other words, it looks like a LinkTopPGC command in the postcommand area does not jump to the top of the precommands in the same PGC, although it did in mediaplayer classic...

By the spec "Link by Subinstruction" commands (20 01 .. ..) can only be stored in the cell- or buttoncommand area. So a LinkTopPGC command in postcommand area is not valid.

LinkSIns commands are

LinkNoLink
LinkTopC
LinkNextC
LinkPrevC
LinkTopPG
LinkNextPG
LinkPrevPG
LinkTopPGC
LinkNextPGC
LinkPrevPGC
LinkGoUpPGC
LinkTailPGC
RSM