]> git.sesse.net Git - vlc/blobdiff - src/misc/fourcc.c
Support for sipr decoder from FFmpeg
[vlc] / src / misc / fourcc.c
index 16c84653972d591f004461da95a6b8625930103f..7d34362c72905a0bc417d98930010d93bbc58f70 100644 (file)
@@ -377,7 +377,9 @@ static const entry_t p_list_video[] = {
         A("WMV3"),
         A("wmv3"),
 
-    B(VLC_CODEC_WMVA, "Windows Media Video Advanced"),
+    /* WMVA is the VC-1 codec before the standardization proces,
+     * it is not bitstream compatible and deprecated  */
+    B(VLC_CODEC_WMVA, "Windows Media Video Advanced Profile"),
         A("WMVA"),
         A("wmva"),
         A("WVP2"),
@@ -388,9 +390,6 @@ static const entry_t p_list_video[] = {
         A("wvc1"),
         A("vc-1"),
         A("VC-1"),
-        /* WMVA is the VC-1 codec before the standardization proces,
-         * it is not bitstream compatible and deprecated  */
-        E("WMVA", "Windows Media Video Advanced Profile"),
 
     /* Microsoft Video 1 */
     B(VLC_CODEC_MSVIDEO1, "Microsoft Video 1"),
@@ -592,6 +591,8 @@ static const entry_t p_list_video[] = {
         A("AVs2"),
         A("avs2"),
 
+    B(VLC_CODEC_AMV, "AMV"),
+
     /* */
     B(VLC_CODEC_DNXHD, "DNxHD"),
         A("AVdn"),
@@ -603,6 +604,9 @@ static const entry_t p_list_video[] = {
     B(VLC_CODEC_CDG, "CD-G Video"),
         A("CDG "),
 
+    B(VLC_CODEC_FRWU, "Forward Uncompressed" ),
+        A("FRWU"),
+
     /* */
     B(VLC_CODEC_YV12, "Planar 4:2:0 YVU"),
         A("YV12"),
@@ -665,23 +669,26 @@ static const entry_t p_list_video[] = {
     B(VLC_CODEC_UYVY, "Packed YUV 4:2:2, U:Y:V:Y"),
         A("UYVY"),
         A("UYNV"),
+        A("UYNY"),
         A("Y422"),
+        A("HDYC"),
+        A("AVUI"),
+        A("uyv1"),
         A("2vuy"),
         A("2Vuy"),
-        A("AVUI"),
+        A("2Vu1"),
     B(VLC_CODEC_VYUY, "Packed YUV 4:2:2, V:Y:U:Y"),
         A("VYUY"),
     B(VLC_CODEC_YUYV, "Packed YUV 4:2:2, Y:U:Y:V"),
         A("YUY2"),
         A("YUYV"),
         A("YUNV"),
+        A("V422"),
     B(VLC_CODEC_YVYU, "Packed YUV 4:2:2, Y:V:Y:U"),
         A("YVYU"),
 
     B(VLC_CODEC_Y211, "Packed YUV 2:1:1, Y:U:Y:V "),
         A("Y211"),
-    B(VLC_CODEC_YMGA, "Planar Y, packed UV, from Matrox"),
-        A("YMGA"),
     B(VLC_CODEC_CYUV, "Creative Packed YUV 4:2:2, U:Y:V:Y, reverted"),
         A("cyuv"),
         A("CYUV"),
@@ -831,6 +838,9 @@ static const entry_t p_list_audio[] = {
     B(VLC_CODEC_RA_288, "RealAudio 2.0"),
         A("28_8"),
 
+    B(VLC_CODEC_SIPR, "RealAudio Sipr"),
+        A("sipr"),
+
     /* MPEG Audio layer 1/2/3 */
     B(VLC_CODEC_MPGA, "MPEG Audio layer 1/2/3"),
         A("mpga"),
@@ -913,6 +923,8 @@ static const entry_t p_list_audio[] = {
     B(VLC_CODEC_ADPCM_IMA_WAV, "IMA WAV ADPCM Audio"),
         A("ms\x00\x11"),
 
+    B(VLC_CODEC_ADPCM_IMA_AMV, "IMA AMV ADPCM Audio"),
+
     /* AMR */
     B(VLC_CODEC_AMR_NB, "AMR narrow band"),
         A("samr"),
@@ -1426,14 +1438,77 @@ static const vlc_fourcc_t p_list_YUV[] = {
     0,
 };
 
-const vlc_fourcc_t *vlc_fourcc_GetYUVFallback( vlc_fourcc_t i_fourcc )
+/* */
+static const vlc_fourcc_t p_RGB32_fallback[] = {
+    VLC_CODEC_RGB32,
+    VLC_CODEC_RGB24,
+    VLC_CODEC_RGB16,
+    VLC_CODEC_RGB15,
+    VLC_CODEC_RGB8,
+    0,
+};
+static const vlc_fourcc_t p_RGB24_fallback[] = {
+    VLC_CODEC_RGB24,
+    VLC_CODEC_RGB32,
+    VLC_CODEC_RGB16,
+    VLC_CODEC_RGB15,
+    VLC_CODEC_RGB8,
+    0,
+};
+static const vlc_fourcc_t p_RGB16_fallback[] = {
+    VLC_CODEC_RGB16,
+    VLC_CODEC_RGB24,
+    VLC_CODEC_RGB32,
+    VLC_CODEC_RGB15,
+    VLC_CODEC_RGB8,
+    0,
+};
+static const vlc_fourcc_t p_RGB15_fallback[] = {
+    VLC_CODEC_RGB15,
+    VLC_CODEC_RGB16,
+    VLC_CODEC_RGB24,
+    VLC_CODEC_RGB32,
+    VLC_CODEC_RGB8,
+    0,
+};
+static const vlc_fourcc_t p_RGB8_fallback[] = {
+    VLC_CODEC_RGB8,
+    VLC_CODEC_RGB15,
+    VLC_CODEC_RGB16,
+    VLC_CODEC_RGB24,
+    VLC_CODEC_RGB32,
+    0,
+};
+static const vlc_fourcc_t *pp_RGB_fallback[] = {
+    p_RGB32_fallback,
+    p_RGB24_fallback,
+    p_RGB16_fallback,
+    p_RGB15_fallback,
+    p_RGB8_fallback,
+    NULL,
+};
+
+
+/* */
+static const vlc_fourcc_t *GetFallback( vlc_fourcc_t i_fourcc,
+                                        const vlc_fourcc_t *pp_fallback[],
+                                        const vlc_fourcc_t p_list[] )
 {
-    for( unsigned i = 0; pp_YUV_fallback[i]; i++ )
+    for( unsigned i = 0; pp_fallback[i]; i++ )
     {
-        if( pp_YUV_fallback[i][0] == i_fourcc )
-            return pp_YUV_fallback[i];
+        if( pp_fallback[i][0] == i_fourcc )
+            return pp_fallback[i];
     }
-    return p_list_YUV;
+    return p_list;
+}
+
+const vlc_fourcc_t *vlc_fourcc_GetYUVFallback( vlc_fourcc_t i_fourcc )
+{
+    return GetFallback( i_fourcc, pp_YUV_fallback, p_list_YUV );
+}
+const vlc_fourcc_t *vlc_fourcc_GetRGBFallback( vlc_fourcc_t i_fourcc )
+{
+    return GetFallback( i_fourcc, pp_RGB_fallback, p_RGB32_fallback );
 }
 
 bool vlc_fourcc_AreUVPlanesSwapped( vlc_fourcc_t a, vlc_fourcc_t b )