View Full Version : VobBlanker changes cell flags during replace title
blutach
27th August 2005, 23:25
I had a DVD last week that had cell flags as follows 2, 8 ,8 .... 10, 8 ,8, 8, 8 .... (the 10 being at the change of a VOB-ID where the original layer break was).
Now, I did a replace title with a re-authored title in DVD Shrink - the cell flags were the same after the re-author.
VobBlanker processed the replaced title and it came out as 2, 8 ,8, 8 ..... (no 10 even at the change in VOB-ID) - I needed to change this back manually.
My undersdtanding is that the STC discont. must be set at the VOB-ID change (though I am sure mpucoder will tell me there are other more complex conditions). However, AFAIK, VobBlanker does not remux and so I think this might be a little bug.
Regards
r0lZ
28th August 2005, 10:05
You're probably right, though I wonder if it is needed to set the STC discontinuity if the STCs are continous, even after a VOB ID change. I know a VOB ID change implies theorically a STC discontinuity, but I think all players are able to deal with VOB ID changes not flagged as discontinuity.
Jsoto, does VB look at the STC values to determine the state of the flag?
jsoto
30th August 2005, 00:51
does VB look at the STC values to determine the state of the flag?Not in replacing PGCs... I'm assuming the replaced PGC is "continuous" so I'm forcing the values to 2 8 8 8 8 8...
if ( m_iAction[nVTS][nT]==REPLACE )
{
// Assuming a continuous PGC is used to replace:
// Mark STC Discontinuity in the first cell and clear in all the rest.
pIFO[m_C_PBKT[nVTS][nT]+nCell*24] = 0x08 ;
if (nCell==0)
pIFO[m_C_PBKT[nVTS][nT]+nCell*24] = 0x02 ;
}
Do you (all) think I should change this and keep the original values as they were?. May be an option?
jsoto
r0lZ
30th August 2005, 01:23
IMHO, It is better to keep the STC discontinuity if it was present, and even add it if it was not. At least if the VOB ID changes.
Not sure what to do with the seamless joint flag, since adding it when it is not really needed can have unpleasant effects.
blutach
30th August 2005, 05:01
Agree with r0lZ - let people make their own seamless joint. As for STCs though, we should not go playing with them - the STCs in the replacing title should overwrite those in the original and not be forced 2, 8 ,8 , 8, .....
Some basic check should also be done for VOBIDs and other stuff (see mpucoder's post here (http://forum.doom9.org/showthread.php?p=688698#post688698)).
Regards
jsoto
30th August 2005, 07:23
OK, so, instead of looking into the VOB, can I copy directly both flags from the replacing IFO?
jsoto
blutach
30th August 2005, 08:50
I think so, yes. Should be easy.
But since you look so closely into the VOB anyway, would it be difficult to look at the conditions for seamlessness and STC and implement them automatically?
Regards
r0lZ
30th August 2005, 09:01
But since you look so closely into the VOB anyway, would it be difficult to look at the conditions for seamlessness and STC and implement them automatically?Should be nice. It's something I can't implement easily in PgcEdit.
jsoto
30th August 2005, 15:03
I'm still not convinced....
A) VB accepts only IFOs with a single-PGC as source for replacing
B) VID/CID is taken from the original (not from the replacing VOB)
Because of A), I cannot imagine a flag sequence in the replacing IFO different to 2 8 8 8 8... if the replacing IFO is generated by a muxer, like Muxman or IFOEdit... But it can be if you are using dvdshrink or other transcoder.
Because of B)... Is the original sequence valid if there is a VOBID change?. The playback must be "continuous".
From mpucoder's post:
"seamless" can be set only if:
2) the multiplex itself is seamless (check for first vobu audio pts < vobu_s_ptm).Always true if the replacing PGC has been re-muxed in a single PGC.
3) the previous cell has no cell command
4) the cell is on the same layer as the previous
Currently, these two conditions are not controlled by VB. The last one will never be.
"STC discontinuity" will be set if:
1) new video sequence (every video sequence starts a new VobID, but not every new VobID is the start of a sequence) (check SCR)
2) the cell is not adjacent to the previous (check first sector equal to previous cell's last sector +1)
Both conditions always false if the replacing PGC has been re-muxed in a single PGC. The first one can be true in the case of dvdshrink reauthored titles
So, IMHO, the current (fixed) implementation is OK for replacing PGCs with remuxed (Muxman, IFOEdit) ones. But not for dvdshrink ones.
In any case, dvdshrink reauthor engine can also produce not standard VOBs, mainly when cutting frames.
So, in case of doing something:
"STC discontinuity" check and modification seems feasible and safe, but for all the PGCs, there is no reason to do it only for replacing PGCs
"seamless flag" not really clear to me what to do. We have to discuss a little bit more on this before change the code...
jsoto
jsoto
5th September 2005, 00:17
Any comment?
STC flag:
I've included the STC check & update feature (as an option), but I have one question
Imagine a PGC made of a number of cells, all of them muxed with a continuous STC, so, at first view, STC disc flag must be clear. But in the IFO the cells are marked as stills.
Should be the STC discontinuity bit set or clear in this case?
seam-less flag:
I didn't do any change to how VB works, but it is now storing the replacing cells status bytes in memory, so I can "copy" the flag from the replacing IFO easily...
jsoto
blutach
5th September 2005, 04:55
I think seamless joint is something for the user to do.
STC on the other hand, must change on a VID change. No reason to change it for all PGCs - just on a replace. Why? Cos if nothing else changes, why bother changing the original authoring.
Regards
jsoto
5th September 2005, 19:59
STC on the other hand, must change on a VID change. No, I think there are some cases where STC does not change in a VID change. In example, when replacing a PGC, originally splitted in two layers, and remuxed in a "continuous way"; VB will keep the VID/CID, but in the replacing PGC, there is not STC discontinuity. In fact, mpucoder says you have to check the STC, it is not enough to check only the VID.
No reason to change it for all PGCs - just on a replace. Why? Cos if nothing else changes, why bother changing the original authoring. No, no, many things can change, even in the case you "keep all". For example, unreferenced material will be deleted. And the user can select some cells to blank, change to still, etc.
jsoto
2COOL
5th September 2005, 20:07
@jsoto
[EDIT] Sorry, hastily posted in wrong thread. :( Redirected here (http://forum.doom9.org/showthread.php?p=707872#post707872).
blutach
6th September 2005, 05:40
@jsoto
Understood - but if a replacing title has certain flags (due to its mux, or whatever), then we should honour those flags, yes? And not change them to 2, 8, 8, 8 ..... See my first post in this thread for an example.
I would be concerned if the check that VobBlanker did came out with different flags from the muxed VOB. That would indicate that something isn't quite right somewhere.
Checking STC in all PGCs makes sense. In any event, as you have said, you can't replace with VobBlanker unless it's a single PGC in the VTST.
Regards
jsoto
6th September 2005, 07:44
@jsoto
Understood - but if a replacing title has certain flags (due to its mux, or whatever), then we should honour those flags, yes? And not change them to 2, 8, 8, 8 ..... See my first post in this thread for an example.
You're right, Seamless flag, up to now, is not managed. I'm waiting some additional comments on it. Currently, my intention is to copy it from the replacing PGC, and continuing to force it to zero in cases as blanking, etc (as VB is currently doing),
I would be concerned if the check that VobBlanker did came out with different flags from the muxed VOB. That would indicate that something isn't quite right somewhere. This is the reason I'm asking about the right value in case of continuously muxed (from an STC point of view) stills. See my question in my post above. In any case, VB outputs a note in CIAN in the log (look for STC discontinuity) when changes a STC flag
jsoto
r0lZ
6th September 2005, 11:01
I should have replied to this thread sooner. But I don't know this cell flags stuff well. In PgcEdit, I just clear the seamless flag whenever the VOBUs are not contiguous, assuming that the player must have some time to jump to the new cell. Otherwise, I left the cells as they are in the original DVD. Remember that I don't analyze the VOBs at all.
For stills, I think the seamless joint flag should be cleared, since the user will not notice the pause anyway. But I'm not sure for the STC flag. Mpucoder is probably the only one able to answer these questions...
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.