CDR-Zone.COM Forum Index Home | Reviews | Software | Guides | Articles | Forum

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
How to change DVD-Text?
Goto page Previous  1, 2
 
Post new topic   Reply to topic    CDR-Zone.COM Forum Index -> DvdReMake - General
Author Message
r0lZ
Junior Member
Junior Member


Joined: 13 Jun 2004
Posts: 64
Location: be

PostPosted: Sun Sep 19, 2004 10:40 am    Post subject: Reply with quote

toaddub wrote:
I don't follow. How can you lose a part of the string? Textdata table is one sector, which is 0x800 (2048) bytes, that's maximum.
I don't agree with the terms used. The table begins at a sector boundary, and ends at the byte pointed to by the end-of-table (or last byte) pointer. The table must be padded so that the next table in the IFO starts also at a sector boundary. You may call that padded table a sector, although it is possible that a table (including VMG_TXTDT_MG) extends over several sectors. PgcEdit splits each tables after the end byte pointer, to be able to add new datas at the end of the table. It does that for all tables of the IFOs, when reading the DVD. When the table is saved, null pad bytes are added to the table so that one (or more) sectors are exactly used. So, if the table's end byte pointer is too low, it points to a byte somewhere in the string, and the end of the string is cutted, and lost.
Quote:
I disagree. If there's already an existing TextData, that means the sector references are already in place. Rebuilding the whole table is unnecessary since, following the reasons above, the table contains 0x800 bytes (1 sector). Following your example, you should be able to enter more than 10 char, since the textfield holds 30 char (actually it should be 29 char, so you can NULL terminate the string, according to your 0x117 End Byte table pointer). A better situation is if you enter 10 char, from existing 20 char, then PGCEdit has to null-pad the remaining 10.
See the example with 96 entries above: the first name is AKIRA: 5 characters, + the NULL = 6 characters. The next name (AKIRA again), begins immediately after the 6 chars. Therefore, if I overwrite the first string with a 30 characters string, I will overwrite the next one also, and some more... So, I only allow to input 5 characters in this case. If I wanted to really use a 30 characters string, I would have to insert 25 characters more, and fix all pointers in the table: the end of table pointer (at offset 0x10), the text-data length (at 0x1c), and all pointers in the string definitions themselves (starting with the pointer at 0xfa, upto 0x26a). Leaving the 30 characters available in the sectors created by PgcEdit means I don't have to take care of the pointers when the user want to change a short string with a longer one. It is therefore always possible to input the 30 characters again when the sector has been created by PgcEdit. And I pad the string with NULL bytes, as you suggested Smile
Quote:
I didn't think 0x09 is a TAB character until you mention this. Good point! I thought all along, according to the guides, it is an End Byte pointer of the textdata. But then again, you say it is determined by the character set. Then what are the character codes 0xD0, 0xDC, 0xD8, 0xE0 indicate? PGCEdit and posunpluged has 0xD0, 0xDC. Videohelp guide has 0xD0, 0xE0. Akira has 0xD0, 0xD8. Let me guess, 0xD0 is the normal ASCII character set. The others are some unicode, depending on the setting of the dvd player, like the default language (Latin, Japanese) of the player menu. I'd sure like to know what those codes mean. btw, why is there a need for 2 character codes? I see some factory DVDs has 1. If it is a normal ASCII character set, then a TAB character is not necessary, since it can not be displayed on the player, and the NULL byte indicates the end string terminator. So this means, the guides must be revised then, from misleading users!?
Hum, I must be humble here: I really don't know what exactly are the meaning of the characters codes. I just found french DVDs with accented characters with the codes I used. And thoses codes are working perfectly with my Sony player and accented and lower case characters. I really don't know why the TAB should be necessary. I read in the Pos Unplugged guide that it is necessary to have punctuation displayed correctly, but this is really strange, and I have no problem to display them without the TAB. I don't know if the guides must be revised. Maybe they are right, and I'm wrong. However, the PgcEdit method seems to work pretty well.
Back to top
toaddub
Moderator
Moderator


Joined: 12 Sep 2004
Posts: 1995

PostPosted: Sun Sep 19, 2004 8:43 pm    Post subject: Reply with quote

Quote:
You may call that padded table a sector, although it is possible that a table (including VMG_TXTDT_MG) extends over several sectors.
I guess I misinterpreted your explanation. True, a table may span across several sectors. I was emphasizing a Textdata table is in most situation one sector. Since most interested in seeing only the movie title, the textdata length is not that long, and there's plenty of null padding. Even the long Akira example still have some space left in a table. Of course, you can add more info to span to next sector if you want.
Quote:
I really don't know why the TAB should be necessary. I read in the Pos Unplugged guide that it is necessary to have punctuation displayed correctly, but this is really strange, and I have no problem to display them without the TAB. I don't know if the guides must be revised. Maybe they are right, and I'm wrong. However, the PgcEdit method seems to work pretty well.
After some testing and reading, I think the TAB should be left alone as is. The guides are correct. Changing it to NULL is like figuratively saying that the dvd authors at the movie studios are doing it wrong. During testing, I replaced the TAB with NULL, and see nothing's changed, even tested the Akira. Either way, the DVDText guide says in Section 4-2-2 Data Input:
    "Tab is one of the characters which requires closest attention. Tab setting is a special code used as ‘punctuation’ in text data. Consult each authoring studio for the specific way of use."
