Log in

View Full Version : BDedit - BD structure edit


Pages : 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

rapscallion
1st April 2010, 15:25
Based on the log the 00003.m2ts found in the 00003.mpls but after that you search the 00018 mpls not the 00003
Is it right?
Switch to the PLAYLIST tab select the 00003.mpls and click to Find.

You're correct. I get a little bleary eyed after midnight :)

Here's the correct result after clicking find in clipinf and then playlist :


00003.m2ts found in:
00003.mpls , PlayItem 000
Reading 00003.mpls
1 PlayItem(s), 0 SubPath(s) and 2 PlayListMark(s) found.

PlayList 00003 found in:

So, I still din't know what command to execute on the BDMV tab. Here's a screenie of the "Object" side :

http://i40.tinypic.com/qx55ax.jpg

deank
1st April 2010, 15:33
I believe such approach will be hard to follow with complex discs. Your 'finds' show that the warning m2ts is in 00003.mpls but it is not mandatory to have a Play PL (3)... command in any of the movie objects. Most likely the playlist/playitem is referenced by a register and it makes it even harder to find the correct line (for example in 2000+ opcodes). + It is possible that the warning playitem is called from a IGS object, parsed as a value in one or more registers.

In my tool I'm using the reverse approach by simply blanking the m2ts and changing all clpi/mpls references, without touching the original movieobject/igs commands. It should achieve better compatibility in some cases.

Dean

Pelican9
1st April 2010, 17:12
rapscallion:
Unfortunately if the Find function not found any Play commands with that PlayItem number then really not easy to find it. As deank wrote the PlayItem can referenced by GPR. I can modify the code to check not only the immediate value but the previous command also (as the double click work on the Play commands) but it also doesn't guarantee the success.

deank:
I don't think an IGS command can start a PlayList (Play commands are forbidden there) it can only link a PlayItem of the actual PlayList, but the warnings are usually standing in a separated PlayList. Am I right?

deank
1st April 2010, 17:17
Yes, you're right... I meant that an IGS nav command can put values in GPR to force a movieobject to play specific playlist/playitem warning m2ts.

There is no simple way to get around it.

Even if you implement full-trace it still may not work, because the player may take different path for playlists depending on default blu-ray player's language settings (taken from a PSR).

I'd suggest not to waste time on that... It is simply too hard to follow ;)

rapscallion
1st April 2010, 17:34
I also am going to leave things alone and live w/the FBI warning (multiavchd stopped at 8% and froze)

deank
1st April 2010, 17:41
I PMd you... Don't give up so easily... Just give it some time. If you decide to continue, we can discuss this in another thread.

Pelican9
1st April 2010, 17:48
Rapscallion:

Don't give up! send me the two bdmvs and all the mpls.

Yes, you're right... I meant that an IGS nav command can put values in GPR to force a movieobject to play specific playlist/playitem warning m2ts.

I'd suggest not to waste time on that... It is simply too hard to follow ;)

OK. Understand.
Thats why I just built in the immediate value checking...
It can work with some title and fail with others...

I've just got another idea at this very moment: :)
What if I put an extra command (actually two) before every Play PL GPRxxxx ?
like:
n-2: EQ GPR, <playlist num>
n-1: GoTo n+1
n: Play PL GPRxxxx

What do you think?

Capsbackup
1st April 2010, 17:57
I also am going to leave things alone and live w/the FBI warning (multiavchd stopped at 8% and froze)

rapscallion;
If you have not tried multiAVCHD in re-author mode to blank FBI warnings and other adverts, please do. It works perfectly!
I have done several now, for AVCHD to BD5/9 and BD-25, and play back on my Sony S360 is perfect!
I am encouraged with your work too, Pelican9, but just a little intimidated to jump in just yet.:p

deank
1st April 2010, 18:02
I've just got another idea at this very moment: :)
What if I put an extra command (actually two) before every Play PL GPRxxxx ?
like:
n-2: EQ GPR, <playlist num>
n-1: GoTo n+1
n: Play PL GPRxxxx

What do you think?

You're talking about BDedit's built-in trace OP lines, right?

n-1: NE GPR, <playlist num>
n: Play PL GPRxxxx

