diff --git a/include/vlc_vout.h b/include/vlc_vout.h index 6f1c9820d50e6e4b882fb1f6b941268b47d796f4..005467d85cfbc01b7645a913f7f6b63ade01c617 100644 --- a/include/vlc_vout.h +++ b/include/vlc_vout.h @@ -56,11 +56,6 @@ struct picture_heap_t /* Real pictures */ picture_t* pp_picture[VOUT_MAX_PICTURES]; /**< pictures */ int i_last_used_pic; /**< last used pic in heap */ - - /* Stuff used for truecolor RGB planes */ - uint32_t i_rmask; int i_rrshift, i_lrshift; - uint32_t i_gmask; int i_rgshift, i_lgshift; - uint32_t i_bmask; int i_rbshift, i_lbshift; }; /***************************************************************************** diff --git a/src/input/decoder.c b/src/input/decoder.c index 2dc6404a359524b1874f33f2925861fb4ce683bb..a9594f1185191aa586f43b1b265aa306a6568121 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -2349,13 +2349,6 @@ static picture_t *vout_new_buffer( decoder_t *p_dec ) p_dec->b_error = true; return NULL; } - - if( p_owner->video.i_rmask ) - p_owner->p_vout->render.i_rmask = p_owner->video.i_rmask; - if( p_owner->video.i_gmask ) - p_owner->p_vout->render.i_gmask = p_owner->video.i_gmask; - if( p_owner->video.i_bmask ) - p_owner->p_vout->render.i_bmask = p_owner->video.i_bmask; } /* Get a new picture diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 3b428f757c267a8a5d59c75043fb51a18180d13c..391ac2d1493bad1440c0b79f8555c60596e625a0 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -66,9 +66,6 @@ static void ErrorThread ( vout_thread_t * ); static void CleanThread ( vout_thread_t * ); static void EndThread ( vout_thread_t * ); -static void VideoFormatImportRgb( video_format_t *, const picture_heap_t * ); -static void PictureHeapFixRgb( picture_heap_t * ); - static void vout_Destructor ( vlc_object_t * p_this ); /* Object variables callbacks */ @@ -203,6 +200,8 @@ vout_thread_t *vout_Request( vlc_object_t *p_this, vout_thread_t *p_vout, free( psz_filter_chain ); } +#warning "FIXME: Check RGB masks in vout_Request" + /* FIXME: check RGB masks */ if( p_vout->fmt_render.i_chroma != vlc_fourcc_GetCodec( VIDEO_ES, p_fmt->i_chroma ) || p_vout->fmt_render.i_width != p_fmt->i_width || p_vout->fmt_render.i_height != p_fmt->i_height || @@ -341,15 +340,14 @@ vout_thread_t * vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt ) p_vout->fmt_render = *p_fmt; /* FIXME palette */ p_vout->fmt_in = *p_fmt; /* FIXME palette */ + video_format_FixRgb( &p_vout->fmt_render ); + video_format_FixRgb( &p_vout->fmt_in ); + p_vout->render.i_width = i_width; p_vout->render.i_height = i_height; p_vout->render.i_chroma = i_chroma; p_vout->render.i_aspect = i_aspect; - p_vout->render.i_rmask = p_fmt->i_rmask; - p_vout->render.i_gmask = p_fmt->i_gmask; - p_vout->render.i_bmask = p_fmt->i_bmask; - p_vout->render.i_last_used_pic = -1; /* Zero the output heap */ @@ -359,10 +357,6 @@ vout_thread_t * vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt ) p_vout->output.i_chroma = 0; p_vout->output.i_aspect = 0; - p_vout->output.i_rmask = 0; - p_vout->output.i_gmask = 0; - p_vout->output.i_bmask = 0; - /* Initialize misc stuff */ p_vout->i_changes = 0; p_vout->b_fullscreen = 0; @@ -807,11 +801,8 @@ static int InitThread( vout_thread_t *p_vout ) /* FIXME removed the need of both fmt_* and heap infos */ /* Calculate shifts from system-updated masks */ - PictureHeapFixRgb( &p_vout->render ); - VideoFormatImportRgb( &p_vout->fmt_render, &p_vout->render ); - - PictureHeapFixRgb( &p_vout->output ); - VideoFormatImportRgb( &p_vout->fmt_out, &p_vout->output ); + video_format_FixRgb( &p_vout->fmt_render ); + video_format_FixRgb( &p_vout->fmt_out ); /* print some usefull debug info about different vout formats */ @@ -1339,57 +1330,6 @@ static void EndThread( vout_thread_t *p_vout ) /* following functions are local */ -/** - * This function copies all RGB informations from a picture_heap_t into - * a video_format_t - */ -static void VideoFormatImportRgb( video_format_t *p_fmt, const picture_heap_t *p_heap ) -{ - p_fmt->i_rmask = p_heap->i_rmask; - p_fmt->i_gmask = p_heap->i_gmask; - p_fmt->i_bmask = p_heap->i_bmask; - p_fmt->i_rrshift = p_heap->i_rrshift; - p_fmt->i_lrshift = p_heap->i_lrshift; - p_fmt->i_rgshift = p_heap->i_rgshift; - p_fmt->i_lgshift = p_heap->i_lgshift; - p_fmt->i_rbshift = p_heap->i_rbshift; - p_fmt->i_lbshift = p_heap->i_lbshift; -} - -/** - * This funtion copes all RGB informations from a video_format_t into - * a picture_heap_t - */ -static void VideoFormatExportRgb( const video_format_t *p_fmt, picture_heap_t *p_heap ) -{ - p_heap->i_rmask = p_fmt->i_rmask; - p_heap->i_gmask = p_fmt->i_gmask; - p_heap->i_bmask = p_fmt->i_bmask; - p_heap->i_rrshift = p_fmt->i_rrshift; - p_heap->i_lrshift = p_fmt->i_lrshift; - p_heap->i_rgshift = p_fmt->i_rgshift; - p_heap->i_lgshift = p_fmt->i_lgshift; - p_heap->i_rbshift = p_fmt->i_rbshift; - p_heap->i_lbshift = p_fmt->i_lbshift; -} - -/** - * This function computes rgb shifts from masks - */ -static void PictureHeapFixRgb( picture_heap_t *p_heap ) -{ - video_format_t fmt; - - /* */ - fmt.i_chroma = p_heap->i_chroma; - VideoFormatImportRgb( &fmt, p_heap ); - - /* */ - video_format_FixRgb( &fmt ); - - VideoFormatExportRgb( &fmt, p_heap ); -} - /***************************************************************************** * object variables callbacks: a bunch of object variables are used by the * interfaces to interact with the vout. diff --git a/src/video_output/vout_wrapper.c b/src/video_output/vout_wrapper.c index 9ea1486e281520d3689f59e8e5db820f0bb9a88f..7a97877c71b6dc85e28f272f90452325bca3d6ff 100644 --- a/src/video_output/vout_wrapper.c +++ b/src/video_output/vout_wrapper.c @@ -150,9 +150,6 @@ int vout_InitWrapper(vout_thread_t *vout) vout->output.i_width = source.i_width; vout->output.i_height = source.i_height; vout->output.i_aspect = (int64_t)source.i_sar_num * source.i_width * VOUT_ASPECT_FACTOR / source.i_sar_den / source.i_height; - vout->output.i_rmask = source.i_rmask; - vout->output.i_gmask = source.i_gmask; - vout->output.i_bmask = source.i_bmask; /* also set fmt_out (completly broken API) */ vout->fmt_out.i_chroma = vout->output.i_chroma; @@ -164,6 +161,9 @@ int vout_InitWrapper(vout_thread_t *vout) vout->fmt_out.i_sar_den = VOUT_ASPECT_FACTOR * vout->output.i_width; vout->fmt_out.i_x_offset = 0; vout->fmt_out.i_y_offset = 0; + vout->fmt_out.i_rmask = source.i_rmask; + vout->fmt_out.i_gmask = source.i_gmask; + vout->fmt_out.i_bmask = source.i_bmask; if (vout->fmt_in.i_visible_width != source.i_visible_width || vout->fmt_in.i_visible_height != source.i_visible_height ||