]> git.sesse.net Git - vlc/commitdiff
Added video_format_Setup to replace vout_InitFormat.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 16 May 2009 19:21:11 +0000 (21:21 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Sat, 16 May 2009 20:17:10 +0000 (22:17 +0200)
include/vlc_es.h
src/libvlccore.sym
src/misc/es_format.c
src/video_output/vout_pictures.c

index 224617fef02f3c7dfe8dc9d4726f2e71faee31b6..c315c5fb92e68f9b1c798f26053a8ccfdd49a37d 100644 (file)
@@ -171,6 +171,12 @@ static inline void video_format_Clean( video_format_t *p_src )
     p_src->p_palette = NULL;
 }
 
+/**
+ * It will fill up a video_format_tvideo_format_t using the given arguments.
+ * Becarefull that the video_format_t must already be initialized.
+ */
+VLC_EXPORT( void, video_format_Setup, ( video_format_t *, vlc_fourcc_t i_chroma, int i_width, int i_height, int i_aspect ) );
+
 /**
  * subtitles format description
  */
index 1bf4afc61dd74cc3f9805ae66593d56daa9fe414..d18db7eb84f9a715ce63025a768192e453ac1ab3 100644 (file)
@@ -423,6 +423,7 @@ var_SetChecked
 __var_TriggerCallback
 __var_Type
 video_format_FixRgb
+video_format_Setup
 vlc_avcodec_mutex
 vlc_b64_decode
 vlc_b64_decode_binary
index e6a81cf95c08b7968339665c550281d076f26416..d5eaa471f82ec94aca71863b0c710a8382366185 100644 (file)
@@ -128,6 +128,80 @@ void video_format_FixRgb( video_format_t *p_fmt )
                  p_fmt->i_bmask );
 }
 