Is a bit better I think :)

Pelican9
1st April 2010, 18:14
You're talking about BDedit's built-in trace OP lines, right?

What do you mean?
I'm talking about movieobject commands.

n-1: NE GPR, <playlist num>
n: Play PL GPRxxxx

Is a bit better I think :)
Yes, much better... I wrote too soon without thinking... :)

deank
1st April 2010, 18:38
Oh I misunderstood all that...

You mean that you'd add such command(s) and will alter the original movieobjects... Then you'll have to take care of all GoTo jumps and in case "warnings" are invoked from a BDJO object it won't make any difference.

I'll repeat myself - don't go for such things. You've already done enough of great things and added so much to the latest BDedit versions!

Pelican9
1st April 2010, 20:01
Okey dokey, I'm just thinking.... :-)
What do you think about the menu editing?
Is it pointless too?

deank
1st April 2010, 20:08
On NO! That is definitely a great feature to improve!

I there was a way to edit the IGS RLEs... I was wondering if there is a way to replace the RLEs images for the buttons with smaller ones and somehow stuff the packets to fit the original size. It won't require a muxer for IGS (of course in case the new bitmap is smaller or equal in size).

Pelican9
1st April 2010, 20:26
Yes, that is a possible way to save the edited IGS but I'm afraid it's more difficult then mux a new one.
I'm thinking about a middle way, get the time codes and the stuffing packets from the original m2ts, and change the IGS packets only. It's not necessary to synchronize anything, so it should work.

deank
1st April 2010, 20:35
I used a similar 'tactic' with original static multiAVCHD menus... replacing/stuffing data. I think it is possible to replace an IGS button/image with another one if it is not larger than the original. Even if it is - it is possible to do 2-3 passes to try to compress it a bit more (like trying to set each X pixel to have the same color as its neighbor... it will add some RLE compression). I experimented a lot with this and I think it will work.

Of course the final button image may differ a bit but... That way you won't need to alter anything in a m2ts file with IGS menu objects.

Pelican9
1st April 2010, 20:58
When I tried to save RLE bitmap it was always smaller than the original, so it is the easy part.
The bitmap objects stored in the stream after the composition part, so you can change them almost independently.
If the total size of the modified (RLE) button images less then or equal to the original size than no problem.

