[vlc-devel] commit: Added video_format_Setup to replace vout_InitFormat. ( Laurent Aimar )

git version control git at videolan.org
Sat May 16 22:21:39 CEST 2009


vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Sat May 16 21:21:11 2009 +0200| [4179a9e5c42cd75faac70723907f6adf86710caa] | committer: Laurent Aimar 

Added video_format_Setup to replace vout_InitFormat.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4179a9e5c42cd75faac70723907f6adf86710caa
---

 include/vlc_es.h                 |    6 +++
 src/libvlccore.sym               |    1 +
 src/misc/es_format.c             |   74 +++++++++++++++++++++++++++++++++++++
 src/video_output/vout_pictures.c |   76 +-------------------------------------
 4 files changed, 82 insertions(+), 75 deletions(-)

diff --git a/include/vlc_es.h b/include/vlc_es.h
index 224617f..c315c5f 100644
--- a/include/vlc_es.h
+++ b/include/vlc_es.h
@@ -172,6 +172,12 @@ static inline void video_format_Clean( video_format_t *p_src )
 }
 
 /**
+ * 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
  */
 struct subs_format_t
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index 1bf4afc..d18db7e 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -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
diff --git a/src/misc/es_format.c b/src/misc/es_format.c
index e6a81cf..d5eaa47 100644
--- a/src/misc/es_format.c
+++ b/src/misc/es_format.c
@@ -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 )
 {
diff --git a/src/video_output/vout_pictures.c b/src/video_output/vout_pictures.c
index 3e500cd..29b2500 100644
--- a/src/video_output/vout_pictures.c
+++ b/src/video_output/vout_pictures.c
@@ -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 );
 }
 
 /**




More information about the vlc-devel mailing list