+void video_format_Setup( video_format_t *p_fmt, vlc_fourcc_t i_chroma, int i_width, int i_height, int i_aspect )
+{
+    p_fmt->i_chroma         = vlc_fourcc_GetCodec( VIDEO_ES, i_chroma );
+    p_fmt->i_width          =
+    p_fmt->i_visible_width  = i_width;
+    p_fmt->i_height         =
+    p_fmt->i_visible_height = i_height;
+    p_fmt->i_x_offset       =
+    p_fmt->i_y_offset       = 0;
+    p_fmt->i_aspect         = i_aspect;
+
+    switch( p_fmt->i_chroma )
+    {
+    case VLC_CODEC_YUVA:
+        p_fmt->i_bits_per_pixel = 32;
+        break;
+    case VLC_CODEC_I444:
+    case VLC_CODEC_J444:
+        p_fmt->i_bits_per_pixel = 24;
+        break;
+    case VLC_CODEC_I422:
+    case VLC_CODEC_YUYV:
+    case VLC_CODEC_YVYU:
+    case VLC_CODEC_UYVY:
+    case VLC_CODEC_VYUY:
+    case VLC_CODEC_J422:
+        p_fmt->i_bits_per_pixel = 16;
+        break;
+    case VLC_CODEC_I440:
+    case VLC_CODEC_J440:
+        p_fmt->i_bits_per_pixel = 16;
+        break;
+    case VLC_CODEC_I411:
+    case VLC_CODEC_YV12:
+    case VLC_CODEC_I420:
+    case VLC_CODEC_J420:
+        p_fmt->i_bits_per_pixel = 12;
+        break;
+    case VLC_CODEC_I410:
+        p_fmt->i_bits_per_pixel = 9;
+        break;
+    case VLC_CODEC_Y211:
+        p_fmt->i_bits_per_pixel = 8;
+        break;
+    case VLC_CODEC_YUVP:
+        p_fmt->i_bits_per_pixel = 8;
+        break;
+
+    case VLC_CODEC_RGB32:
+    case VLC_CODEC_RGBA:
+        p_fmt->i_bits_per_pixel = 32;
+        break;
+    case VLC_CODEC_RGB24:
+        p_fmt->i_bits_per_pixel = 24;
+        break;
+    case VLC_CODEC_RGB15:
+    case VLC_CODEC_RGB16:
+        p_fmt->i_bits_per_pixel = 16;
+        break;
+    case VLC_CODEC_RGB8:
+        p_fmt->i_bits_per_pixel = 8;
+        break;
+
+    case VLC_CODEC_GREY:
+    case VLC_CODEC_RGBP:
+        p_fmt->i_bits_per_pixel = 8;
+        break;
+
+    default:
+        p_fmt->i_bits_per_pixel = 0;
+        break;
+    }
+}
+
 void es_format_Init( es_format_t *fmt,
                      int i_cat, vlc_fourcc_t i_codec )
 {
index 3e500cdb44cf7b002b78fdc5d1f4c680c7f83650..29b250054acc56734b2cb2dd7fffa53ed8838425 100644 (file)
@@ -605,81 +605,7 @@ int __vout_AllocatePicture( vlc_object_t *p_this, picture_t *p_pic,
 void vout_InitFormat( video_frame_format_t *p_format, vlc_fourcc_t i_chroma,
                       int i_width, int i_height, int i_aspect )
 {
-    p_format->i_chroma   = i_chroma;
-    p_format->i_width    = p_format->i_visible_width  = i_width;
-    p_format->i_height   = p_format->i_visible_height = i_height;
-    p_format->i_x_offset = p_format->i_y_offset = 0;
-    p_format->i_aspect   = i_aspect;
-
-#if 0
-    /* Assume we have square pixels */
-    if( i_width && i_height )
-        p_format->i_aspect = i_width * VOUT_ASPECT_FACTOR / i_height;
-    else
-        p_format->i_aspect = 0;
-#endif
-
-    switch( vlc_fourcc_GetCodec( VIDEO_ES, i_chroma ) )
-    {
-        case VLC_CODEC_YUVA:
-            p_format->i_bits_per_pixel = 32;
-            break;
-        case VLC_CODEC_I444:
-        case VLC_CODEC_J444:
-            p_format->i_bits_per_pixel = 24;
-            break;
-        case VLC_CODEC_I422:
-        case VLC_CODEC_YUYV:
-        case VLC_CODEC_YVYU:
-        case VLC_CODEC_UYVY:
-        case VLC_CODEC_VYUY:
-        case VLC_CODEC_J422:
-            p_format->i_bits_per_pixel = 16;
-            break;
-        case VLC_CODEC_I440:
-        case VLC_CODEC_J440:
-            p_format->i_bits_per_pixel = 16;
-            break;
-        case VLC_CODEC_I411:
-        case VLC_CODEC_YV12:
-        case VLC_CODEC_I420:
-        case VLC_CODEC_J420:
-            p_format->i_bits_per_pixel = 12;
-            break;
-        case VLC_CODEC_I410:
-            p_format->i_bits_per_pixel = 9;
-            break;
-        case VLC_CODEC_Y211:
-            p_format->i_bits_per_pixel = 8;
-            break;
-        case VLC_CODEC_YUVP:
-            p_format->i_bits_per_pixel = 8;
-            break;
-
-        case VLC_CODEC_RGB32:
-        case VLC_CODEC_RGBA:
-            p_format->i_bits_per_pixel = 32;
-            break;
-        case VLC_CODEC_RGB24:
-            p_format->i_bits_per_pixel = 24;
-            break;
-        case VLC_CODEC_RGB15:
-        case VLC_CODEC_RGB16:
-            p_format->i_bits_per_pixel = 16;
-            break;
-        case VLC_CODEC_RGB8:
-            p_format->i_bits_per_pixel = 8;
-            break;
-
-        case VLC_CODEC_GREY:
-        case VLC_CODEC_RGBP:
-            p_format->i_bits_per_pixel = 8;
-            break;
-
-        default:
-            p_format->i_bits_per_pixel = 0;
-            break;
-    }
+    video_format_Setup( p_format, i_chroma, i_width, i_height, i_aspect );
 }
 
 /**