Try to imagine the possible scenarios:
1. Edit a button, change the properties (e.g. commands) only or the bitmap(s) also
2. Add a new button with new function (new subtitle, etc.)
3. Delete an existing button
4. Make a whole new menu (didn't exist before)
What else?

crl2007
1st April 2010, 21:07
I've just got another idea at this very moment: :)
What if I put an extra command (actually two) before every Play PL GPRxxxx ?
like:
n-2: EQ GPR, <playlist num>
n-1: GoTo n+1
n: Play PL GPRxxxx

What do you think?

I think this would be a good thing to have. You can spot more easily some commands that you want to change in a BD with lots of them.

As for the IGS menu, I don't know if you are familiarized with DVDSubEdit. Version 1.39 had an option to modify the subpic and gives you the option to modify the discs highlights. In fact, only 1.39 can do it properly. I think that a similar approach would give good results.

1. Export current subpic as BMP or PNG.

2. Edit with Photoshop or anything else similar.

3. Replace current subpic with bmp or png.

I know that is not the same as for DVD's and it's much harder, but maybe if we bounce ideas, you will find a working way. Or maybe how vobblanker works for full menus.

l.e
5. Copy a button command.
6. Copy palette.
7. Copy a button highlight. These would be needed, imo.

deank
2nd April 2010, 14:31
When I tried to save RLE bitmap it was always smaller than the original, so it is the easy part.
The bitmap objects stored in the stream after the composition part, so you can change them almost independently.
If the total size of the modified (RLE) button images less then or equal to the original size than no problem.

How come the saved bitmap is smaller than the RLE encoded one in the m2ts?

Anyway, if you can replace the objects with imported BMP/PNG and get smaller or equal in size RLE encoded object it will be the easiest thing. Otherwise it will require rewriting the whole m2ts and it will lead to changes in its clpi and all mpls files which refer to that m2ts. Also another thing to consider is the palette in use. If it is used by more that one object and you change only one what will happen?


Btw my readSUP tool uses this approach when downscaling/resizing 1080p to 720p/576p/480p PGS/SUP subtitles. It decodes the RLE line, kicks off some pixels and encodes it back to get a liniar resize quickly.

Pelican9
2nd April 2010, 17:38
How come the saved bitmap is smaller than the RLE encoded one in the m2ts?

I mean my RLE bitmap is smaller than the original RLE. When I wrote SUPread's BD export I wondered why my sup always smaller than the original even if I didn't change anything.
In theory it should be the same size, but it seems the encoding algorithm used by the BD authors is not optimal.

Anyway, if you can replace the objects with imported BMP/PNG and get smaller or equal in size RLE encoded object it will be the easiest thing. Otherwise it will require rewriting the whole m2ts and it will lead to changes in its clpi and all mpls files which refer to that m2ts.
I think in the clpi file you have to change the packet number only (if it counts).
But why necessary to change anything in the mpls?
It has only one SubPath entry with one SubPlayItem entry related to the IGS' m2ts file and these are not containing any specific info.

Also another thing to consider is the palette in use. If it is used by more that one object and you change only one what will happen?

One page can handle only one palette, so you have to use this palette for all the button images. Technically the button images has no palette info at all only bitmap info, and the palettes stored separately.

As for the IGS menu, I don't know if you are familiarized with DVDSubEdit. Version 1.39 had an option to modify the subpic and gives you the option to modify the discs highlights. In fact, only 1.39 can do it properly. I think that a similar approach would give good results.

1. Export current subpic as BMP or PNG.

2. Edit with Photoshop or anything else similar.

3. Replace current subpic with bmp or png.

The only problem with the buttons' images that is one common palette for the whole page.

l.e
5. Copy a button command.
6. Copy palette.
7. Copy a button highlight. These would be needed, imo.
5. This is a new button case 2.
6. It's not effect to the buttons
7. Do you mean the selected state image?

crl2007
2nd April 2010, 17:49
Yes, a button's selected state.

Pelican9
7th April 2010, 01:59
I wonder whether is there a conversion algorithm pair to convert color model from YCrCb to RGB and back without changing the original YCrCb values. And somehow it's ITU 709 compliant...
When I wrote SUPread I tried a lot of formula but I didn't found a perfect one.
I mean I can't produce the original values after the two conversions (the Y value usually differs by one).
I've found this page:
http://software.intel.com/sites/products/documentation/hpc/ipp/ippi/ippi_ch6/ch6_color_model_conversion.html
with a lot of variation of matrix values but didn't work well which I tried (means made bigger differences)

I've stucked with the IGS muxing, I can write an IGS elementary stream (I named it .mnu), so I can load and save the edited or newly created menu structure but cannot use it with a BD movie. :-(

deank
7th April 2010, 12:22
I'm using parts of these formulas:

RGB/YUV Pixel Conversion (http://www.fourcc.org/fccyvrgb.php)

I don't know if it will be of any help to you.

And about the IGSs... we need a muxer, right :)

Pelican9
7th April 2010, 19:13
Changes for v0.28

- Object tab in Menu, Show/Load/Save bitmap objects (shows references)
- Effect preview
- Improved graphic performance
- Load/Save IGS from/to .mnu file
- Create new Menu
- Create sound.bdmv
- Option to use 8.3 filenames
- Improved Find function on CLIPINF (shows references)
- Bug fixes (including some ancient one)


Edit:
I've upload a bugfixed (load image to object) version.

deank:
Thanks, I'm using this formula in SUPread and BDedit... :)

Kurtnoise
9th April 2010, 07:11
Hi,

Is there a way to change color from PGS Streams w/ BDEDit ? If yes, how ?


:thanks:

Pelican9
9th April 2010, 13:35
No.
SUPread can decrease the brightness of the subtitle.

crl2007
10th April 2010, 19:05
Changes for v0.28

- Object tab in Menu, Show/Load/Save bitmap objects (shows references)
- Load/Save IGS from/to .mnu file
- Create new Menu



Now they can be used with a BD disc ? Anyway, great work. I will try it as soon as I have some spare time.

Pelican9
10th April 2010, 19:09
Now they can be used with a BD disc ?

No, unfortunately not yet. :(
The muxer is missing.

Until that you can create your own menu... :)

Kurtnoise
10th April 2010, 19:19
No.
Can I make it as a feature request then ?

:thanks:

crl2007
10th April 2010, 21:03
No, unfortunately not yet. :(
The muxer is missing.

Until that you can create your own menu... :)

I guess it is the best way available at the moment. Save all objects and recreate a menu. But it is a whole work day. :D

I have a question, when I choose to save IGS menu, BDEdit enters a Not Responding phase. I have to end the process from task manager. When I insert a png ( I suppose that 8-bit png is supported ) the color scheme is kinda distorted.

Pelican9
10th April 2010, 21:27
Can I make it as a feature request then ?

:D
Yes, you can.
But I'll be more happy if tsremux can do the job.
I'm too lazy (and not motivated enough) to figure out all the things which necessary to mux an m2ts file because somebody already did it before.
I'm working on it right now, so MAYBE I can do that.

Pelican9
10th April 2010, 21:35
I have a question, when I choose to save IGS menu, BDEdit enters a Not Responding phase. I have to end the process from task manager. When I insert a png ( I suppose that 8-bit png is supported ) the color scheme is kinda distorted.

Let me guess: You are working with the Ninja Assasin, aren't you? :)

I've just checked and it is freezing with that.
I'm trying to fix it.

Send that png.

crl2007
10th April 2010, 21:40
http://thumbnails28.imagebam.com/7590/0c7aaf75893935.gif (http://www.imagebam.com/image/0c7aaf75893935)

This is the way I'm saving the png, but the palette is getting distorted when loading into the original BD.

This is the new palette:

http://thumbnails28.imagebam.com/7590/18b4a375894426.gif (http://www.imagebam.com/image/18b4a375894426)

Even when I reload the original one it gets another palette. It's the same with Alpha Transparency too.

For "Create New Menu" is ok, the palette is kept as the png.

LE: No, with Wild China. I've discarded that Ninja Assassin disc. I've returned it, it was too broken.

tymoxa
10th April 2010, 21:56
Same to me... freezing when i try to save IGS.
Pelican9 great software :thanks:

Pelican9
10th April 2010, 22:04
When you load a png the program makes one object and one palette, because these are handled separately.
Do you see distorted colors right after the load?
Send that png please.

Pelican9
10th April 2010, 22:06
Same to me... freezing when i try to save IGS.
Pelican9 great software :thanks:

I'll try to fix this first.

Edit: Fixed.
(I thought the RLE size is always smaller then the original. It isn't.)
I've started to upload... (wait about half an hour)

crl2007
10th April 2010, 22:08
You have PM.

Pelican9
10th April 2010, 22:41
You have PM.

Both of them work correctly for me.
Right after the load is it correct?

Edit: Uploaded. (39:39)

crl2007
11th April 2010, 08:32
Right after the load is correct. After a couple of seconds is transformed.

l.e. This is what happens when I try to modify the IN_OUTTime: http://i40.tinypic.com/m93f54.jpg And after this error, I have to restart BDEdit, because it keeps on showing, even it is in read only mode with original values.

tymoxa
11th April 2010, 09:51
Yep, i saw this error couple of times. So i use fixmpls instead for patching in-times.

I tested b2... seems that it works... Now we need a muxer, that can mux .mnu to .m2ts.

Pelican9
11th April 2010, 16:32
Right after the load is correct. After a couple of seconds is transformed.
I think it's not transformed by itself but you do something (click to another object) which activity changes the palette. Change the palette back manually and it will show correctly again. Select the last object and the last palette. What do you see?

l.e. This is what happens when I try to modify the IN_OUTTime: http://i40.tinypic.com/m93f54.jpg And after this error, I have to restart BDEdit, because it keeps on showing, even it is in read only mode with original values.

Where? PlayItem? SubPlayItem? IN_time? OUT_time? Menu IN_time?

Pelican9
11th April 2010, 16:38
Yep, i saw this error couple of times. So i use fixmpls instead for patching in-times.
Do you mean this time format error?

I tested b2... seems that it works... Now we need a muxer, that can mux .mnu to .m2ts.

I'm working on it but I have a lot of questions

tymoxa
11th April 2010, 16:53
Do you mean this time format error?
Yes. All of my attempts to edit in/out time with bdedit was ended with this error.

Pelican9
11th April 2010, 17:02
Yes. All of my attempts to edit in/out time with bdedit was ended with this error.

What is your language/region/locale settings in Windows?
Have you tried to edit a SubPlayItem IN_time or OUT_time?
If not could you try it now?
And what about the User Time Out in the Menu page? Is it work?

crl2007
11th April 2010, 17:43
What is your language/region/locale settings in Windows?
Have you tried to edit a SubPlayItem IN_time or OUT_time?
If not could you try it now?
And what about the User Time Out in the Menu page? Is it work?

1. Romanian, because I'm from Romania. This shouldn't affect the outcome of a setting in a program.

2. This works, no error here.

3. This works as well. Only in PlayItem gives this error, regardless the value.

Sorry that I didn't answered faster, but now I saw your question there.

Just a thought now ( I'm a n00b when it comes to IGS ) - Can't we force through Objects tab and editing the reference for the menu to link to another object ? Let's say we replace 000F with 00D1 ( the last object added ). It's just a thought.

As for the palette, now I saw that the disc has 7 palette states, from 00 to 06. The edited one original palette is 06 and the original ones have 00 as the good palette. By good I mean the one you see displayed in players.

Pelican9
11th April 2010, 17:48
1. Romanian, because I'm from Romania. This shouldn't affect the outcome of a setting in a program.

2. This works, no error here.

3. This works as well. Only in PlayItem gives this error, regardless the value.

Sorry that I didn't answered faster, but now I saw your question there.

:thanks:
I don't know what's wrong about the time format (I'm using standard built-in functions) but I can fix it easily.

Can't we force through Objects tab and editing the reference for the menu to link to another object ? Let's say we replace 000F with 00D1 ( the last object added ). It's just a thought.
I don't understand completely what you want. You can change any object ref. of the buttons.
But you gave me an idea.
What if you can choose the method of the newly loaded image to add new one (like now) or replace the selected object.
If you replace then not necessary to change any of the button references.

As for the palette, now I saw that the disc has 7 palette states, from 00 to 06. The edited one original palette is 06 and the original ones have 00 as the good palette. By good I mean the one you see displayed in players.
You have to use the same palette for the edited one if you want to replace the original.
When you editing don't use new color pick one of the existing palette.
Try to save the edited image from FW without any change (do not check 'remove unused colors', etc.)

tymoxa
11th April 2010, 18:08
What is your language/region/locale settings in Windows?
Have you tried to edit a SubPlayItem IN_time or OUT_time?
If not could you try it now?
And what about the User Time Out in the Menu page? Is it work?
The result is same as for crl2007.
1. Ukrainian (MUI over English XP)
2. no error
3. no error

Pelican9
11th April 2010, 18:13
The result is same as for crl2007.
1. Ukrainian (MUI over English XP)
2. no error
3. no error

Thanks. I've fixed (I hope) you can see in the next version soon.

To everybody:
PLEASE REPORT BUGS!
I cannot fix if you don't report it. :thanks:

crl2007
11th April 2010, 18:31
This is what I was trying to say in the post above:

ORIGINAL:

http://thumbnails26.imagebam.com/7603/8bc59f76022413.gif (http://www.imagebam.com/image/8bc59f76022413)

EDITED:

http://thumbnails28.imagebam.com/7603/2b5d8376022468.gif (http://www.imagebam.com/image/2b5d8376022468)

It could be an idea to force the display of that object through a new menu containing only that one and putting it on top of the existing one.

Pelican9
11th April 2010, 19:39
Still don't catch it, sorry.
What BDedit supposed to do here?
Do you want to hide the Menu button in this example or what?

P.S.:
My English is not so good, sorry for I don't understand you.

crl2007
11th April 2010, 20:11
To overlap 2 menus. There I replaced the 0001 with 0003 button. To force another button to display in front of an original one.