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
38a0d995
Commit
38a0d995
authored
Jun 09, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Xlib screen access removal
parent
1c3be1e2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
185 deletions
+0
-185
configure.ac
configure.ac
+0
-4
modules/access/screen/Modules.am
modules/access/screen/Modules.am
+0
-6
modules/access/screen/x11.c
modules/access/screen/x11.c
+0
-175
No files found.
configure.ac
View file @
38a0d995
...
...
@@ -3915,10 +3915,6 @@ CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
AS_IF([test "${enable_x11}" != "no"], [
AC_CHECK_HEADERS(X11/Xlib.h, [
VLC_ADD_PLUGIN([x11_screen])
VLC_ADD_CPPFLAGS([x11_screen],[${X_CFLAGS}])
VLC_ADD_LIBS([x11_screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
VLC_ADD_PLUGIN([panoramix])
VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
...
...
modules/access/screen/Modules.am
View file @
38a0d995
...
...
@@ -14,9 +14,3 @@ SOURCES_screen = \
screen.h \
$(screen_extra) \
$(NULL)
SOURCES_x11_screen = \
screen.c \
screen.h \
x11.c \
$(NULL)
modules/access/screen/x11.c
deleted
100644 → 0
View file @
1c3be1e2
/*****************************************************************************
* x11.c: Screen capture module.
*****************************************************************************
* Copyright (C) 2004-2008 the VideoLAN team
* $Id$
*
* Authors: Gildas Bazin <gbazin@videolan.org>
* Antoine Cellerier <dionoea at videolan dot org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <vlc_common.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include "screen.h"
int
screen_InitCapture
(
demux_t
*
p_demux
)
{
demux_sys_t
*
p_sys
=
p_demux
->
p_sys
;
Display
*
p_display
;
char
*
psz_display
=
var_CreateGetNonEmptyString
(
p_demux
,
"x11-display"
);
XWindowAttributes
win_info
;
int
i_chroma
;
/* Open the display */
p_display
=
XOpenDisplay
(
psz_display
);
free
(
psz_display
);
if
(
!
p_display
)
{
msg_Err
(
p_demux
,
"cannot open display"
);
return
VLC_EGENERIC
;
}
p_sys
->
p_data
=
(
void
*
)
p_display
;
/* Get the parameters of the root window */
if
(
!
XGetWindowAttributes
(
p_display
,
DefaultRootWindow
(
p_display
),
&
win_info
)
)
{
msg_Err
(
p_demux
,
"can't get root window attributes"
);
XCloseDisplay
(
p_display
);
return
VLC_EGENERIC
;
}
switch
(
win_info
.
depth
)
{
case
8
:
/* FIXME: set the palette */
i_chroma
=
VLC_CODEC_RGB8
;
break
;
case
15
:
i_chroma
=
VLC_CODEC_RGB15
;
break
;
case
16
:
i_chroma
=
VLC_CODEC_RGB16
;
break
;
case
24
:
case
32
:
i_chroma
=
VLC_CODEC_RGB32
;
win_info
.
depth
=
32
;
break
;
default:
msg_Err
(
p_demux
,
"unknown screen depth %i"
,
win_info
.
depth
);
XCloseDisplay
(
p_display
);
return
VLC_EGENERIC
;
}
es_format_Init
(
&
p_sys
->
fmt
,
VIDEO_ES
,
i_chroma
);
p_sys
->
fmt
.
video
.
i_visible_width
=
p_sys
->
fmt
.
video
.
i_width
=
win_info
.
width
;
p_sys
->
fmt
.
video
.
i_visible_height
=
p_sys
->
fmt
.
video
.
i_height
=
win_info
.
height
;
p_sys
->
fmt
.
video
.
i_bits_per_pixel
=
win_info
.
depth
;
p_sys
->
fmt
.
video
.
i_chroma
=
i_chroma
;
#if 0
win_info.visual->red_mask;
win_info.visual->green_mask;
win_info.visual->blue_mask;
win_info.visual->bits_per_rgb;
#endif
return
VLC_SUCCESS
;
}
int
screen_CloseCapture
(
demux_t
*
p_demux
)
{
demux_sys_t
*
p_sys
=
p_demux
->
p_sys
;
Display
*
p_display
=
(
Display
*
)
p_sys
->
p_data
;
XCloseDisplay
(
p_display
);
if
(
p_sys
->
p_blend
)
{
module_unneed
(
p_sys
->
p_blend
,
p_sys
->
p_blend
->
p_module
);
vlc_object_detach
(
p_sys
->
p_blend
);
vlc_object_release
(
p_sys
->
p_blend
);
}
return
VLC_SUCCESS
;
}
block_t
*
screen_Capture
(
demux_t
*
p_demux
)
{
demux_sys_t
*
p_sys
=
p_demux
->
p_sys
;
Display
*
p_display
=
(
Display
*
)
p_sys
->
p_data
;
block_t
*
p_block
;
XImage
*
image
;
int
i_size
;
int
root_x
=
0
,
root_y
=
0
;
if
(
p_sys
->
b_follow_mouse
||
p_sys
->
p_mouse
)
{
Window
root
=
DefaultRootWindow
(
p_display
),
child
;
int
win_x
,
win_y
;
unsigned
int
mask
;
if
(
XQueryPointer
(
p_display
,
root
,
&
root
,
&
child
,
&
root_x
,
&
root_y
,
&
win_x
,
&
win_y
,
&
mask
)
)
{
if
(
p_sys
->
b_follow_mouse
)
FollowMouse
(
p_sys
,
root_x
,
root_y
);
}
else
msg_Dbg
(
p_demux
,
"XQueryPointer() failed"
);
}
image
=
XGetImage
(
p_display
,
DefaultRootWindow
(
p_display
),
p_sys
->
i_left
,
p_sys
->
i_top
,
p_sys
->
fmt
.
video
.
i_width
,
p_sys
->
fmt
.
video
.
i_height
,
AllPlanes
,
ZPixmap
);
if
(
!
image
)
{
msg_Warn
(
p_demux
,
"cannot get image"
);
return
NULL
;
}
i_size
=
image
->
bytes_per_line
*
image
->
height
;
if
(
!
(
p_block
=
block_New
(
p_demux
,
i_size
)
)
)
{
msg_Warn
(
p_demux
,
"cannot get block"
);
XDestroyImage
(
image
);
return
NULL
;
}
vlc_memcpy
(
p_block
->
p_buffer
,
image
->
data
,
i_size
);
if
(
p_sys
->
p_mouse
)
RenderCursor
(
p_demux
,
root_x
,
root_y
,
p_block
->
p_buffer
);
XDestroyImage
(
image
);
return
p_block
;
}
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