Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
8d990276
Commit
8d990276
authored
Jan 19, 2000
by
Vincent Seguin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resize qui fonctionne.
parent
0fe4da87
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
95 additions
and
174 deletions
+95
-174
include/config.h
include/config.h
+4
-0
include/video_output.h
include/video_output.h
+9
-33
src/interface/interface.c
src/interface/interface.c
+0
-39
src/interface/main.c
src/interface/main.c
+5
-2
src/video_output/video_output.c
src/video_output/video_output.c
+76
-60
src/video_output/video_x11.c
src/video_output/video_x11.c
+1
-1
src/video_output/video_yuv.c
src/video_output/video_yuv.c
+0
-39
No files found.
include/config.h
View file @
8d990276
...
...
@@ -248,6 +248,10 @@
#define VOUT_GRAYSCALE_VAR "vlc_grayscale"
#define VOUT_GRAYSCALE_DEFAULT 0
/* Environment variable for fullscreen output mode, and default value */
#define VOUT_FULLSCREEN_VAR "vlc_fullscreen"
#define VOUT_FULLSCREEN_DEFAULT 0
/* Default gamma */
#define VOUT_GAMMA 0.
...
...
include/video_output.h
View file @
8d990276
...
...
@@ -49,28 +49,6 @@ typedef void (vout_convert_t)( p_vout_thread_t p_vout, void *p_pic,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
int
i_scale
,
int
i_matrix_coefficients
);
/*******************************************************************************
* vout_scale_t: horizontal scaling function
*******************************************************************************
* The convertion function only perform a vertical scaling. Horizontal scaling
* is done later using this function.
* Parameters:
* p_vout video output thread
* p_src source address (start address in picture)
* p_dst destination address (start address in picture)
* i_width source width
* i_height source height
* i_line_width source total pixels per line
* i_dst_line_width destination total pixels per line
* i_scale if non 0, horizontal scaling is 1 - 1/i_scale
* Conditions:
* i_height % 16
* i_scale < 0 if p_src == p_dst
*******************************************************************************/
typedef
void
(
vout_scale_t
)(
p_vout_thread_t
p_vout
,
void
*
p_src
,
void
*
p_dst
,
int
i_width
,
int
i_height
,
int
i_line_width
,
int
i_dst_line_width
,
int
i_scale
);
/*******************************************************************************
* vout_thread_t: video output thread descriptor
*******************************************************************************
...
...
@@ -91,18 +69,18 @@ typedef struct vout_thread_s
int
*
pi_status
;
/* temporary status flag */
p_vout_sys_t
p_sys
;
/* system output method */
/* Current display properties */
boolean_t
b_info
;
/* print additionnal informations */
boolean_t
b_grayscale
;
/* color or grayscale display */
/* Current display properties */
boolean_t
b_grayscale
;
/* color or grayscale display */
int
i_width
;
/* current output method width */
int
i_height
;
/* current output method height */
int
i_bytes_per_line
;
/* bytes per line (including virtual) */
int
i_screen_depth
;
/* bits per pixel */
int
i_bytes_per_pixel
;
/* real screen depth */
int
i_horizontal_scale
;
/* horizontal display scale */
int
i_vertical_scale
;
/* vertical display scale */
float
f_gamma
;
/* gamma */
/* Pictures and rendering properties */
boolean_t
b_info
;
/* print additionnal informations */
#ifdef STATS
/* Statistics - these numbers are not supposed to be accurate, but are a
* good indication of the thread status */
...
...
@@ -123,18 +101,16 @@ typedef struct vout_thread_s
vout_convert_t
*
p_ConvertYUV420
;
/* YUV 4:2:0 converter */
vout_convert_t
*
p_ConvertYUV422
;
/* YUV 4:2:2 converter */
vout_convert_t
*
p_ConvertYUV444
;
/* YUV 4:4:4 converter */
vout_scale_t
*
p_Scale
;
/* scaler */
}
vout_thread_t
;
/* Flags for changes - these flags are set in the i_changes field when another
* thread changed a variable */
#define VOUT_INFO_CHANGE 0x0001
/* b_info changed */
#define VOUT_GRAYSCALE_CHANGE 0x0002
/* b_grayscale changed */
#define VOUT_SIZE_CHANGE 0x0004
/* size changed */
#define VOUT_DEPTH_CHANGE 0x0008
/* depth changed */
#define VOUT_RATIO_CHANGE 0x0010
/* display ratio changed */
#define VOUT_GAMMA_CHANGE 0x0020
/* gamma changed */
#define VOUT_NODISPLAY_CHANGE 0xffdc
/* changes which forbiden the display */
#define VOUT_SIZE_CHANGE 0x0008
/* size changed */
#define VOUT_DEPTH_CHANGE 0x0010
/* depth changed */
#define VOUT_GAMMA_CHANGE 0x0080
/* gamma changed */
#define VOUT_NODISPLAY_CHANGE 0xffff
/* changes which forbidden display */
/*******************************************************************************
* Prototypes
...
...
src/interface/interface.c
View file @
8d990276
...
...
@@ -222,45 +222,6 @@ int intf_ProcessKey( intf_thread_t *p_intf, int i_key )
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
break
;
case
'x'
:
/* horizontal aspect ratio - */
if
(
(
p_intf
->
p_vout
!=
NULL
)
&&
(
p_intf
->
p_vout
->
i_horizontal_scale
>
-
INTF_SCALE_LIMIT
)
)
{
vlc_mutex_lock
(
&
p_intf
->
p_vout
->
change_lock
);
p_intf
->
p_vout
->
i_horizontal_scale
--
;
p_intf
->
p_vout
->
i_changes
|=
VOUT_RATIO_CHANGE
;
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
break
;
case
'X'
:
/* horizontal aspect ratio + */
if
(
(
p_intf
->
p_vout
!=
NULL
)
&&
(
p_intf
->
p_vout
->
i_horizontal_scale
<
INTF_SCALE_LIMIT
)
)
{
vlc_mutex_lock
(
&
p_intf
->
p_vout
->
change_lock
);
p_intf
->
p_vout
->
i_horizontal_scale
++
;
p_intf
->
p_vout
->
i_changes
|=
VOUT_RATIO_CHANGE
;
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
break
;
case
'y'
:
/* vertical aspect ratio - */
if
(
(
p_intf
->
p_vout
!=
NULL
)
&&
(
p_intf
->
p_vout
->
i_vertical_scale
>
-
INTF_SCALE_LIMIT
)
)
{
vlc_mutex_lock
(
&
p_intf
->
p_vout
->
change_lock
);
p_intf
->
p_vout
->
i_vertical_scale
--
;
p_intf
->
p_vout
->
i_changes
|=
VOUT_RATIO_CHANGE
;
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
break
;
case
'Y'
:
/* horizontal aspect ratio + */
if
(
(
p_intf
->
p_vout
!=
NULL
)
&&
(
p_intf
->
p_vout
->
i_vertical_scale
<
INTF_SCALE_LIMIT
)
)
{
vlc_mutex_lock
(
&
p_intf
->
p_vout
->
change_lock
);
p_intf
->
p_vout
->
i_vertical_scale
++
;
p_intf
->
p_vout
->
i_changes
|=
VOUT_RATIO_CHANGE
;
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
break
;
case
'f'
:
/* toggle fullscreen */
//??
break
;
case
' '
:
/* toggle info */
if
(
p_intf
->
p_vout
!=
NULL
)
{
...
...
src/interface/main.c
View file @
8d990276
...
...
@@ -61,6 +61,7 @@ static const struct option longopts[] =
{
"novideo"
,
0
,
0
,
OPT_NOVIDEO
},
{
"grayscale"
,
0
,
0
,
'g'
},
{
"color"
,
0
,
0
,
OPT_COLOR
},
{
"fullscreen"
,
0
,
0
,
'f'
},
/* VLAN management options */
{
"novlans"
,
0
,
0
,
OPT_NOVLANS
},
...
...
@@ -69,7 +70,7 @@ static const struct option longopts[] =
};
/* Short options */
static
const
char
*
psz_shortopts
=
"hg"
;
static
const
char
*
psz_shortopts
=
"hg
f
"
;
/*******************************************************************************
* Global variable program_data - this is the one and only, see main.h
...
...
@@ -350,6 +351,9 @@ static int GetConfiguration( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
case
OPT_COLOR
:
/* --color */
main_PutIntVariable
(
VOUT_GRAYSCALE_VAR
,
0
);
break
;
case
'f'
:
/* -f, --fullscreen */
main_PutIntVariable
(
VOUT_FULLSCREEN_VAR
,
1
);
break
;
/* VLAN management options */
case
OPT_NOVLANS
:
/* --novlans */
...
...
@@ -428,7 +432,6 @@ static void Usage( void )
" [esc], q quit
\n
"
\
" +, -, m change volume, mute
\n
"
\
" g, G, c change gamma, toggle grayscale
\n
"
\
" x, X, y, Y, f change aspect ratio, toggle fullscreen
\n
"
\
" 0 - 9 select channel
\n
"
\
" [space] toggle info printing
\n
"
\
);
...
...
src/video_output/video_output.c
View file @
8d990276
...
...
@@ -71,11 +71,6 @@ vout_thread_t * vout_CreateThread ( char *psz_display, int i_root_
/* Initialize some fields used by the system-dependant method - these fields will
* probably be modified by the method, and are only preferences */
#ifdef DEBUG
p_vout
->
b_info
=
1
;
#else
p_vout
->
b_info
=
0
;
#endif
p_vout
->
b_grayscale
=
main_GetIntVariable
(
VOUT_GRAYSCALE_VAR
,
VOUT_GRAYSCALE_DEFAULT
);
p_vout
->
i_width
=
i_width
;
...
...
@@ -83,13 +78,15 @@ vout_thread_t * vout_CreateThread ( char *psz_display, int i_root_
p_vout
->
i_bytes_per_line
=
i_width
*
2
;
p_vout
->
i_screen_depth
=
15
;
p_vout
->
i_bytes_per_pixel
=
2
;
p_vout
->
i_horizontal_scale
=
0
;
p_vout
->
i_vertical_scale
=
0
;
p_vout
->
f_gamma
=
VOUT_GAMMA
;
intf_DbgMsg
(
"wished configuration: %dx%d,%d (%d bytes/pixel, %d bytes/line), scaling %+d:%+d, gray=%d
\n
"
,
#ifdef DEBUG
p_vout
->
b_info
=
1
;
#else
p_vout
->
b_info
=
0
;
#endif
intf_DbgMsg
(
"wished configuration: %dx%d,%d (%d bytes/pixel, %d bytes/line)
\n
"
,
p_vout
->
i_width
,
p_vout
->
i_height
,
p_vout
->
i_screen_depth
,
p_vout
->
i_bytes_per_pixel
,
p_vout
->
i_bytes_per_line
,
p_vout
->
i_horizontal_scale
,
p_vout
->
i_vertical_scale
,
p_vout
->
b_grayscale
);
p_vout
->
i_bytes_per_pixel
,
p_vout
->
i_bytes_per_line
);
/* Create and initialize system-dependant method - this function issues its
* own error messages */
...
...
@@ -98,10 +95,9 @@ vout_thread_t * vout_CreateThread ( char *psz_display, int i_root_
free
(
p_vout
);
return
(
NULL
);
}
intf_DbgMsg
(
"actual configuration: %dx%d,%d (%d bytes/pixel, %d bytes/line)
, scaling %+d:%+d, gray=%d
\n
"
,
intf_DbgMsg
(
"actual configuration: %dx%d,%d (%d bytes/pixel, %d bytes/line)
\n
"
,
p_vout
->
i_width
,
p_vout
->
i_height
,
p_vout
->
i_screen_depth
,
p_vout
->
i_bytes_per_pixel
,
p_vout
->
i_bytes_per_line
,
p_vout
->
i_horizontal_scale
,
p_vout
->
i_vertical_scale
,
p_vout
->
b_grayscale
);
p_vout
->
i_bytes_per_pixel
,
p_vout
->
i_bytes_per_line
);
#ifdef STATS
/* Initialize statistics fields */
...
...
@@ -828,37 +824,64 @@ static void RenderBlank( vout_thread_t *p_vout )
*******************************************************************************/
static
int
RenderPicture
(
vout_thread_t
*
p_vout
,
picture_t
*
p_pic
,
boolean_t
b_blank
)
{
int
i_display_height
,
i_display_width
;
/* display dimensions */
int
i_height
,
i_width
;
/* source picture dimensions */
int
i_scaled_height
;
/* scaled height of the picture */
int
i_aspect_scale
;
/* aspect ratio vertical scale */
int
i_eol
;
/* end of line offset for source */
byte_t
*
p_convert_dst
;
/* convertion destination */
#ifdef STATS
/* Start recording render time */
p_vout
->
render_time
=
mdate
();
#endif
/* Mark last picture date */
p_vout
->
last_picture_date
=
p_pic
->
date
;
/* Blank screen if required */
if
(
b_blank
)
p_vout
->
last_picture_date
=
p_pic
->
date
;
i_width
=
p_pic
->
i_width
;
i_height
=
p_pic
->
i_height
;
i_display_width
=
p_vout
->
i_width
;
i_display_height
=
p_vout
->
i_height
;
/* Select scaling depending of aspect ratio */
switch
(
p_pic
->
i_aspect_ratio
)
{
// ????? RenderBlank( p_vout );
case
AR_3_4_PICTURE
:
i_aspect_scale
=
(
4
*
i_height
-
3
*
i_width
)
?
1
+
3
*
i_width
/
(
4
*
i_height
-
3
*
i_width
)
:
0
;
break
;
case
AR_16_9_PICTURE
:
i_aspect_scale
=
(
16
*
i_height
-
9
*
i_width
)
?
1
+
9
*
i_width
/
(
16
*
i_height
-
9
*
i_width
)
:
0
;
break
;
case
AR_221_1_PICTURE
:
i_aspect_scale
=
(
221
*
i_height
-
100
*
i_width
)
?
1
+
100
*
i_width
/
(
221
*
i_height
-
100
*
i_width
)
:
0
;
break
;
case
AR_SQUARE_PICTURE
:
default:
i_aspect_scale
=
0
;
}
/*
* Prepare scaling
*/
if
(
(
p_pic
->
i_width
>
p_vout
->
i_width
)
||
(
p_pic
->
i_height
>
p_vout
->
i_height
)
)
i_scaled_height
=
(
i_aspect_scale
?
i_height
*
(
i_aspect_scale
-
1
)
/
i_aspect_scale
:
i_height
);
/* Crop picture if too large for the screen */
if
(
i_width
>
i_display_width
)
{
#ifdef VIDEO_X11
/* X11: window can be resized, so resize it - the picture won't be
* rendered since any alteration of the window size means recreating the
* XImages */
/* p_vout->i_new_width = p_pic->i_width;
p_vout->i_new_height = p_pic->i_height;*/
#else
/* Other drivers: the video output thread can't change its size, so
* we need to change the aspect ratio */
//????
#endif
i_eol
=
i_width
-
i_display_width
/
16
*
16
;
i_width
=
i_display_width
/
16
*
16
;
}
else
{
i_eol
=
0
;
}
if
(
i_scaled_height
>
i_display_height
)
{
i_height
=
(
i_aspect_scale
*
i_display_height
/
(
i_aspect_scale
-
1
))
/
2
*
2
;
i_scaled_height
=
i_display_height
;
}
p_convert_dst
=
vout_SysGetPicture
(
p_vout
)
+
(
i_display_width
-
i_width
)
/
2
*
p_vout
->
i_bytes_per_pixel
+
(
i_display_height
-
i_scaled_height
)
/
2
*
p_vout
->
i_bytes_per_line
;
/*
* Choose appropriate rendering function and render picture
...
...
@@ -866,27 +889,26 @@ static int RenderPicture( vout_thread_t *p_vout, picture_t *p_pic, boolean_t b_b
switch
(
p_pic
->
i_type
)
{
case
YUV_420_PICTURE
:
p_vout
->
p_ConvertYUV420
(
p_vout
,
vout_SysGetPicture
(
p_vout
),
p_vout
->
p_ConvertYUV420
(
p_vout
,
p_convert_dst
,
p_pic
->
p_y
,
p_pic
->
p_u
,
p_pic
->
p_v
,
p_pic
->
i_width
,
p_pic
->
i_height
,
0
,
0
,
4
,
p_pic
->
i_matrix_coefficients
);
i_width
,
i_height
,
i_eol
,
p_vout
->
i_bytes_per_line
/
p_vout
->
i_bytes_per_pixel
-
i_width
,
i_aspect_scale
,
p_pic
->
i_matrix_coefficients
);
break
;
case
YUV_422_PICTURE
:
/* ??? p_vout->p_convert_yuv_420( p_vout,
p_pic->p_y, p_pic->p_u, p_pic->p_v,
i_chroma_width, i_chroma_height,
p_vout->i_width / 2, p_vout->i_height,
p_vout->i_bytes_per_line,
0, 0, 0 );
*/
break
;
p_vout
->
p_ConvertYUV422
(
p_vout
,
p_convert_dst
,
p_pic
->
p_y
,
p_pic
->
p_u
,
p_pic
->
p_v
,
i_width
,
i_height
,
i_eol
,
p_vout
->
i_bytes_per_line
/
p_vout
->
i_bytes_per_pixel
-
i_width
,
i_aspect_scale
,
p_pic
->
i_matrix_coefficients
);
break
;
case
YUV_444_PICTURE
:
/* ??? p_vout->p_convert_yuv_420( p_vout,
p_pic->p_y, p_pic->p_u, p_pic->p_v,
i_chroma_width, i_chroma_height,
p_vout->i_width, p_vout->i_height,
p_vout->i_bytes_per_line,
0, 0, 0 );
*/
break
;
p_vout
->
p_ConvertYUV444
(
p_vout
,
p_convert_dst
,
p_pic
->
p_y
,
p_pic
->
p_u
,
p_pic
->
p_v
,
i_width
,
i_height
,
i_eol
,
p_vout
->
i_bytes_per_line
/
p_vout
->
i_bytes_per_pixel
-
i_width
,
i_aspect_scale
,
p_pic
->
i_matrix_coefficients
);
break
;
#ifdef DEBUG
default:
intf_DbgMsg
(
"error: unknown picture type %d
\n
"
,
p_pic
->
i_type
);
...
...
@@ -894,11 +916,6 @@ static int RenderPicture( vout_thread_t *p_vout, picture_t *p_pic, boolean_t b_b
#endif
}
/*
* Terminate scaling
*/
//??
#ifdef STATS
/* End recording render time */
p_vout
->
render_time
=
mdate
()
-
p_vout
->
render_time
;
...
...
@@ -1010,10 +1027,8 @@ static int RenderInfo( vout_thread_t *p_vout, boolean_t b_blank )
break
;
}
}
sprintf
(
psz_buffer
,
"%s %dx%d:%d scaling %+d:%+d g%+.2f pic: %d/%d/%d"
,
p_vout
->
b_grayscale
?
"gray"
:
"rgb"
,
sprintf
(
psz_buffer
,
"%dx%d:%d g%+.2f pic: %d/%d/%d"
,
p_vout
->
i_width
,
p_vout
->
i_height
,
p_vout
->
i_screen_depth
,
p_vout
->
i_horizontal_scale
,
p_vout
->
i_vertical_scale
,
p_vout
->
f_gamma
,
i_reserved_pic
,
i_ready_pic
,
VOUT_MAX_PICTURES
);
vout_SysPrint
(
p_vout
,
0
,
p_vout
->
i_height
,
-
1
,
1
,
psz_buffer
);
...
...
@@ -1035,7 +1050,8 @@ static int Manage( vout_thread_t *p_vout )
}
/* Clear changes flags which does not need management or have been handled */
p_vout
->
i_changes
&=
~
(
VOUT_INFO_CHANGE
|
VOUT_GAMMA_CHANGE
|
VOUT_GRAYSCALE_CHANGE
);
p_vout
->
i_changes
&=
~
(
VOUT_GAMMA_CHANGE
|
VOUT_GRAYSCALE_CHANGE
|
VOUT_INFO_CHANGE
);
/* Detect unauthorized changes */
if
(
p_vout
->
i_changes
)
...
...
src/video_output/video_x11.c
View file @
8d990276
...
...
@@ -214,7 +214,7 @@ int vout_SysManage( vout_thread_t *p_vout )
if
(
p_vout
->
i_changes
&
VOUT_SIZE_CHANGE
)
{
intf_DbgMsg
(
"resizing window
\n
"
);
p_vout
->
i_changes
&=
~
VOUT_SIZE_CHANGE
;
p_vout
->
i_changes
&=
~
VOUT_SIZE_CHANGE
;
/* Resize window */
XResizeWindow
(
p_vout
->
p_sys
->
p_display
,
p_vout
->
p_sys
->
window
,
...
...
src/video_output/video_yuv.c
View file @
8d990276
...
...
@@ -72,12 +72,6 @@ static void ConvertYUV422RGB32( p_vout_thread_t p_vout, u32 *p_pic, yuv_data
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
int
i_scale
,
int
i_matrix_coefficients
);
static
void
ConvertYUV444RGB32
(
p_vout_thread_t
p_vout
,
u32
*
p_pic
,
yuv_data_t
*
p_y
,
yuv_data_t
*
p_u
,
yuv_data_t
*
p_v
,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
int
i_scale
,
int
i_matrix_coefficients
);
static
void
Scale16
(
p_vout_thread_t
p_vout
,
void
*
p_pic
,
void
*
p_buffer
,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
float
f_alpha
,
float
f_beta
);
static
void
Scale24
(
p_vout_thread_t
p_vout
,
void
*
p_pic
,
void
*
p_buffer
,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
float
f_alpha
,
float
f_beta
);
static
void
Scale32
(
p_vout_thread_t
p_vout
,
void
*
p_pic
,
void
*
p_buffer
,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
float
f_alpha
,
float
f_beta
);
/*******************************************************************************
* CLIP_BYTE macro: boundary detection
...
...
@@ -516,19 +510,16 @@ static void SetTables( vout_thread_t *p_vout )
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray16
;
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray16
;
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray16
;
p_vout
->
p_Scale
=
(
vout_scale_t
*
)
Scale16
;
break
;
case
24
:
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray24
;
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray24
;
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray24
;
p_vout
->
p_Scale
=
(
vout_scale_t
*
)
Scale24
;
break
;
case
32
:
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray32
;
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray32
;
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertY4Gray32
;
p_vout
->
p_Scale
=
(
vout_scale_t
*
)
Scale32
;
break
;
}
}
...
...
@@ -542,19 +533,16 @@ static void SetTables( vout_thread_t *p_vout )
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertYUV420RGB16
;
p_vout
->
p_ConvertYUV422
=
(
vout_convert_t
*
)
ConvertYUV422RGB16
;
p_vout
->
p_ConvertYUV444
=
(
vout_convert_t
*
)
ConvertYUV444RGB16
;
p_vout
->
p_Scale
=
(
vout_scale_t
*
)
Scale16
;
break
;
case
24
:
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertYUV420RGB24
;
p_vout
->
p_ConvertYUV422
=
(
vout_convert_t
*
)
ConvertYUV422RGB24
;
p_vout
->
p_ConvertYUV444
=
(
vout_convert_t
*
)
ConvertYUV444RGB24
;
p_vout
->
p_Scale
=
(
vout_scale_t
*
)
Scale24
;
break
;
case
32
:
p_vout
->
p_ConvertYUV420
=
(
vout_convert_t
*
)
ConvertYUV420RGB32
;
p_vout
->
p_ConvertYUV422
=
(
vout_convert_t
*
)
ConvertYUV422RGB32
;
p_vout
->
p_ConvertYUV444
=
(
vout_convert_t
*
)
ConvertYUV444RGB32
;
p_vout
->
p_Scale
=
(
vout_scale_t
*
)
Scale32
;
break
;
}
}
...
...
@@ -822,33 +810,6 @@ static void ConvertYUV444RGB32( p_vout_thread_t p_vout, u32 *p_pic,
CONVERT_YUV_RGB
(
444
)
}
/*******************************************************************************
* Scale16: 15 or 16 bpp picture scaling
*******************************************************************************/
static
void
Scale16
(
p_vout_thread_t
p_vout
,
void
*
p_pic
,
void
*
p_buffer
,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
float
f_alpha
,
float
f_beta
)
{
//???
}
/*******************************************************************************
* Scale24: 24 bpp picture scaling
*******************************************************************************/
static
void
Scale24
(
p_vout_thread_t
p_vout
,
void
*
p_pic
,
void
*
p_buffer
,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
float
f_alpha
,
float
f_beta
)
{
//???
}
/*******************************************************************************
* Scale32: 32 bpp picture scaling
*******************************************************************************/
static
void
Scale32
(
p_vout_thread_t
p_vout
,
void
*
p_pic
,
void
*
p_buffer
,
int
i_width
,
int
i_height
,
int
i_eol
,
int
i_pic_eol
,
float
f_alpha
,
float
f_beta
)
{
//???
}
//-------------------- walken code follow --------------------------------
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment