Log in

View Full Version : Confused on angles


2COOL
26th February 2005, 06:35
I'm stumped on trying to figure out angles in the IFOs. The DVD specs say that up to 9 angles can be present.
The most I've seen is 3. e.g. Star Wars, The Phantom Menace (Title 1).

VTS overview:

PGC_1 (program chain): [Title(TTN): 1] [02:16:04.06 / 30 fps] (Programs: 51) (Cells: 80) (uses VOB-IDs: 1,2,3,4,2,3,4,5,6,7)
[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] : time: 00:00:21.00 / 30 fps ... SP/ILVU/DISC/SA:[ no/ no/yes/ no]
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 2/ 1] (Angle 1): time: 00:01:31.21 / 30 fps ... SP/ILVU/DISC/SA:[yes/yes/yes/ no]
[Cell 03] [V/C Id: 3/ 1] (Angle 2): time: 00:01:31.21 / 30 fps ... SP/ILVU/DISC/SA:[yes/yes/yes/ no]
[Cell 04] [V/C Id: 4/ 1] (Angle 3): time: 00:01:31.21 / 30 fps ... SP/ILVU/DISC/SA:[yes/yes/yes/ no]
[Ch 03] [Pg 03] [Cell 05] [V/C Id: 2/ 2] (Angle 1): time: 00:00:09.19 / 30 fps ... SP/ILVU/DISC/SA:[yes/yes/ no/ no]
[Cell 06] [V/C Id: 3/ 2] (Angle 2): time: 00:00:09.19 / 30 fps ... SP/ILVU/DISC/SA:[yes/yes/ no/ no]
[Cell 07] [V/C Id: 4/ 2] (Angle 3): time: 00:00:09.19 / 30 fps ... SP/ILVU/DISC/SA:[yes/yes/ no/ no]
.
.
.
The angles should be configured in the Cell type flags. According to the flags, I can have only 3 types of angle blocks. Below is PgcEdit's example but I've tried without success to manually input valid values in IfoEdit to get a Angle 4.

http://img233.exs.cx/img233/70/image0043qa.png

How is a 4 to 9 angled title configured? Can anyone tell me a NTSC DVD (region 1) that has more than 3 angles?

jsoto
26th February 2005, 11:33
Any multiangle cell type different to first angle and last angle is a "middle angle" Cell
Let's say, if you have 6 angles, you will have
- One first angle block cell
- 4 middle angle block cell
- One last angle block cell

In IFOs, the angle number of a middle angle cell is calculated from its position in the Program Chain. I do not know very well how can it be calculated looking into an insolated VOB (without IFO), but there are nine pointers in the nav pack...

All of them must be interleaved, and AFAIK, the duration must be the same.

Men in black I (PAL) has an extra with 3 PGCs with four angles each one.


VTS overview:

Menu attributes:
Video: MPEG-2 720x576 (PAL) (PAL 625/50) (4:3) (not specified perm.display)
SubPicture 1: Not Specified (2-bit rle )

Title Set (Movie) attributes:
Video: MPEG-2 720x576 (PAL) (PAL 625/50) (4:3) (not specified perm.display)
Audio 1: English (Dolby AC-3) 2ch 48Kbps DRC (ID: 0x80)

PGC_1 (program chain): [Title(TTN): 1] [00:00:08.03 / 25 fps] (Programs: 2) (Cells: 5) (uses VOB-IDs: 1,2,3,4,5)
[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] (Angle 1): time: 00:00:06.13 / 25 fps [Pos: 00:00:06.13] [Frames: 163] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 02] [V/C Id: 2/ 1] (Angle 2): time: 00:00:06.13 / 25 fps [Pos: 00:00:06.13] [Frames: 163] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 03] [V/C Id: 3/ 1] (Angle 3): time: 00:00:06.13 / 25 fps [Pos: 00:00:06.13] [Frames: 163] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 04] [V/C Id: 4/ 1] (Angle 4): time: 00:00:06.13 / 25 fps [Pos: 00:00:06.13] [Frames: 163] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Ch 02] [Pg 02] [Cell 05] [V/C Id: 5/ 1] : time: 00:00:01.15 / 25 fps [Pos: 00:00:08.03] [Frames: 203] SP/ILVU/DISC/SA:[yes/ no/yes/yes]

