[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