Log in

View Full Version : how to fix empty tmapti?


Grave
31st March 2006, 08:57
i've got several dvds where tmapti for main movie is either completely missing or empty resulting in inability to seek.
is there a good tool or way to safely and easily fix/recreate tmapti entries without modifying vobs and messing up original commands?
what i tried (both standalone and in combination, with a lot of fixing commands, etc):
1. ifoedit with creating new ifos (processes vobs) - main movie in vts7 but it always creates new ifos as vts1, i guess simply renaming it back to vts7 and copying over old vobs/ifos wont work
2. dvdremake (processes vobs) but i'd rather not use it because it changes original structure and always had various kinds of bugs, missing commands, playback errors
3. ifoupdate tmapti transfer (always complaining about different tmapti sizes etc, never worked :)
4. jsotos navpack/tmapti commandline tools, never got it working, either complains about nupgc number mismatch or simply does nothing, although i think these tools would be best if it worked :)
5. hexediting and trying manually inserting proper values/increasing tmapti space - been trying to see if vobblanker would fill it as it should (according to one post by jsoto) if theres space in tmapti, but i gave up quickly not knowing the structure of ifo :)

Dimad
31st March 2006, 09:03
...
2. dvdremake (processes vobs) but i'd rather not use it because it changes original structure and always had various kinds of bugs, missing commands, playback errors

And what version you are referring to?

bigotti5
31st March 2006, 11:16
i've got several dvds where tmapti for main movie is either completely missing or empty resulting in inability to seek.

By the spec a TMAPTI is only written if there is a one-sequential-pgc-title

Structure must be:


VTS
|
Title1
|
PGC1

or

VTS
/ \
Title1 Title2
| |
PGC1 PGC1


and not

VTS
|
Title1
/ \
PGC1 PGC2


also if there are PrevPGC and NextPGC links set there must not be a TMAPTI

r0lZ
31st March 2006, 11:31
If IfoEdit creates the TMAPTI table correctly, you can use PgcEdit to import the fixed VTS in your DVD. Use File -> Import VTST Titles to append the VTS at the end of the current DVD, or select the VTS you want to replace, and use File -> Replace VTST Titles to overwrite the original VTS with the new one.
You have also to reimport the original menu (if any.)

If you want, I can write easily a little plugin for PgcEdit to create an empty VTS_TMAPTI table in the current VTS. You will have to fill it with meaningful values with VobBlanker.

@jsoto: What do you need exactly? Is it sufficient to fill in just a table with 0 TMAPs and an end byte of table of 7? You will have only one sector free.
It should be possible to extend the empty table to several sectors, if needed, but do you need a valid structure, with a time unit value for each time map? In this case, it's more difficult for me.

mpucoder
31st March 2006, 15:34
if there are PrevPGC and NextPGC links set there must not be a TMAPTI Unless NextPGC points to the same PGC! And while only the entry PGC for a title can be one-sequential (and there can be only one PGC marked as the entry) it can have a PrevPGC link (an odd thing in itself - how can it be the first if something came before it?) and still be one-sequential!
And there is always a tmap for each PGC, but if the PGC is not one-sequential the map is empty.

r0lZ
31st March 2006, 15:57
So, mpucoder, an totally empty or missing TMAPTI table is an authoring error?

mpucoder
31st March 2006, 18:52
That is my understanding. The only optional tables in a vts are vtsm_c_adt and vtsm_vobu_admap, and only if there is no vts_xx_0.vob file.

bigotti5
31st March 2006, 21:47
And there is always a tmap for each PGC, but if the PGC is not one-sequential the map is empty.

If you use scenarist to create a title with two pgcs, open the ifo with ifoedit, scroll to VTS_TMAPTI section
"There is no VTS_TMAPTI table"

Dont know this means there is no table or the table is empty.

r0lZ
31st March 2006, 23:26
That means that there is no table (the pointer to the table in VTSI_MAT is 0.)

An empty table should at least have the number of VTS_TMAPs set to 0, and the end byte of table to 7.

If, as mpucoder says, a PGC must have a time map and this table is empty, the number of VTS_TMAPs cannot be 0, but the "number of entries in time map" for the PGC is 0. Seems its time unit is also 0 in this case.

Of course, since there is no way to specify the PGC number in this table, all PGCs of the domain must be listed sequentially. Perhaps, if there are no PGCs requiring a time map, it is allowed to remove completely the whole VTS_TMAPTI table?

jsoto
1st April 2006, 01:26
@jsoto: What do you need exactly? Is it sufficient to fill in just a table with 0 TMAPs and an end byte of table of 7? You will have only one sector free.
It should be possible to extend the empty table to several sectors, if needed, but do you need a valid structure, with a time unit value for each time map? In this case, it's more difficult for me.
This is something I have to improve..
Currently VobBlanker calculates the space available for each entry PGC, using the pointers to the PGC itself and the one to the next PGC (or the last byte in the table)
Based on the space available and the duration of the PGC, VB calculates the minimum time unit value, in order to fill as many as possible entries.
jsoto

bigotti5
1st April 2006, 07:35
Unless NextPGC points to the same PGC! And while only the entry PGC for a title can be one-sequential (and there can be only one PGC marked as the entry) it can have a PrevPGC link (an odd thing in itself - how can it be the first if something came before it?) and still be one-sequential!

Scenarist dont create a tmapt (or an empty one) even if NextPGC/PrevPGC points to the same PGC.

r0lZ
1st April 2006, 10:00
Scenarist is not god!
For similar reasons, PowerDVD (or is it WinDVD, I don't remember) disables the time seekbar when there is a Next or PrevPGCN link pointing to the same PGC. That's a bug!

bigotti5
1st April 2006, 10:49
DVD ERROR 5780 (ref. DVD-3 4.3.2-1)
Fields from the PGC_NV_CTL should be '0' in a One_Sequential_PGC_Title. This error is reported when:
• The Next_PGC_number does not equal ‘0’ in a One_Sequential_PGC_Title.
• The Previous_PGC_number does not equal ‘0’ in a One_Sequential_PGC_Title.
• The GoUp_PGC_number does not equal ‘0’ in a One_Sequential_PGC_Title.
To determine if a title is a One_Sequential_PGC_Title, the field TT_TY from the structure TT_PB_TY from the VMGI for the current Title should be ‘0’.

Source:
http://www.licensing.philips.com/includes/download.php?id=6106&filename=2498.pdf

Grave
6th April 2006, 07:40
If you want, I can write easily a little plugin for PgcEdit to create an empty VTS_TMAPTI table in the current VTS. You will have to fill it with meaningful values with VobBlanker.

i think its worth a try, would possibly solve some problems with tmapti tools and empty tmapti
(of course ideal solution being tmapti pgce plugin tools, one to scan navpacks and the others to create/adjust/remove/fill tmapti :))
i could do it by hand in hexeditor too if i knew offsets/values for tmap table and its structure

r0lZ
6th April 2006, 15:53
OK, maybe I'll do it. But only when I'll have some spare time! :(