PGC_2 (program chain): [Title(TTN): 2] [00:00:13.05 / 25 fps] (Programs: 2) (Cells: 5) (uses VOB-IDs: 6,7,8,9,10)
[Ch 01] [Pg 01] [Cell 01] [V/C Id: 6/ 1] (Angle 1): time: 00:00:11.15 / 25 fps [Pos: 00:00:11.15] [Frames: 290] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 02] [V/C Id: 7/ 1] (Angle 2): time: 00:00:11.15 / 25 fps [Pos: 00:00:11.15] [Frames: 290] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 03] [V/C Id: 8/ 1] (Angle 3): time: 00:00:11.15 / 25 fps [Pos: 00:00:11.15] [Frames: 290] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 04] [V/C Id: 9/ 1] (Angle 4): time: 00:00:11.15 / 25 fps [Pos: 00:00:11.15] [Frames: 290] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Ch 02] [Pg 02] [Cell 05] [V/C Id: 10/ 1] : time: 00:00:01.15 / 25 fps [Pos: 00:00:13.05] [Frames: 330] SP/ILVU/DISC/SA:[yes/ no/yes/yes]

PGC_3 (program chain): [Title(TTN): 3] [00:00:11.12 / 25 fps] (Programs: 2) (Cells: 5) (uses VOB-IDs: 11,12,13,14,15)
[Ch 01] [Pg 01] [Cell 01] [V/C Id: 11/ 1] (Angle 1): time: 00:00:09.22 / 25 fps [Pos: 00:00:09.22] [Frames: 247] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 02] [V/C Id: 12/ 1] (Angle 2): time: 00:00:09.22 / 25 fps [Pos: 00:00:09.22] [Frames: 247] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 03] [V/C Id: 13/ 1] (Angle 3): time: 00:00:09.22 / 25 fps [Pos: 00:00:09.22] [Frames: 247] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Cell 04] [V/C Id: 14/ 1] (Angle 4): time: 00:00:09.22 / 25 fps [Pos: 00:00:09.22] [Frames: 247] SP/ILVU/DISC/SA:[ no/yes/yes/yes]
[Ch 02] [Pg 02] [Cell 05] [V/C Id: 15/ 1] : time: 00:00:01.15 / 25 fps [Pos: 00:00:11.12] [Frames: 287] SP/ILVU/DISC/SA:[yes/ no/yes/yes]

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

Language Menu Unit 1: [English]
Menu 1: [Root-Menu] (entry PGC) (Programs: 0) (Cells: 0)
Menu 2: [entry only] (Programs: 1) (Cells: 1) (uses VOB-IDs: 1)
Menu 3: [entry only] (Programs: 0) (Cells: 0)
Menu 4: [entry only] (Programs: 0) (Cells: 0)

jsoto

jsoto
26th February 2005, 11:43
BTW, my Phanton menace (spanish version) has only two angles, the one with the intro in Spanish and the one in English. Which languages do you have? Three?



VTS overview:

Menu attributes:
Video: MPEG-2 720x576 (PAL) (PAL 625/50) (16:9) (letterboxed)
Audio 1: Not Specified (Dolby AC-3) 2ch 48Kbps DRC
SubPicture 1: Not Specified (2-bit rle )

