Commit 53accaad authored by Steve Lhomme's avatar Steve Lhomme

mkv.cpp: Enter/Leave on subchapters too

parent 28e3aa77
...@@ -422,7 +422,8 @@ protected: ...@@ -422,7 +422,8 @@ protected:
demux_sys_t & sys; demux_sys_t & sys;
// DVD command IDs // DVD command IDs
static const uint16 CMD_JUMP_TT = 0x3002; static const uint16 CMD_JUMP_TT = 0x3002;
static const uint16 CMD_CALLSS_VTSM = 0x3008;
// callbacks when browsing inside CodecPrivate // callbacks when browsing inside CodecPrivate
static bool MatchTitleNumber( const chapter_codec_cmds_c &data, const void *p_cookie, size_t i_cookie_size ); static bool MatchTitleNumber( const chapter_codec_cmds_c &data, const void *p_cookie, size_t i_cookie_size );
...@@ -4189,6 +4190,12 @@ bool chapter_item_c::Enter() ...@@ -4189,6 +4190,12 @@ bool chapter_item_c::Enter()
(*index)->Enter(); (*index)->Enter();
index++; index++;
} }
std::vector<chapter_item_c*>::iterator index_ = sub_chapters.begin();
while ( index_ != sub_chapters.end() )
{
(*index_)->Enter();
index_++;
}
return true; return true;
} }
...@@ -4200,6 +4207,12 @@ bool chapter_item_c::Leave() ...@@ -4200,6 +4207,12 @@ bool chapter_item_c::Leave()
(*index)->Leave(); (*index)->Leave();
index++; index++;
} }
std::vector<chapter_item_c*>::iterator index_ = sub_chapters.begin();
while ( index_ != sub_chapters.end() )
{
(*index_)->Leave();
index_++;
}
return true; return true;
} }
...@@ -4257,6 +4270,8 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si ...@@ -4257,6 +4270,8 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si
case CMD_JUMP_TT: case CMD_JUMP_TT:
{ {
uint8 i_title = p_command[5]; uint8 i_title = p_command[5];
msg_Dbg( &sys.demuxer, "DVD command: JumpTT %d", i_title );
// find in the ChapProcessPrivate matching this Title level // find in the ChapProcessPrivate matching this Title level
virtual_segment_c *p_segment; virtual_segment_c *p_segment;
chapter_item_c *p_chapter; chapter_item_c *p_chapter;
...@@ -4278,6 +4293,24 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si ...@@ -4278,6 +4293,24 @@ bool dvd_command_interpretor_c::Interpret( const binary * p_command, size_t i_si
break; break;
} }
case CMD_CALLSS_VTSM:
{
msg_Dbg( &sys.demuxer, "DVD command: CallSS VTSM" );
break;
}
default:
{
msg_Dbg( &sys.demuxer, "DVD command: unsupported %02X %02X %02X %02X %02X %02X %02X %02X"
,p_command[0]
,p_command[1]
,p_command[2]
,p_command[3]
,p_command[4]
,p_command[5]
,p_command[6]
,p_command[7]);
break;
}
} }
return true; return true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment