Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC


Commits:
10e28083 by Steve Lhomme at 2024-03-11T07:43:23+01:00
demux/mkv: use a better name for unused elements

Unless it's an EbmlDummy the element is not unknown if it has a known class.

Rather than displaying a decorated C++ class name, show the actual element name 
in libmatroska.
No need for Runtime Type Indentification (RTTI) for that.

The EBML_NAME() has been around since at least libebml 0.8: 
https://github.com/Matroska-Org/libebml/commit/cd378f23ff5c8bd477fe066fccca532bf00f974b

(cherry picked from commit dba5d5969af029cc475e6cd124a2d4845339fb19) (edited)

edited:
- in 3.0 the tag loading is different

Signed-off-by: Steve Lhomme <rob...@ycbcr.xyz>

- - - - -


2 changed files:

- modules/demux/mkv/matroska_segment.cpp
- modules/demux/mkv/matroska_segment_parse.cpp


Changes:

=====================================
modules/demux/mkv/matroska_segment.cpp
=====================================
@@ -145,7 +145,7 @@ void matroska_segment_c::LoadCues( KaxCues *cues )
                             if( unlikely( !el->ValidateSize() ) )
                             {
                                 eparser.Up();
-                                msg_Err( &sys.demuxer, "Error %s too big, 
aborting", typeid(*el).name() );
+                                msg_Err( &sys.demuxer, "Error %s too big, 
aborting", EBML_NAME(el) );
                                 b_invalid_cue = true;
                                 break;
                             }
@@ -190,14 +190,14 @@ void matroska_segment_c::LoadCues( KaxCues *cues )
 #endif
                             else
                             {
-                                msg_Dbg( &sys.demuxer, "         * Unknown 
(%s)", typeid(*el).name() );
+                                msg_Dbg( &sys.demuxer, "         * Unknown 
(%s)", EBML_NAME(el) );
                             }
                         }
                     }
                     catch(...)
                     {
                         eparser.Up();
-                        msg_Err( &sys.demuxer, "Error while reading %s", 
typeid(*el).name() );
+                        msg_Err( &sys.demuxer, "Error while reading %s", 
EBML_NAME(el) );
                         b_invalid_cue = true;
                         break;
                     }
@@ -205,7 +205,7 @@ void matroska_segment_c::LoadCues( KaxCues *cues )
                 }
                 else
                 {
-                    msg_Dbg( &sys.demuxer, "     * Unknown (%s)", 
typeid(*el).name() );
+                    msg_Dbg( &sys.demuxer, "     * Unknown (%s)", 
EBML_NAME(el) );
                 }
             }
             eparser.Up();
@@ -225,7 +225,7 @@ void matroska_segment_c::LoadCues( KaxCues *cues )
         }
         else
         {
-            msg_Dbg( &sys.demuxer, " * Unknown (%s)", typeid(*el).name() );
+            msg_Dbg( &sys.demuxer, " * Unknown (%s)", EBML_NAME(el) );
         }
     }
     b_cues = true;
@@ -286,7 +286,7 @@ bool matroska_segment_c::ParseSimpleTags( SimpleTag* 
pout_simple, KaxTagSimple *
         {
             if( unlikely( !el->ValidateSize() ) )
             {
-                msg_Err( &sys.demuxer, "Error %s too big ignoring the tag", 
typeid(*el).name() );
+                msg_Err( &sys.demuxer, "Error %s too big ignoring the tag", 
EBML_NAME(el) );
                 return false;
             }
             if( MKV_CHECKED_PTR_DECL ( ktn_ptr, KaxTagName, el ) )
@@ -423,7 +423,7 @@ void matroska_segment_c::LoadTags( KaxTags *tags )
                             }
                             else
                             {
-                                msg_Dbg( &sys.demuxer, "|   |   + LoadTag 
Unknown (%s)", typeid( *el ).name() );
+                                msg_Dbg( &sys.demuxer, "|   |   + LoadTag 
Unknown (%s)", EBML_NAME( el ) );
                             }
                         }
                         catch(...)
@@ -444,7 +444,7 @@ void matroska_segment_c::LoadTags( KaxTags *tags )
                 }
                 else
                 {
-                    msg_Dbg( &sys.demuxer, "|   + LoadTag Unknown (%s)", 
typeid( *el ).name() );
+                    msg_Dbg( &sys.demuxer, "|   + Unknown (%s)", EBML_NAME(el) 
);
                 }
             }
             eparser.Up();
