Log in

View Full Version : VIDChanger / Ifoedit interaction bug?


hf
25th January 2005, 19:14
I used vidchanger 1.2.0.1 to get all the cells in a vob to have
unique VIDs. That worked just fine. I then used Ifoedit 0.97
to removed one of the VIDs (using Vob Extras) leaving all the
audio and sub streams as is. The problem is that when I play
this dvd in my stand alone, it stops at the beginning of every
cell. Looking at the ifo again with Ifoedit I see each cell
is marked as having a STC discontinuity where they didn't
before. Also, all the cell types are "10(angle)" where they
used to be "8(angle)"

Any ideas on how to fix this?

I also tried cutting the cell with vobblanker which plays
on my standalone ok, but the clock bounces around a bit at
the transition (goes back one second, jumps to something
else real fast and then goes back to the correct time)

I haven't tried blanking the cell yet with vobblanker.
Maybe that would fix the clock issue.

jeanl
25th January 2005, 19:45
You can easily change the flags in PgcEdit. Double click on the PGC, then go to the right cell and click on the right flag options...
Jeanl

blutach
25th January 2005, 22:08
@hf

Finally! Someone else is having problems with these flags issue. I was beginning to think it was only me.

This happens also in VobBlanker. You need to be a bit careful of the discontinity flags and where they actually should be marked as 10s (because it really is discontinuous due to the blanking/cutting) and 8s becasue they are really just seamless.

BTW: 10 = STC discon plus seamless (not angle)
8 = seamless

Another thing, not really OT, is if you wanna get rid of the layer break, go to the editing pane in PgcEdit, and just untick it. It will add 8 to the flag and get rid of the LB marker.

Regards

jsoto
26th January 2005, 00:02
Sorry, blutach, but this is NOT the same problem you had using VobBlanker replacing function...

IFOEdit sets the STC discontinuity flag on each VID change. So, if you have used VIDChanger to change all the VIDs in a consecutive way, a IFOEdit's (mock or actual) strip will set ALL the STC discontinuty flags in the PGC.

So, if you want to "delete a cell", try simply blanking it with VobBlanker. You will have a small pause when playing the blank cell, but not in the other cells.

jsoto

EDIT
I used vidchanger 1.2.0.1 to get all the cells in a vob to have
unique VIDs.I'm assuming hf is wrong and he means to have different VIDs.

blutach
26th January 2005, 00:28
I must say I remove unwanted menu cells with IfoEdit and find no problem. Perhaps it is just hf's player, in which case, jsoto's advice is very good.

Plus it makes sense to set the flag when the VOBID changes, does it not? Every DVD original I have seen, even on a seamless transition, sets the discont flag when the VOBID changes (although I often find the following cells (eg V-C ID 1/2) are set as a "2 plus LB", instead of a "10").

@jsoto - I hope I haven't given offence, mi amigo. Certainly, none was intended and you know I am a big supporter of your work.

Regards

jsoto
26th January 2005, 01:10
@blutach,
You comments are always welcome (they are blue :) ). For sure I'm not offended at all.. May be my poor English gave you a wrong impression..

Well, VID changes usually are in an actual layer break, but AFAIK:
- Two consecutive CID in the same VID must be seamless.
- A change in VID can be seamless or not. So IFOEdit is assuming not in all cases, which is the usual thing in originals, but not always true. I believe you should have to do two diferent checks:
a) read the PTSs (VOBU_start_presentation_time of the new VID and VOBU_end_presentation_time of the previous VID) to check the PTSs "discontinuity".
b) Read the SCR and check if SCR go "backwards" or has a value much more higher than the expected.

