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
9c24f64d
Commit
9c24f64d
authored
Jan 19, 2000
by
Vincent Seguin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
D�but du changement de chaine.
parent
cf49edcd
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
104 additions
and
55 deletions
+104
-55
include/config.h
include/config.h
+10
-15
include/interface.h
include/interface.h
+1
-1
src/interface/interface.c
src/interface/interface.c
+51
-11
src/interface/intf_ctrl.c
src/interface/intf_ctrl.c
+4
-3
src/interface/main.c
src/interface/main.c
+5
-6
src/video_output/video_ggi.c
src/video_output/video_ggi.c
+15
-5
src/video_output/video_output.c
src/video_output/video_output.c
+17
-13
src/video_output/video_yuv.c
src/video_output/video_yuv.c
+1
-1
No files found.
include/config.h
View file @
9c24f64d
...
...
@@ -123,9 +123,6 @@
#define INTF_GAMMA_STEP .1
#define INTF_GAMMA_LIMIT 3
/* Scaling modifier limits */
#define INTF_SCALE_LIMIT 10
/*
* X11 settings
*/
...
...
@@ -133,9 +130,6 @@
/* Title of the X11 window */
#define VOUT_TITLE "VideoLAN Client"
/* Environment variable used in place of DISPLAY if available */
#define ENV_VLC_DISPLAY "vlc_DISPLAY"
/*******************************************************************************
* Input thread configuration
*******************************************************************************/
...
...
@@ -235,10 +229,15 @@
* Default settings for video output threads
*/
/* Default dimensions for display window - these dimensions are the standard
* width and height for broadcasted MPEG-2 */
#define VOUT_WIDTH 544
#define VOUT_HEIGHT 576
/* Environment variable used in place of DISPLAY if available */
#define VOUT_DISPLAY_VAR "vlc_DISPLAY"
/* Default dimensions for display window - these dimensions are enough for the
* standard width and height broadcasted MPEG-2 streams */
#define VOUT_WIDTH_VAR "vlc_width"
#define VOUT_HEIGHT_VAR "vlc_height"
#define VOUT_WIDTH_DEFAULT 640
#define VOUT_HEIGHT_DEFAULT 480
/* Default video heap size - remember that a decompressed picture is big
* (~1 Mbyte) before using huge values */
...
...
@@ -248,10 +247,6 @@
#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.
...
...
@@ -341,7 +336,7 @@
/* Define to enable messages queues - disabling messages queue can be usefull
* when debugging, since it allows messages which would not otherwise be printed,
* due to a crash, to be printed anyway */
#define INTF_MSG_QUEUE
//
#define INTF_MSG_QUEUE
/* Format of the header for debug messages. The arguments following this header
* are the file (char *), the function (char *) and the line (int) in which the
...
...
include/interface.h
View file @
9c24f64d
...
...
@@ -46,6 +46,6 @@ intf_thread_t * intf_Create ( void );
void
intf_Run
(
intf_thread_t
*
p_intf
);
void
intf_Destroy
(
intf_thread_t
*
p_intf
);
int
intf_SelectInput
(
intf_thread_t
*
p_intf
,
p_input_cfg_t
p_cfg
);
int
intf_SelectInput
(
intf_thread_t
*
p_intf
,
int
i_index
);
int
intf_ProcessKey
(
intf_thread_t
*
p_intf
,
int
i_key
);
src/interface/interface.c
View file @
9c24f64d
...
...
@@ -31,6 +31,41 @@
#include "intf_sys.h"
/*******************************************************************************
* Constants
*******************************************************************************/
/* INTF_INPUT_CFG: pre-configured inputs */
#define INTF_MAX_INPUT_CFG 10
static
const
input_cfg_t
INTF_INPUT_CFG
[]
=
{
/* properties method
* file host ip port vlan */
/* Local input (unicast) */
{
INPUT_CFG_METHOD
|
INPUT_CFG_IP
,
INPUT_METHOD_TS_UCAST
,
NULL
,
NULL
,
"127.0.0.1"
,
0
,
0
},
/* Broadcasts */
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
0
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
1
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
2
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
3
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
4
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
5
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
6
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
7
},
{
INPUT_CFG_METHOD
|
INPUT_CFG_VLAN
,
INPUT_METHOD_TS_VLAN_BCAST
,
NULL
,
NULL
,
NULL
,
0
,
8
}
};
/*******************************************************************************
* intf_Create: prepare interface before main loop
...
...
@@ -135,10 +170,10 @@ void intf_Destroy( intf_thread_t *p_intf )
/*******************************************************************************
* intf_SelectInput: change input stream
*******************************************************************************
* Kill existing input, if any, and try to open a new one
. If p_cfg is NULL,
*
no new input will be openned
.
* Kill existing input, if any, and try to open a new one
, using an input
*
configuration table
.
*******************************************************************************/
int
intf_SelectInput
(
intf_thread_t
*
p_intf
,
in
put_cfg_t
*
p_cfg
)
int
intf_SelectInput
(
intf_thread_t
*
p_intf
,
in
t
i_index
)
{
intf_DbgMsg
(
"0x%x
\n
"
,
p_intf
);
...
...
@@ -146,16 +181,18 @@ int intf_SelectInput( intf_thread_t * p_intf, input_cfg_t *p_cfg )
if
(
p_intf
->
p_input
!=
NULL
)
{
input_DestroyThread
(
p_intf
->
p_input
/*??, NULL*/
);
p_intf
->
p_input
=
NULL
;
}
/*
Open new one
*/
if
(
p_cfg
!=
NULL
)
/*
Check that input index is valid
*/
if
(
(
i_index
<
0
)
||
(
INTF_MAX_INPUT_CFG
<
i_index
)
)
{
p_intf
->
p_input
=
input_CreateThread
(
p_cfg
/*??, NULL*/
);
p_intf
->
p_input
=
NULL
;
return
(
1
);
}
return
(
(
p_cfg
!=
NULL
)
&&
(
p_intf
->
p_input
==
NULL
)
);
/* Open a new input */
p_intf
->
p_input
=
input_CreateThread
(
&
INTF_INPUT_CFG
[
i_index
]
/*??, NULL*/
);
return
(
p_intf
->
p_input
==
NULL
);
}
/*******************************************************************************
...
...
@@ -183,7 +220,10 @@ int intf_ProcessKey( intf_thread_t *p_intf, int i_key )
case
'7'
:
case
'8'
:
case
'9'
:
// ??
if
(
intf_SelectInput
(
p_intf
,
i_key
-
'0'
)
)
{
intf_ErrMsg
(
"error: can not open channel %d
\n
"
,
i_key
-
'0'
);
}
break
;
case
'+'
:
/* volume + */
// ??
...
...
src/interface/intf_ctrl.c
View file @
9c24f64d
...
...
@@ -524,11 +524,12 @@ static int SpawnInput( int i_argc, intf_arg_t *p_argv )
cfg
.
p_aout
=
p_main
->
p_aout
;
/* Create the input thread */
if
(
intf_SelectInput
(
p_main
->
p_intf
,
&
cfg
)
==
-
1
)
if
(
p_main
->
p_intf
->
p_input
!=
NULL
)
{
return
(
INTF_OTHER_ERROR
);
input_DestroyThread
(
p_main
->
p_intf
->
p_input
/*??, NULL*/
);
}
p_main
->
p_intf
->
p_input
=
input_CreateThread
(
&
cfg
/*??,NULL*/
);
return
(
INTF_NO_ERROR
);
}
...
...
src/interface/main.c
View file @
9c24f64d
...
...
@@ -61,7 +61,6 @@ 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
},
...
...
@@ -70,7 +69,7 @@ static const struct option longopts[] =
};
/* Short options */
static
const
char
*
psz_shortopts
=
"hg
f
"
;
static
const
char
*
psz_shortopts
=
"hg"
;
/*******************************************************************************
* Global variable program_data - this is the one and only, see main.h
...
...
@@ -351,9 +350,6 @@ 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 */
...
...
@@ -418,6 +414,9 @@ static void Usage( void )
/* Video parameters */
intf_Msg
(
"Video parameters:
\n
"
\
" "
VOUT_DISPLAY_VAR
"=<display name> display used
\n
"
" "
VOUT_WIDTH_VAR
"=<width> display width
\n
"
" "
VOUT_HEIGHT_VAR
"=<height> dislay height
\n
"
" "
VOUT_FB_DEV_VAR
"=<filename> framebuffer device path
\n
"
\
" "
VOUT_GRAYSCALE_VAR
"={1|0} grayscale or color output
\n
"
\
);
...
...
@@ -428,7 +427,7 @@ static void Usage( void )
);
/* Interfaces keys */
intf_Msg
(
"Interface keys: most interface accept the following commands:
\n
"
\
intf_Msg
(
"Interface keys: most interface
s
accept the following commands:
\n
"
\
" [esc], q quit
\n
"
\
" +, -, m change volume, mute
\n
"
\
" g, G, c change gamma, toggle grayscale
\n
"
\
...
...
src/video_output/video_ggi.c
View file @
9c24f64d
...
...
@@ -45,7 +45,7 @@ typedef struct vout_sys_s
/*******************************************************************************
* Local prototypes
*******************************************************************************/
static
int
GGIOpenDisplay
(
vout_thread_t
*
p_vout
);
static
int
GGIOpenDisplay
(
vout_thread_t
*
p_vout
,
char
*
psz_display
);
static
void
GGICloseDisplay
(
vout_thread_t
*
p_vout
);
/*******************************************************************************
...
...
@@ -55,7 +55,7 @@ static void GGICloseDisplay ( vout_thread_t *p_vout );
* vout properties to choose the correct mode, and change them according to the
* mode actually used.
*******************************************************************************/
int
vout_SysCreate
(
vout_thread_t
*
p_vout
)
int
vout_SysCreate
(
vout_thread_t
*
p_vout
,
char
*
psz_display
,
int
i_root_window
)
{
/* Allocate structure */
p_vout
->
p_sys
=
malloc
(
sizeof
(
vout_sys_t
)
);
...
...
@@ -66,7 +66,7 @@ int vout_SysCreate( vout_thread_t *p_vout )
}
/* Open and initialize device */
if
(
GGIOpenDisplay
(
p_vout
)
)
if
(
GGIOpenDisplay
(
p_vout
,
psz_display
)
)
{
intf_ErrMsg
(
"error: can't initialize GGI display
\n
"
);
free
(
p_vout
->
p_sys
);
...
...
@@ -220,7 +220,7 @@ ggi_visual_t vout_SysGetVisual( vout_thread_t *p_vout )
* Open and initialize display according to preferences specified in the vout
* thread fields.
*******************************************************************************/
static
int
GGIOpenDisplay
(
vout_thread_t
*
p_vout
)
static
int
GGIOpenDisplay
(
vout_thread_t
*
p_vout
,
char
*
psz_display
)
{
ggi_mode
mode
;
/* mode descriptor */
ggi_color
col_fg
;
/* foreground color */
...
...
@@ -235,7 +235,7 @@ static int GGIOpenDisplay( vout_thread_t *p_vout )
}
/* Open display */
p_vout
->
p_sys
->
p_display
=
ggiOpen
(
NULL
);
p_vout
->
p_sys
->
p_display
=
ggiOpen
(
psz_display
,
NULL
);
if
(
p_vout
->
p_sys
->
p_display
==
NULL
)
{
intf_ErrMsg
(
"error: can't open GGI default display
\n
"
);
...
...
@@ -333,6 +333,16 @@ static int GGIOpenDisplay( vout_thread_t *p_vout )
return
(
1
);
}
/* Set clipping for text */
if
(
ggiSetGCClipping
(
p_vout
->
p_sys
->
p_display
,
0
,
0
,
mode
.
visible
.
x
,
mode
.
visible
.
y
)
)
{
intf_ErrMsg
(
"error: can't set clipping
\n
"
);
ggiClose
(
p_vout
->
p_sys
->
p_display
);
ggiExit
();
return
(
1
);
}
/* Set thread information */
p_vout
->
i_width
=
mode
.
visible
.
x
;
p_vout
->
i_height
=
mode
.
visible
.
y
;
...
...
src/video_output/video_output.c
View file @
9c24f64d
...
...
@@ -268,11 +268,12 @@ void vout_DisplayPicture( vout_thread_t *p_vout, picture_t *p_pic )
break
;
#endif
}
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
#ifdef DEBUG_VIDEO
intf_DbgMsg
(
"picture %p
\n
"
,
p_pic
);
#endif
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
}
/*******************************************************************************
...
...
@@ -300,11 +301,12 @@ void vout_DatePicture( vout_thread_t *p_vout, picture_t *p_pic, mtime_t date )
break
;
#endif
}
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
#ifdef DEBUG_VIDEO
intf_DbgMsg
(
"picture %p
\n
"
,
p_pic
);
#endif
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
}
/*******************************************************************************
...
...
@@ -490,11 +492,12 @@ void vout_LinkPicture( vout_thread_t *p_vout, picture_t *p_pic )
{
vlc_mutex_lock
(
&
p_vout
->
picture_lock
);
p_pic
->
i_refcount
++
;
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
#ifdef DEBUG_VIDEO
intf_DbgMsg
(
"picture %p
\n
"
,
p_pic
);
intf_DbgMsg
(
"picture %p
refcount=%d
\n
"
,
p_pic
,
p_pic
->
i_refcount
);
#endif
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
}
/*******************************************************************************
...
...
@@ -519,11 +522,12 @@ void vout_UnlinkPicture( vout_thread_t *p_vout, picture_t *p_pic )
{
p_pic
->
i_status
=
DESTROYED_PICTURE
;
}
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
#ifdef DEBUG_VIDEO
intf_DbgMsg
(
"picture %p
\n
"
,
p_pic
);
intf_DbgMsg
(
"picture %p
refcount=%d
\n
"
,
p_pic
,
p_pic
->
i_refcount
);
#endif
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
}
/* following functions are local */
...
...
@@ -635,10 +639,10 @@ static void RunThread( vout_thread_t *p_vout)
* go to next picture */
vlc_mutex_lock
(
&
p_vout
->
picture_lock
);
p_pic
->
i_status
=
p_pic
->
i_refcount
?
DISPLAYED_PICTURE
:
DESTROYED_PICTURE
;
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
#ifdef DEBUG_VIDEO
intf_DbgMsg
(
"warning: late picture %p skipped
\n
"
,
p_pic
);
intf_DbgMsg
(
"warning: late picture %p skipped
refcount=%d
\n
"
,
p_pic
,
p_pic
->
i_refcount
);
#endif
vlc_mutex_unlock
(
&
p_vout
->
picture_lock
);
p_pic
=
NULL
;
}
else
if
(
pic_date
>
current_date
+
VOUT_DISPLAY_DELAY
)
...
...
@@ -800,15 +804,15 @@ static void EndThread( vout_thread_t *p_vout )
static
void
RenderBlank
(
vout_thread_t
*
p_vout
)
{
//?? toooooo slow
int
i_index
;
/* current
32
bits sample */
int
i_width
;
/* number of
32
bits samples */
u
32
*
p_pic
;
/* pointer to 32
bits samples */
int
i_index
;
/* current
64
bits sample */
int
i_width
;
/* number of
64
bits samples */
u
64
*
p_pic
;
/* pointer to 64
bits samples */
/* Initialize variables */
p_pic
=
vout_SysGetPicture
(
p_vout
);
i_width
=
p_vout
->
i_bytes_per_line
*
p_vout
->
i_height
/
128
;
i_width
=
p_vout
->
i_bytes_per_line
*
p_vout
->
i_height
/
256
;
/* Clear beginning of screen by
128
bytes blocks */
/* Clear beginning of screen by
256
bytes blocks */
for
(
i_index
=
0
;
i_index
<
i_width
;
i_index
++
)
{
*
p_pic
++
=
0
;
*
p_pic
++
=
0
;
...
...
src/video_output/video_yuv.c
View file @
9c24f64d
...
...
@@ -810,7 +810,7 @@ static void ConvertYUV444RGB32( p_vout_thread_t p_vout, u32 *p_pic,
CONVERT_YUV_RGB
(
444
)
}
//-------------------- walken code follow --------------------------------
//-------------------- walken code follow --------------------------------
-------
/*
* YUV to RGB routines.
...
...
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