@@ -452,7 +452,7 @@ void matroska_segment_c::LoadTags( KaxTags *tags )
         }
         else
         {
-            msg_Dbg( &sys.demuxer, "+ Unknown (%s)", typeid( *el ).name() );
+            msg_Dbg( &sys.demuxer, "+ LoadTag Unknown (%s)", EBML_NAME(el) );
         }
     }
 
@@ -691,7 +691,7 @@ bool matroska_segment_c::Preload( )
         else if( MKV_IS_ID ( el, EbmlVoid ) )
             msg_Dbg( &sys.demuxer, "|   + Void" );
         else
-            msg_Dbg( &sys.demuxer, "|   + Preload Unknown (%s)", 
typeid(*el).name() );
+            msg_Dbg( &sys.demuxer, "|   + Preload Unknown (%s)", EBML_NAME(el) 
);
     }
 
     ComputeTrackPriority();
@@ -795,7 +795,7 @@ bool matroska_segment_c::LoadSeekHeadItem( const 
EbmlCallbacks & ClassInfos, int
     }
     else
     {
-        msg_Dbg( &sys.demuxer, "|   + LoadSeekHeadItem Unknown (%s)", 
typeid(*el).name() );
+        msg_Dbg( &sys.demuxer, "|   + LoadSeekHeadItem Unknown (%s)", 
EBML_NAME(el) );
     }
     delete el;
 
@@ -1224,7 +1224,7 @@ int matroska_segment_c::BlockGet( KaxBlock * & pp_block, 
KaxSimpleBlock * & pp_s
         }
         E_CASE_DEFAULT(element)
         {
-            msg_Dbg( vars.p_demuxer, "Unknown (%s)", typeid (element).name () 
);
+            msg_Dbg( vars.p_demuxer, "Unknown (%s)", EBML_NAME(&element) );
         }
     };
 
@@ -1338,7 +1338,7 @@ int matroska_segment_c::BlockGet( KaxBlock * & pp_block, 
KaxSimpleBlock * & pp_s
             VLC_UNUSED(element);
 
             msg_Warn( vars.p_demuxer, "unknown element at { fpos: %" PRId64 ", 
'%s' }",
-              element.GetElementPosition(), typeid( element ).name() );
+              element.GetElementPosition(), EBML_NAME( &element ) );
         }
     };
 
