Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
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