InterDVDCell

Inherits: Resource < RefCounted < Object

One DVD-Video cell: a Godot scene to bake, pre-encoded MPEG-2/VOB, or a source file to transcode.

Description

One muxed VOB cell. Export resolution order: encoded_path if it exists; otherwise bake packed_scene for duration_sec; otherwise copy or transcode source_path. A title PGC muxes every cell (cell N is chapter N / program N). A scene bake records 720×480 video plus a 48 kHz stereo AC3 track. Missing encoder plus no encoded cell is an export error unless dummy VOB is allowed. No CSS is applied.

Properties

String

audio_path

""

NodePath

bake_camera_path

NodePath("")

float

bake_hold_sec

0.0

Rect2

default_highlight

Rect2(0, 0, 0, 0)

float

duration_sec

0.0

String

encoded_path

""

bool

include_audio

true

float

loop_pad_sec

0.0

PackedScene

packed_scene

float

pip_lead_sec

0.4

Rect2

pip_rect

Rect2(0, 0, 0, 0)

NodePath

pip_slot_path

NodePath("")

String

pip_source_path

""

Array[PackedByteArray]

post_commands

[]

String

source_path

""

Array[InterDVDStream]

streams

[]

int

angle

1

Methods

String

get_display_name() const


Property Descriptions

String audio_path = "" 🔗

  • void set_audio_path(value: String)

  • String get_audio_path()

Optional menu music file. Used when include_audio is on and the cell has no picture-in-picture audio. A pip_source_path soundtrack replaces this file.


NodePath bake_camera_path = NodePath("") 🔗

Optional Camera2D or Camera3D used for GPU bake. Empty uses the scene's current camera. A 3D scene with no camera is an authoring error (no camera is invented).


float bake_hold_sec = 0.0 🔗

  • void set_bake_hold_sec(value: float)

  • float get_bake_hold_sec()

Seconds each unique bake frame is held. 0 uses 30 fps, or a root inter_dvd_bake_hold_sec() script hook if present.


Rect2 default_highlight = Rect2(0, 0, 0, 0) 🔗

  • void set_default_highlight(value: Rect2)

  • Rect2 get_default_highlight()

Fallback HLI rectangle when InterDVDButton.sync_highlight_from_scene() cannot resolve InterDVDButton.control_path. Empty leaves the highlight unset.


float duration_sec = 0.0 🔗

  • void set_duration_sec(value: float)

  • float get_duration_sec()

How long to play and bake this cell, in seconds. Required when packed_scene is set. Also written as the PGC playback time.


String encoded_path = "" 🔗

  • void set_encoded_path(value: String)

  • String get_encoded_path()

Pre-encoded MPEG-2 or VOB path, or a bake cache produced from packed_scene.


bool include_audio = true 🔗

  • void set_include_audio(value: bool)

  • bool get_include_audio()

Mux AC3 when a soundtrack exists: PiP video audio first, then audio_path, then a scene AudioStreamPlayer. No dummy silent track.


float loop_pad_sec = 0.0 🔗

  • void set_loop_pad_sec(value: float)

  • float get_loop_pad_sec()

Extra seconds appended after the picture-in-picture clip before the baked menu cycle repeats. Bake length becomes probed PiP duration plus this pad.


PackedScene packed_scene 🔗

Optional Godot scene recorded to NTSC DVD MPEG-2 at export time.


float pip_lead_sec = 0.4 🔗

  • void set_pip_lead_sec(value: float)

  • float get_pip_lead_sec()

Seconds trimmed from the start of a picture-in-picture overlay after black-detect.


Rect2 pip_rect = Rect2(0, 0, 0, 0) 🔗

  • void set_pip_rect(value: Rect2)

  • Rect2 get_pip_rect()

PiP overlay rectangle used only when pip_slot_path does not resolve. Empty means no default geometry.


NodePath pip_slot_path = NodePath("") 🔗

Control or Node2D that receives the scaled PiP video during a scene bake. Empty means no slot unless pip_rect is set.


String pip_source_path = "" 🔗

  • void set_pip_source_path(value: String)

  • String get_pip_source_path()

Optional video composited into pip_slot_path for the probed clip length, then the slot shows the baked still for loop_pad_sec before the menu loops. If this file has audio, that soundtrack replaces audio_path and scene music.


Array[PackedByteArray] post_commands = [] 🔗

Cell-post instruction stream (one 8-byte command typical). Empty non-last cells get a LinkPGN to the next chapter so the title plays through.


String source_path = "" 🔗

  • void set_source_path(value: String)

  • String get_source_path()

Source media. ffmpeg-readable files (.mp4, .mkv, .mov, .avi, .webm) are transcoded to NTSC DVD. MPEG-2/VOB (.mpg, .mpeg, .vob, .m2v) is copied when already a program stream.


Array[InterDVDStream] streams = [] 🔗

Extra audio (0x81+) and subtitle (0x20+) streams. audio_path remains stream 0.


int angle = 1 🔗

  • void set_angle(value: int)

  • int get_angle()

Angle number 1–9 written as an IFO angle-block cell when siblings differ.


Method Descriptions

String get_display_name() const 🔗

Returns the resource name, or the source/encoded file name, for inspector chapter lists.