]> git.sesse.net Git - vlc/commitdiff
demux: libmp4: add rtng atom
authorFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 16 Oct 2014 16:57:59 +0000 (18:57 +0200)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 16 Oct 2014 18:05:02 +0000 (20:05 +0200)
modules/demux/mp4/libmp4.c
modules/demux/mp4/libmp4.h
modules/demux/mp4/meta.c

index 15088bb1d4711c7a08740bf1edecf515da8ae404..f270b550acc67f298d1f5a9cb6878ce8366da32c 100644 (file)
@@ -3717,6 +3717,7 @@ static const struct
     { ATOM_covr,    MP4_ReadBoxContainer,     MP4_FreeBox_Common,  ATOM_ilst },
     { ATOM_disk,    MP4_ReadBox_Metadata,     MP4_FreeBox_Common,  ATOM_ilst },
     { ATOM_gnre,    MP4_ReadBox_Metadata,     MP4_FreeBox_Common,  ATOM_ilst },
+    { ATOM_rtng,    MP4_ReadBox_Metadata,     MP4_FreeBox_Common,  ATOM_ilst },
     { ATOM_trkn,    MP4_ReadBox_Metadata,     MP4_FreeBox_Common,  ATOM_ilst },
 
     /* udta */
index 17b39f22aee3cf3102ab59a0ea67d47cd8b3a20d..2d65d5a906ef8e89cdd5c5137e7f795a1ce1211e 100644 (file)
 #define ATOM_ilst VLC_FOURCC( 'i', 'l', 's', 't' )
 #define ATOM_cnID VLC_FOURCC( 'c', 'n', 'I', 'D' )
 #define ATOM_covr VLC_FOURCC( 'c', 'o', 'v', 'r' )
+#define ATOM_rtng VLC_FOURCC( 'r', 't', 'n', 'g' )
 
 #define ATOM_chap VLC_FOURCC( 'c', 'h', 'a', 'p' )
 #define ATOM_SDLN VLC_FOURCC( 'S', 'D', 'L', 'N' )
index 5e4dd9f1227788d1284194f0f6500f9117e55308..ce1c2b7f65732311d5e5af0103ba991238925dc1 100644 (file)
@@ -292,6 +292,27 @@ static void SetupmdirMeta( vlc_meta_t *p_meta, MP4_Box_t *p_box )
         }
         break;
     }
+    case ATOM_rtng:
+    {
+        if ( p_data && BOXDATA(p_data) && BOXDATA(p_data)->i_blob >= 1 )
+        {
+            const char *psz_rating;
+            switch( *BOXDATA(p_data)->p_blob )
+            {
+            case 0x4:
+                psz_rating = N_("Explicit");
+                break;
+            case 0x2:
+                psz_rating = N_("Clean");
+                break;
+            default:
+            case 0x0:
+                psz_rating = N_("None");
+                break;
+            }
+            vlc_meta_AddExtra( p_meta, N_("Rating"), psz_rating );
+        }
+    }
     case ATOM_trkn:
     {
         if ( p_data && BOXDATA(p_data) && BOXDATA(p_data)->i_blob >= 4 &&