*Sticky* Spec-authoring "gotchas"

This thread will contain a list of common quirks in player's implementation of the spec which can cause problems. The idea is to help out users migrating from abstraction-layer applications especially. This first post will be updated periodically so that it isn't necessary to read the whole thread.

  1. When setting subtitle streams, audio streams etc. it is advisable to do so at the last possible moment - ie. in the pre-commands of the PGC in question. Some players manage to "forget" these settings, especially when moving between the VMG and VTSM, for example.
  2. It is a good idea to reset all registers ( GPRMs ) in the first-play PGC. Some software players do not reset these variables when inserting a new disc.
  3. It is safer to Link to a PG than a cell - for example, "Link C2" is not always honoured correctly by some players.
  4. The behavior of "Set Button r4" is inconsistent if r4 ( or whatever GPRM you use ) is equal to zero. Some players will perform a "Set button B1", others will simply not change the button.
  5. Care should be taken with cell-commands - if a user winds or chapters through a cell-coundary, the originally intended command may not be executed when the cell boundary is reached.
  6. SPRM 14 cannot be used reliably in all players. Some, notably Sony, return incorrect values.
  7. It has been alleged that SPRM 4 ( TT ) is also incorrectly implemented in many players, sometimes giving the VTS TT instead, ie. SPRM 4 and 5 will return the same value. It would be interested to hear confirmation of this this...
  8. Force Activated Buttons - A button set to forcibly activate in an HLI (FOAC_BTTN in the spec or "Force action button number" in the button highlight info in dvdAE ) won't be activated by many (if not most) players.
  9. Randomness - Some players random numbers generator allegedly have a better randomness when using the maximum (65535) value, then doing a modulo to get the correct range.
  10. Button commands should never be NOPs. That will stop some players when they are activated.
  11. PGCs containing non-zero PGC Still Time values cannot be one-sequential. Using Cell still times will be fine.
  12. If a Title PGC is one-sequential, it should only have a value of "0" in the Next and Previous PGC settings to be spec compliant (Menu domain PGCs can only have a value of "0" in the next and previous settings, as well) It's not clear whether ignoring this rule would have serious consequences, though.
  13. If a Title PGC is not One Sequential, timecode values and chapter info ( PTT number, ie. SPRM 7 ) cannot be relied on. Many players will still store the PTT in SPRM 7 anyway, but up to 50% may return the last PG instead, or an unpredictable result.

Refinements, corrections or insights to the above are welcome !

Ian

I found one too!

the Toshiba SD-350E

Hi Eric,Only just saw this

Hi Eric,

Only just saw this question ! Do you mean Ben's article on spec authoring transitions ? If so, it's just because Ben write the article before I wrote the gotcha, and the article hasn't been updated. ( There's a few inconsistencies like this on the site which need ironing out, but at the moment we're prioritising the manual re-write. ) My gotcha is based on personal experience of "Link Cell" not being reliable in some of my test players. I guess Ben just didn't run into this issue in his testing. Or, maybe I was unlucky and found the only player in the world that doesn't like Link Cell commands ! As usual, ymmv.

Hth,

Ian

I have a question about item

I have a question about item # 3. Its indicates its not always safe to link to a cell. However in the "Transition" tutorial you use this same command for the menu loop. Just curious?

Eric

Setting streams

A corollary to item #1... If setting a stream in a PGC command area in title space, some players won't set to an audio or subpicture stream number that doesn't exist in the title.

If you set the stream in VTS menu space, however, these players are more likely to respect the command. (Seen with an older version of PowerDVD and the Panasonic Emulator)

Joe

It will state that the

It will state that the layer-break has been placed in ROM data, and there will be no available cells. Not sure what happens if you try to write a master in this case, though - Larry ?

Interesting - I'll have to

Interesting - I'll have to test that one with the latest version. Did a show here awhile back that's MA pretty much all the way through, and I'm pretty sure we mastered it with 'Edit. I don't think there was any other legal layer break location, so I wonder what 'Edit will do in that case?

Joe

Thanks Joe, It's all useful

Thanks Joe,

It's all useful - if the list gets too long as time goes by I'll divide it into categories, I think. Incidentally, I don't think dvdAE will allow us to place a layer-break in an angle block, for this very reason. But, it's certainly worth people knowing about this at the bit-budgeting stage rather than finding out just as we're about to write a DLT...

Ian

Layer Break during an Angle Block

Thought of another one - some players will lock up at the layer break if it occurs during an angle block. Safest to drop to a contiguous block for a couple seconds for the layer break, then back into another angle block.

This isn't really navigation programming specific, though, so I don't know if it merits inclusion.

Joe

From the thread about NOPs

From the thread about NOPs :

NOP are ok,

"But your button commands....
...should never be NOPs. That will stop some players when they are activated.

Michael"

Thanks Michael !

Hi Julien,HLI = Highlight

Hi Julien,

HLI = Highlight Information

Ie. if you drill down to the nav-pack level of a PGC, and look at the Button Highlights section, there is a field called "Force action button number" - this should make a button command execute automatically at the end of the button highlight which contains it, but it's not a reliable method.

I've updated the top post to be more clear.

Ian

HLI ?

Hi Joe,

what do you mean by "in an HLI" ?

Julien

Think I'll make this a "sticky"

Thanks guys, please keep them coming !

Ian

Force Activated Buttons

A button set to forcibly activate in an HLI (FOAC_BTTN in the spec) won't be activated by many (if not most) players.

Randomness

This is very appreciated, Ian !

One everybody heard of here, but if we are at compiling...

- Some players random numbers generator allegedly have a better randomness when using the maximum (65535) value, then doing a modulo to get the correct range.

Added a couple more.

Added a couple more.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h1> <h2> <h3> <h4> <center>
  • You may quote other posts using [quote] tags.
  • You may link to images on this site using a special syntax
  • Web page addresses and e-mail addresses turn into links automatically.
  • You may use [inline:xx] tags to display uploaded files or images inline.
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.