Cell Type Flags ??

  • Tag zusammen.

    Kann mir bitte jemand die bereits genannten "Cell Type Flags" erklären?

    • Was bedeuten die einzelnen von ihnen?
    • Wann und wie kommen sie zur Anwendung?
    • Wie können die kombiniert werden?
    • Woran merkt man das etwas nicht stimmt? (Falscher Flag)
    • etc.

    Ich wäre wirklich dankbar für Hilfe!
    Gruss

  • 1 - seamless angle change
    2 - SCR discontinuity
    4 - Interleaved allocation
    8 - Seamless playback joint
    16 - Angle block
    64 - first ofAngleblock
    128 - middle of Angleblock
    192 - last of Angleblock

    Bedeutung:

    1 - wird gesetzt wenn ein Angle seamless (nahtlos) gemuxt wird (die Sprungziele -jump pointers- sind im DSI - Data search information stream, im Gegensatz dazu sind bei Non-seamless angles die Sprungziele im PCI-Presentation control information stream)
    2 - in jeder VOB läuft ein Ticker (90000 Ticks pro Sekunde, 3600 Ticks pro PAL Frame), dieser beginnt bei null und zählt fortlaufend. Beginnt er nun z.b. an einer VOBU neu zu zählen (Neu VOB ID z.b) wird dieses Bit gesetzt
    4 - wird interleaved gemuxt (Multiangle, Seamless Branching usw) wird dieses Bit gesetzt
    8 - dieses Bit zeigt an wie an Cellgrenzen gemuxt wurde. Beim seamless Muxen wird aufgrund der kleinen Audiobuffergröße cellübergreifend gemuxt. Das heisst die ersten Audiopakete einer gemuxten Cell werden noch mit dem Video der vorhergehenden Cell abgespielt. Ist dieses Flag nicht gesetzt werden alle Audiopakete in die Cell gemuxt, in der sie abgespielt werden. Beim Seamless Joint werden die Video- und Audiobuffer fortlaufend gefüllt, auch über Cellgrenzen, und nach ihrer PTS (Presentation time stamp) angezeigt bzw abgespielt. Beim Non Seamless Joint werden die Buffer nur bis zur Cellgrenze gefüllt, abgespielt und erst danach werden die Buffer neu gefüllt.
    16 - zeigt an das es sich um einen Angleblock handelt
    64 - erster Angleblock
    128 - mittlerer Angleblock
    192 - letzter Angleblock

    diese Werte werden addiert und ergeben das Cell type flag

    z.b. erhält ein erster seamless Angleblock 95
    1 gesetzt
    2 gesetzt
    4 gesetzt
    8 gesetzt
    16 gesetzt
    64 gesetzt
    128 nicht gesetzt
    192 nicht gesetzt

    eine normale seamless Cell erhält 8
    1 nicht gesetzt
    2 nicht gesetzt
    4 nicht gesetzt
    8 gesetzt
    16 nicht gesetzt
    64 nicht gesetzt
    128 nicht gesetzt
    192 nicht gesetzt

    dies alles ist in Byte 0 der "Cell playback information table entry" gespeichert

    in Byte 1 der "Cell playback information table entry" gibts nur Bit 5 oder 6 zu setzen. Bit 5 gesetzt (Wert 32) bedeutet "restricted", z.b kein Schnellvorlauf, keine Zeitlpupe, kein Next Button etc.

    Bit 6 gesetzt (Wert 64) macht aus der VOBU ein Still

    Byte 2 hält die Cell still time

    Byte 3 die Cellcommands

  • Jaaa... Danke fürs erste.
    Mir ging es vor allem um die Flags 1-8.

    Dies bedeutet also, das ein nachträgliches Ändern des Flags keine wirkliche Auswirkung auf das Verhalten der Cells(Menü) hat?

  • Zitat

    das ein nachträgliches Ändern des Flags keine wirkliche Auswirkung auf das Verhalten der Cells(Menü) hat?



    Nein - z.b grundsätzlich erfordert ein Cell Command immer ein NSM Flag (8) da sonst das Command übergangen würde ( -ist aber auch playerabhängig, manche führen das Command auch ohne NSM Flag aus)

    Bei Setzen eines Seamless Joints wo keiner war, wäre auch ein eventueller Sequence_end_code im Videostream zu entfernen und im zugehörigen NAV-Pack der "End PTM Value of VOBU if Sequence_end_code" (Byte-offset 41) auf 0 zu setzen.
    Trotzdem würden manche Player stottern oder einfrieren weil eben nicht seamless gemuxt wurde und es deshalb Buffer Under- bzw Overruns gibt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!