Move remaining replacement to static import library
[vlc.git] / modules / demux / mkv / matroska_segment_parse.cpp
index b9598c2..db889db 100644 (file)
 
 #include "demux.hpp"
 
+/*****************************************************************************
+ * Some functions to manipulate memory
+ *****************************************************************************/
+static inline char * ToUTF8( const UTFstring &u )
+{
+    return strdup( u.GetUTF8().c_str() );
+}
+
 /*****************************************************************************
  * ParseSeekHead:
  *****************************************************************************/
@@ -35,8 +43,6 @@ void matroska_segment_c::ParseSeekHead( KaxSeekHead *seekhead )
 {
     EbmlParser  *ep;
     EbmlElement *l;
-    size_t i, j;
-    int i_upper_level = 0;
     bool b_seekable;
 
     i_seekhead_count++;
@@ -125,6 +131,31 @@ void matroska_segment_c::ParseSeekHead( KaxSeekHead *seekhead )
     delete ep;
 }
 
+
+/**
+ * Helper function to print the mkv parse tree
+ */
+static void MkvTree( demux_t & demuxer, int i_level, const char *psz_format, ... )
+{
+    va_list args;
+    if( i_level > 9 )
+    {
+        msg_Err( &demuxer, "too deep tree" );
+        return;
+    }
+    va_start( args, psz_format );
+    static const char psz_foo[] = "|   |   |   |   |   |   |   |   |   |";
+    char *psz_foo2 = (char*)malloc( i_level * 4 + 3 + strlen( psz_format ) );
+    strncpy( psz_foo2, psz_foo, 4 * i_level );
+    psz_foo2[ 4 * i_level ] = '+';
+    psz_foo2[ 4 * i_level + 1 ] = ' ';
+    strcpy( &psz_foo2[ 4 * i_level + 2 ], psz_format );
+    __msg_GenericVa( VLC_OBJECT(&demuxer),VLC_MSG_DBG, "mkv", psz_foo2, args );
+    free( psz_foo2 );
+    va_end( args );
+}
+
+
 /*****************************************************************************
  * ParseTrackEntry:
  *****************************************************************************/
@@ -153,6 +184,7 @@ void matroska_segment_c::ParseTrackEntry( KaxTrackEntry *m )
     tk->i_extra_data = 0;
     tk->p_extra_data = NULL;
     tk->psz_codec = NULL;
+    tk->b_dts_only = false;
     tk->i_default_duration = 0;
     tk->f_timecodescale = 1.0;
 
@@ -735,7 +767,6 @@ void matroska_segment_c::ParseInfo( KaxInfo *info )
 
             msg_Dbg( &sys.demuxer, "|   |   + family=%d", *(uint32*)uid->GetBuffer() );
         }
-#if defined( HAVE_GMTIME_R )
         else if( MKV_IS_ID( l, KaxDateUTC ) )
         {
             KaxDateUTC &date = *(KaxDateUTC*)l;
@@ -753,7 +784,6 @@ void matroska_segment_c::ParseInfo( KaxInfo *info )
                 msg_Dbg( &sys.demuxer, "|   |   + Date=%s", psz_date_utc );
             }
         }
-#endif
         else if( MKV_IS_ID( l, KaxChapterTranslate ) )
         {
             KaxChapterTranslate *p_trans = static_cast<KaxChapterTranslate*>( l );