@@ -1427,7 +1427,7 @@ int matroska_segment_c::BlockGet( KaxBlock * & pp_block, 
KaxSimpleBlock * & pp_s
                 case 3:
                     if( unlikely( !el->ValidateSize() || ( el->IsFiniteSize() 
&& el->GetSize() >= SIZE_MAX ) ) )
                     {
-                        msg_Err( &sys.demuxer, "Error while reading %s... 
upping level", typeid(*el).name());
+                        msg_Err( &sys.demuxer, "Error while reading %s... 
upping level", EBML_NAME(el));
                         ep.Up();
 
                         if ( i_level == 2 )
@@ -1457,7 +1457,7 @@ int matroska_segment_c::BlockGet( KaxBlock * & pp_block, 
KaxSimpleBlock * & pp_s
         }
         catch (...)
         {
-            msg_Err( &sys.demuxer, "Error while reading %s... upping level", 
typeid(*el).name());
+            msg_Err( &sys.demuxer, "Error while reading %s... upping level", 
EBML_NAME(el));
             ep.Up();
             ep.Unkeep();
             pp_simpleblock = NULL;


=====================================
modules/demux/mkv/matroska_segment_parse.cpp
=====================================
@@ -114,7 +114,7 @@ void matroska_segment_c::ParseSeekHead( KaxSeekHead 
*seekhead )
                 {
                     if( unlikely( !l->ValidateSize() ) )
                     {
-                        msg_Err( &sys.demuxer,"%s too big... skipping it",  
typeid(*l).name() );
+                        msg_Err( &sys.demuxer,"%s too big... skipping it",  
EBML_NAME(l) );
                         continue;
                     }
                     if( MKV_IS_ID( l, KaxSeekID ) )
@@ -132,13 +132,13 @@ void matroska_segment_c::ParseSeekHead( KaxSeekHead 
*seekhead )
                     else if ( !MKV_IS_ID( l, EbmlVoid ) && !MKV_IS_ID( l, 
EbmlCrc32 ))
                     {
                         /* Many mkvmerge files hit this case. It seems to be a 
broken SeekHead */
-                        msg_Dbg( &sys.demuxer, "|   |   + Unknown (%s)", 
typeid(*l).name() );
+                        msg_Dbg( &sys.demuxer, "|   |   + Unknown (%s)", 
EBML_NAME(l) );
                     }
                 }
             }
             catch(...)
             {
-                msg_Err( &sys.demuxer,"Error while reading %s",  
typeid(*l).name() );
+                msg_Err( &sys.demuxer,"Error while reading %s",  EBML_NAME(l) 
);
             }
             eparser.Up();
 
@@ -191,7 +191,7 @@ void matroska_segment_c::ParseSeekHead( KaxSeekHead 
*seekhead )
             }
         }
         else if ( !MKV_IS_ID( l, EbmlVoid ) && !MKV_IS_ID( l, EbmlCrc32 ))
-            msg_Dbg( &sys.demuxer, "|   |   + ParseSeekHead Unknown (%s)", 
typeid(*l).name() );
+            msg_Dbg( &sys.demuxer, "|   |   + ParseSeekHead Unknown (%s)", 
EBML_NAME(l) );
     }
 }
 
@@ -873,7 +873,7 @@ void matroska_segment_c::ParseTrackEntry( const 
KaxTrackEntry *m )
           VLC_UNUSED( vars );
         }
         E_CASE_DEFAULT(element) {
-            debug( vars, "Unknown (%s)", typeid(element).name() );
+            debug( vars, "Unknown (%s)", EBML_NAME(&element) );
         }
     };
 
@@ -960,7 +960,7 @@ void matroska_segment_c::ParseTracks( KaxTracks *tracks )
             VLC_UNUSED( vars );
         }
         E_CASE_DEFAULT(element) {
-            MkvTree( *vars.p_demuxer, 2, "Unknown (%s)", 
typeid(element).name() );
+            MkvTree( *vars.p_demuxer, 2, "Unknown (%s)", EBML_NAME(&element) );
         }
     };
 
@@ -1141,7 +1141,7 @@ void matroska_segment_c::ParseInfo( KaxInfo *info )
         }
         E_CASE_DEFAULT(element)
         {
-            debug( vars, "Unknown (%s)", typeid(element).name() );
+            debug( vars, "Unknown (%s)", EBML_NAME(&element) );
         }
     };
 
@@ -1430,7 +1430,7 @@ void matroska_segment_c::ParseChapters( KaxChapters 
*chapters )
                 }
                 E_CASE_DEFAULT( el )
                 {
-                    msg_Dbg( vars.p_demuxer, "|   |   |   + Unknown (%s)", 
typeid(el).name() );
+                    msg_Dbg( vars.p_demuxer, "|   |   |   + Unknown (%s)", 
EBML_NAME(&el) );
                 }
             };
             KaxEditionHandler::Dispatcher().iterate( entry.begin(), 
entry.end(), &data );
@@ -1443,7 +1443,7 @@ void matroska_segment_c::ParseChapters( KaxChapters 
*chapters )
         }
         E_CASE_DEFAULT( el )
         {
-            msg_Dbg( &vars.sys.demuxer, "|   |   + Unknown (%s)", 
typeid(el).name() );
+            msg_Dbg( &vars.sys.demuxer, "|   |   + Unknown (%s)", 
EBML_NAME(&el) );
         }
     };
 



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/commit/10e2808347d49a1862cd7a76d629c2b5d65909e8

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/commit/10e2808347d49a1862cd7a76d629c2b5d65909e8
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to