/*****************************************************************************
- * mkv.cpp : matroska demuxer
+ * demux.hpp : matroska demuxer
*****************************************************************************
- * Copyright (C) 2003-2004 the VideoLAN team
+ * Copyright (C) 2003-2004 VLC authors and VideoLAN
* $Id$
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Steve Lhomme <steve.lhomme@free.fr>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef _DEMUX_SYS_H
demux_sys_t( demux_t & demux )
:demuxer(demux)
,i_pts(0)
+ ,i_pcr(0)
,i_start_pts(0)
,i_chapter_time(0)
,meta(NULL)
demux_t & demuxer;
mtime_t i_pts;
+ mtime_t i_pcr;
mtime_t i_start_pts;
mtime_t i_chapter_time;
float f_duration;
matroska_segment_c *FindSegment( const EbmlBinary & uid ) const;
- chapter_item_c *BrowseCodecPrivate( unsigned int codec_id,
+ virtual_chapter_c *BrowseCodecPrivate( unsigned int codec_id,
bool (*match)(const chapter_codec_cmds_c &data, const void *p_cookie, size_t i_cookie_size ),
const void *p_cookie,
size_t i_cookie_size,
virtual_segment_c * & p_segment_found );
- chapter_item_c *FindChapter( int64_t i_find_uid, virtual_segment_c * & p_segment_found );
+ virtual_chapter_c *FindChapter( int64_t i_find_uid, virtual_segment_c * & p_segment_found );
void PreloadFamily( const matroska_segment_c & of_segment );
- void PreloadLinked( matroska_segment_c *p_segment );
+ bool PreloadLinked();
bool PreparePlayback( virtual_segment_c *p_new_segment );
matroska_stream_c *AnalyseAllSegmentsFound( demux_t *p_demux, EbmlStream *p_estream, bool b_initial = false );
- void JumpTo( virtual_segment_c & p_segment, chapter_item_c * p_chapter );
+ void JumpTo( virtual_segment_c & p_segment, virtual_chapter_c * p_chapter );
void InitUi();
void CleanUi();
event_thread_t *p_ev;
protected:
- virtual_segment_c *VirtualFromSegments( matroska_segment_c *p_segment ) const;
- bool IsUsedSegment( matroska_segment_c &p_segment ) const;
+ virtual_segment_c *VirtualFromSegments( std::vector<matroska_segment_c*> *p_segments ) const;
};