I'm not absolutely sure, but I think:
- PTSs check should be used to set "seamless linked in PCI" bit (bit #3)
- SCR "discontinuity" check should be used to set "STC discontinuity" bit (bit #1)

jsoto

jsoto
26th January 2005, 01:23
@blutach
Sorry, blutach, but this is NOT your problem... What I mean is that hf's problem is not the same you had using VobBlanker replacing function, which is still unsolved, because I'm not able to reproduce it (well, I've to try harder... :) ). I've edited my previous post to put it in a more clear way...

jsoto

mpucoder
26th January 2005, 01:44
Maybe this will add to the discussion (or not - came in late). Every VOB should start with SCR set to zero. So two adjacent VID will always have discontinuity.

Seamlessness is a little harder to determine. With properly multiplexed VOBs (those that use the correct audio buffer value of 4K) the first audio pts in the new VOB will be less than vobu_s_ptm if seamless.
Another way is to determine the duration of the last VOBU (vobu_e_ptm - vobu_s_ptm) and then see if the last pack's SCR is both significantly more than that value greater than the NAV pack SCR and more than 146 greater than the preceeding pack's SCR. This indicates non-seamless as the audio buffer is being "run out".

blutach
26th January 2005, 02:03
@jsoto - np :)

@mpucoder - You ALWAYS add to the discussion. Never fail to learn something from you. Keep it coming...please!

Regards to all

jsoto
26th January 2005, 02:14
Originally posted by mpucoder
Every VOB should start with SCR set to zero. So two adjacent VID will always have discontinuity.

So, VobBlanker and dvdshrink produced VOBs when cutting the begining of a title are not "standard", because both of them keep the SCR as it is in the original.
In your opinion, is this a big problem?

And for seamless, I've checked some originals and seems I was wrong... VOBU presentation time can also be reset in a seamless VID transition, so you need to read SCR and do the calculations mpucoder says (I've to digest part of them, BTW :) ).

One last question...
Can the audio/video delay change in a non-seamless transition, in the same PGC?

jsoto

blutach
26th January 2005, 02:40
@mpucoder

So just to get this fixed in this thick skull of mine. Here's an example.

V/C 1/1 was blanked (LBA 0000 - 0004)

V/C 1/2
LBA 0005 - Navpack - 0x0039 Vobu_s_ptm = 1,062,654
LBA 0007 - AC3 Audio pack - 0x0017 = 1,045,374

Is less, so seamless?

(Note: In the blanked cell, there were, of course, no audio packs to run out the 4k buffer)

(Also note: PgcEdit shows VCID 1/2 as type flag 2 plus layer break. I presume it should be type 10)

Regards

mpucoder
26th January 2005, 03:00
Originally posted by jsoto
Can the audio/video delay change in a non-seamless transition, in the same PGC?

jsoto
I'm not sure what you are asking, but after a non-seamless transition new conditions can be set, just as if starting from the beginning.

I thought of another way to look at seamlessness, and jsoto is certainly familiar with part of this. This way involves the adjustment to pts after a discontinuity. Using that value you can determine what the SCR would have been had there been no reset. If it is less than the previous pack SCR+146, then the transition is non-seamless (and the difference represents the time the player must pause).

@blutach - interesting example. 1045374 is the pts of the first audio? You must ask yourself "where did it come from" since it is to be played before the first video for that cell. Logically it belongs to the previous cell, which you say has no audio. Is this the result of blanking, that some audio from the previous cell can remain? Does blanking stop at the cell boundary and not modify the following VOBU at all?
Simple answer, though, is yes, seamless.

mpucoder
26th January 2005, 03:11
The key to seamlessness is simply can the player continue, or must it pause. And maybe someone better at graphics could come up with a visual aid for this. Picture the video, audio, and delivery as three horizontal bars, as you see in a timeline. Now take the last VOBU and lay out each element, video and audio by pts (and don't forget to account for duration) and delivery by SCR. Do the same for the first VOBU of the next VOB. Now move the 2 graphs together until one of the bars touches. Unless something went wrong audio and video should both touch together (maintain the same delta time). If the delivery bar touches first then audio/video must take a break and the player must pause, but if the audio/video touch first then delivery can take a break, and it's seamless.

blutach
26th January 2005, 03:28
@mpucoder

The first video for the cell was in LBA 0006

The VOB looks like this:
LBA Type
0000 Nav for VC 1/1
0001 - 0004 Video
0005 Nav for VC 1/2
0006 Video
0007 AudioRegards

mpucoder
26th January 2005, 03:42
I just wanted to double check that 1045374 was the audio pts.

btw - did you know that it is a requirement that if a VOBU contain any video that the second pack be a video pack? Even if an audio buffer is in dire need of data!

blutach
26th January 2005, 03:54
Yes, that's the audio pts at that address in the PES header.

And no, I didn't know that. Normally, I would see lots of video packs but in this case only 1 before the audio. So, I guess it needs audio, and pronto. BTW: the next 2 packs are subpic packs (it's a menu VOB - the blanking was on an animated intro to the real menu).

Regards and thanks

jsoto
27th January 2005, 01:11
Does blanking stop at the cell boundary and not modify the following VOBU at all? In the case of VobBlanker, yes.

I'm not sure what you are asking, but after a non-seamless transition new conditions can be set, just as if starting from the beginning. I'm asking if audio/video delay can change in the middle of a PGC. PgcDemux and many other tools do not take it into account, but, fortunately, seems not usual.

jsoto