To confirm, the Akira has the TAB after every text, not NULL.
Quote:
See the example with 96 entries above: the first name is AKIRA: 5 characters, + the NULL = 6 characters. The next name (AKIRA again), begins immediately after the 6 chars. Therefore, if I overwrite the first string with a 30 characters string, I will overwrite the next one also, and some more... So, I only allow to input 5 characters in this case. If I wanted to really use a 30 characters string, I would have to insert 25 characters more, and fix all pointers in the table: the end of table pointer (at offset 0x10), the text-data length (at 0x1c), and all pointers in the string definitions themselves (starting with the pointer at 0xfa, upto 0x26a).
From my previous post, I was thinking about the simple text scenario. Until after the post, and when I modified the text for Akira. I realized what you mean. Didn't have time to post back until now. From your reasoning above, looks like I was able to enter more than 5 chars. See results below. I guess you might have to add some more conditional checks. I see PgcEdit null-pads up to 32th char, ending at 0x28b. I thought it should end at 0x289, expecting to see "K STRE". Before:
Code:
 [000000ec]        Volume:          1 0 0 0    [01 00 00 00 ] [000000f0]          Name: AKIRA      48 0 1 132    [30 00 01 84 ] [000000f4]        Title:          2 0 0 0    [02 00 00 00 ] [000000f8]          Name: AKIRA      48 0 1 138    [30 00 01 8a ] [000000fc]        Chapter:          4 0 0 0    [04 00 00 00 ] [00000100]          Name: 2019 NEO TOKYO   48 0 1 144    [30 00 01 90 ] [00000104]        Chapter:          4 0 0 0    [04 00 00 00 ] [00000108]          Name: BACK STREET      48 0 1 159    [30 00 01 9f ] [0000010c]        Chapter:          4 0 0 0    [04 00 00 00 ] [00000110]          Name: JOKER      48 0 1 171    [30 00 01 ab ]  HexEdit Format 00000268  30 00 04 37 41 4B 49 52  0..7AKIR 00000270  41 09 41 4B 49 52 41 09  A.AKIRA. 00000278  32 30 31 39 20 43 45 4F  2019 NEO 00000280  20 54 4F 4B 59 4F 09 42   TOKYO.B 00000288  41 43 4B 20 53 54 52 45  ACK STRE 00000290  45 54 09 4A 4F 4B 45 52  ET.JOKER
After using PgcEdit v0.3.4:
Code:
 [000000ec]        Volume:          1 0 0 0    [01 00 00 00 ] [000000f0]          Name: AKIRA DISC1      48 0 1 132    [30 00 01 84 ] [000000f4]        Title:          2 0 0 0    [02 00 00 00 ] [000000f8]          Name: DISC1      48 0 1 138    [30 00 01 8a ] [000000fc]        Chapter:          4 0 0 0    [04 00 00 00 ] [00000100]          Name:          48 0 1 144    [30 00 01 90 ] [00000104]        Chapter:          4 0 0 0    [04 00 00 00 ] [00000108]          Name:          48 0 1 159    [30 00 01 9f ] [0000010c]        Chapter:          4 0 0 0    [04 00 00 00 ] [00000110]          Name: JOKER      48 0 1 171    [30 00 01 ab ]  HexEdit Format 00000268  30 00 04 37 41 4B 49 52  0..7AKIR 00000270  41 20 44 49 53 43 32 09  A DISC1. 00000278  00 00 00 00 00 00 00 00  ........ 00000280  00 00 00 00 00 00 00 00  ........ 00000288  00 00 00 00 53 54 52 45  ....STRE 00000290  45 54 09 4A 4F 4B 45 52  ET.JOKER
I understand your resistance to change the pointers. It'll just be more work but doable. What's the likelihood that you encounter an example like Akira. There maybe some out there that I haven't encountered. The most I encounter is no text, or simple existent text, that I might want to change. By simple, I see only Volume and Title. So maybe in your conditional check, if there exists a Volume and/or Title, user can modify text up to 30 char; otherwise, limit the textfield to original textdata length. But then again, changing the pointers will make your PgcEdit more robust and powerful Smile I'm not suggesting an enhancement, since this is just a small portion of DVD authoring. It maybe important if it is a music video or karaoke DVD.
Back to top
CDR-Zone.COM
Advertisement Bot


Posted:     Post subject: Advertisement:

Back to top
Display posts from previous:   
Post new topic   Reply to topic    CDR-Zone.COM Forum Index -> DvdReMake - General All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 


Powered by phpBB © 2001, 2005 phpBB Group