Title Set (Movie) attributes:
Video: MPEG-2 720x576 (PAL) (PAL 625/50) (16:9) (letterboxed)
Audio 1: English (Dolby AC-3) 6ch 48Kbps DRC normal (ID: 0x80)
Audio 2: Espaņol (Dolby AC-3) 6ch 48Kbps DRC normal (ID: 0x81)
Audio 3: English (Dolby AC-3) 2ch 48Kbps DRC director's comments
( SubPicture 1: English (2-bit rle ) (ID: 0x20,0x21)
SubPicture 2: Espaņol (2-bit rle ) (ID: 0x22,0x23)
SubPicture 3: English (2-bit rle ) (ID: 0x24,0x25)
SubPicture 4: Espaņol (2-bit rle ) (ID: 0x26,0x27)
SubPicture 5: English (2-bit rle ) (ID: 0x28,0x29)
SubPicture 6: Espaņol (2-bit rle ) (ID: 0x2a,0x2b)

PGC_1 (program chain): [Title(TTN): 1] [02:10:43.21 / 25 fps] (Programs: 51) (Cells: 76)
[Ch 01] [Pg 01] [Cell 01] [V/C Id: 1/ 1] : time: 00:00:19.13 / 25 fps
[Ch 02] [Pg 02] [Cell 02] [V/C Id: 2/ 1] (Angle 1): time: 00:01:28.02 / 25 fps
[Cell 03] [V/C Id: 3/ 1] (Angle 2): time: 00:01:28.02 / 25 fps
[Ch 03] [Pg 03] [Cell 04] [V/C Id: 2/ 2] (Angle 1): time: 00:00:06.23 / 25 fps
[Cell 05] [V/C Id: 3/ 2] (Angle 2): time: 00:00:06.23 / 25 fps
[Cell 06] [V/C Id: 4/ 1] : time: 00:05:40.14 / 25 fps


[Ch 47] [Pg 47] [Cell 68] [V/C Id: 5/32] : time: 00:00:54.22 / 25 fps
[Ch 48] [Pg 48] [Cell 69] [V/C Id: 5/33] : time: 00:01:03.01 / 25 fps
[Ch 49] [Pg 49] [Cell 70] [V/C Id: 5/34] : time: 00:01:17.23 / 25 fps
[Cell 71] [V/C Id: 6/ 1] (Angle 1): time: 00:00:03.02 / 25 fps
[Cell 72] [V/C Id: 7/ 1] (Angle 2): time: 00:00:03.02 / 25 fps
[Ch 50] [Pg 50] [Cell 73] [V/C Id: 6/ 2] (Angle 1): time: 00:06:08.22 / 25 fps
[Cell 74] [V/C Id: 7/ 2] (Angle 2): time: 00:06:08.22 / 25 fps
[Ch 51] [Pg 51] [Cell 75] [V/C Id: 6/ 3] (Angle 1): time: 00:00:01.13 / 25 fps
[Cell 76] [V/C Id: 7/ 3] (Angle 2): time: 00:00:01.13 / 25 fps

mpucoder
26th February 2005, 17:01
I think 2COOL's initial question was answered, but for jsoto and others wondering how to determine the angle number from within a vob...
There are 3 types of interleave, seamless, non-seamless, and multi-story. Each uses different pointers.

For seamless (the most common) the pointers at 0x4bb and on point to the next vobu for each angle. Also at 0x42d is the pointer for the current angle. To determine which angle you are looking at search the table at 0x4bb (called sml_agl_cl_dsta) for a match to the value in 0x42d (nxt_ilvu_sa). The position in the table is the angle number.

For non-seamless a different table is used, and it contains different information than the seamless table. The table starts at 0x069 and is called nsml_agl_c1_dsta through nsml_agl_c9_dsta. The entries point to the vobu for each angle of the current (not next, as in seamless) angle. So the first entry with 0 in it is pointing to the NAV pack you are examaning, and so its position is your angle number.

Multi-story is not cross linked at all since you cannot, seamlessly or non-seamlessly, switch between stories. Each story is a seperate PGC.

jsoto
26th February 2005, 17:44
@mpucoder

Can any of the modes (may be seamless?) use the same VobID for the angles/ILV cells, or they always use different VobIDs?

EDIT:
And, just curious...
a multi-story (i.e.: Alien) can have different duration between the stories, and the can be very different. So, how the muxer decides where change the block? I mean, in equal duration ILV cells, the simplest thing is to change the angle block every VOBU, but what to do with different durations?

EDIT2:
More questions..
I've never seen ILV material in Menus domain. Isn't it legit?. May be it is simply not used?

jsoto

mpucoder
26th February 2005, 18:03
Each angle must have its own VobID - it is, by definition, a video object. So once you know which angle is in which vob (either from the ifo, or by looking at tables in NAV packs) you can depend on that information.

Hey, you don't want me to give away all the secrets of multiplexing, do you? :D

Multi-story interleaves are not equal time, obviously. And within a story you can have angles (which are equal time). Before the interleaving begins you have to work out just how much of the same content, both before and after the split, will be used to satisfy the contraints (sector skip limits, buffer resync at the end, etc), and then interleave the stories ratiometrically. For example if the final decision is to use 20000 sectors from one story, and 10000 from the other, then each block will contains approximately twice as many sectors of the first story.

No, angles are not allowed in the menu domain.

jsoto
26th February 2005, 18:20
Originally posted by mpucoder
Each angle must have its own VobID - it is, by definition, a video object. So once you know which angle is in which vob (either from the ifo, or by looking at tables in NAV packs) you can depend on that information. Thanks, It's valuable information for me. I'm working now on pgcdemux, in "demuxing by VobID feature" and I was wondering what to do with the angles...

Hey, you don't want me to give away all the secrets of multiplexing, do you? :D No, for sure :D. But, even in this case, seems to me it is so quantity of information that I'll not be able to digest it.

Multi-story interleaves are not equal time, obviously. And within a story you can have angles (which are equal time). Before the interleaving begins you have to work out just how much of the same content, both before and after the split, will be used to satisfy the contraints (sector skip limits, buffer resync at the end, etc), and then interleave the stories ratiometrically. For example if the final decision is to use 20000 sectors from one story, and 10000 from the other, then each block will contains approximately twice as many sectors of the first story. Seems interesting and not easy...

No, angles are not allowed in the menu domain. Thanks for the info.

jsoto

2COOL
27th February 2005, 02:03
Thanks guys! :D