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
c3d41823
Commit
c3d41823
authored
Dec 22, 2000
by
Arnaud de Bossoreille de Ribou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- sdl resising rulze, still buggy
parent
be1eb4bb
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
7 deletions
+29
-7
plugins/sdl/intf_sdl.c
plugins/sdl/intf_sdl.c
+19
-2
plugins/sdl/vout_sdl.c
plugins/sdl/vout_sdl.c
+10
-5
No files found.
plugins/sdl/intf_sdl.c
View file @
c3d41823
...
@@ -75,6 +75,7 @@ typedef struct vout_sys_s
...
@@ -75,6 +75,7 @@ typedef struct vout_sys_s
/* local prototype */
/* local prototype */
void
intf_SDL_Keymap
(
intf_thread_t
*
p_intf
);
void
intf_SDL_Keymap
(
intf_thread_t
*
p_intf
);
void
intf_SDL_Resize
(
intf_thread_t
*
p_intf
,
int
width
,
int
height
);
void
intf_SDL_Fullscreen
(
intf_thread_t
*
p_intf
);
void
intf_SDL_Fullscreen
(
intf_thread_t
*
p_intf
);
void
intf_SDL_YUVSwitch
(
intf_thread_t
*
p_intf
);
void
intf_SDL_YUVSwitch
(
intf_thread_t
*
p_intf
);
...
@@ -157,6 +158,8 @@ void intf_SDLManage( intf_thread_t *p_intf )
...
@@ -157,6 +158,8 @@ void intf_SDLManage( intf_thread_t *p_intf )
i_key
=
event
.
key
.
keysym
.
sym
;
/* forward it */
i_key
=
event
.
key
.
keysym
.
sym
;
/* forward it */
switch
(
event
.
type
)
{
switch
(
event
.
type
)
{
case
SDL_VIDEORESIZE
:
/* Resizing of window */
intf_SDL_Resize
(
p_intf
,
event
.
resize
.
w
,
event
.
resize
.
h
);
case
SDL_KEYDOWN
:
/* if a key is pressed */
case
SDL_KEYDOWN
:
/* if a key is pressed */
switch
(
i_key
)
{
switch
(
i_key
)
{
/* switch to fullscreen */
/* switch to fullscreen */
...
@@ -185,16 +188,30 @@ void intf_SDLManage( intf_thread_t *p_intf )
...
@@ -185,16 +188,30 @@ void intf_SDLManage( intf_thread_t *p_intf )
}
}
}
}
void
intf_SDL_Resize
(
intf_thread_t
*
p_intf
,
int
width
,
int
height
)
{
intf_Msg
(
"Video display resized (%dx%d)"
,
width
,
height
);
vlc_mutex_lock
(
&
p_intf
->
p_vout
->
change_lock
);
p_intf
->
p_vout
->
i_width
=
width
/* & 0xffffffe*/
;
p_intf
->
p_vout
->
i_height
=
height
;
p_intf
->
p_vout
->
p_sys
->
b_reopen_display
=
1
;
p_intf
->
p_vout
->
i_changes
|=
VOUT_YUV_CHANGE
;
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
void
intf_SDL_YUVSwitch
(
intf_thread_t
*
p_intf
)
void
intf_SDL_YUVSwitch
(
intf_thread_t
*
p_intf
)
{
{
vlc_mutex_lock
(
&
p_intf
->
p_vout
->
change_lock
);
p_intf
->
p_vout
->
b_need_render
=
1
-
p_intf
->
p_vout
->
b_need_render
;
p_intf
->
p_vout
->
b_need_render
=
1
-
p_intf
->
p_vout
->
b_need_render
;
intf_DbgMsg
(
"need render now : '%d'"
,
p_intf
->
p_vout
->
b_need_render
);
intf_DbgMsg
(
"need render now : '%d'"
,
p_intf
->
p_vout
->
b_need_render
);
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
}
void
intf_SDL_Fullscreen
(
intf_thread_t
*
p_intf
)
void
intf_SDL_Fullscreen
(
intf_thread_t
*
p_intf
)
{
{
vlc_mutex_lock
(
&
p_intf
->
p_vout
->
change_lock
);
p_intf
->
p_vout
->
p_sys
->
b_fullscreen
=
1
-
p_intf
->
p_vout
->
p_sys
->
b_fullscreen
;
p_intf
->
p_vout
->
p_sys
->
b_fullscreen
=
1
-
p_intf
->
p_vout
->
p_sys
->
b_fullscreen
;
p_intf
->
p_vout
->
p_sys
->
b_reopen_display
=
1
;
p_intf
->
p_vout
->
p_sys
->
b_reopen_display
=
1
;
vlc_mutex_unlock
(
&
p_intf
->
p_vout
->
change_lock
);
}
}
...
@@ -202,7 +219,7 @@ void intf_SDL_Fullscreen(intf_thread_t * p_intf)
...
@@ -202,7 +219,7 @@ void intf_SDL_Fullscreen(intf_thread_t * p_intf)
void
intf_SDL_Keymap
(
intf_thread_t
*
p_intf
)
void
intf_SDL_Keymap
(
intf_thread_t
*
p_intf
)
{
{
/
/p_intf->p_intf_getKey = intf_getKey;
/
* p_intf->p_intf_getKey = intf_getKey; */
intf_AssignKey
(
p_intf
,
SDLK_q
,
INTF_KEY_QUIT
,
0
);
intf_AssignKey
(
p_intf
,
SDLK_q
,
INTF_KEY_QUIT
,
0
);
intf_AssignKey
(
p_intf
,
SDLK_ESCAPE
,
INTF_KEY_QUIT
,
0
);
intf_AssignKey
(
p_intf
,
SDLK_ESCAPE
,
INTF_KEY_QUIT
,
0
);
/* intf_AssignKey(p_intf,3,'Q'); */
/* intf_AssignKey(p_intf,3,'Q'); */
...
...
plugins/sdl/vout_sdl.c
View file @
c3d41823
...
@@ -229,11 +229,11 @@ void vout_SDLDisplay( vout_thread_t *p_vout )
...
@@ -229,11 +229,11 @@ void vout_SDLDisplay( vout_thread_t *p_vout )
{
{
/* TODO: support for streams other than 4:2:0 */
/* TODO: support for streams other than 4:2:0 */
/* create the overlay if necessary */
/* create the overlay if necessary */
if
(
!
p_vout
->
p_sys
->
p_overlay
)
if
(
p_vout
->
p_sys
->
p_overlay
==
NULL
)
{
{
p_vout
->
p_sys
->
p_overlay
=
SDL_CreateYUVOverlay
(
p_vout
->
p_sys
->
p_overlay
=
SDL_CreateYUVOverlay
(
p_vout
->
p_rendered_pic
->
i_width
,
p_vout
->
p_rendered_pic
->
i_width
,
p_vout
->
p_rendered_pic
->
i_height
,
p_vout
->
p_rendered_pic
->
i_height
,
SDL_YV12_OVERLAY
,
SDL_YV12_OVERLAY
,
p_vout
->
p_sys
->
p_display
p_vout
->
p_sys
->
p_display
);
);
...
@@ -258,12 +258,12 @@ void vout_SDLDisplay( vout_thread_t *p_vout )
...
@@ -258,12 +258,12 @@ void vout_SDLDisplay( vout_thread_t *p_vout )
p_vout
->
p_rendered_pic
->
p_u
,
p_vout
->
p_rendered_pic
->
p_u
,
p_vout
->
p_sys
->
p_overlay
->
h
*
p_vout
->
p_sys
->
p_overlay
->
h
*
p_vout
->
p_sys
->
p_overlay
->
pitches
[
2
]
/
2
);
p_vout
->
p_sys
->
p_overlay
->
pitches
[
2
]
/
2
);
disp
.
w
=
(
&
p_vout
->
p_buffer
[
p_vout
->
i_buffer_index
])
->
i_pic_width
;
disp
.
w
=
(
&
p_vout
->
p_buffer
[
p_vout
->
i_buffer_index
])
->
i_pic_width
;
disp
.
h
=
(
&
p_vout
->
p_buffer
[
p_vout
->
i_buffer_index
])
->
i_pic_height
;
disp
.
h
=
(
&
p_vout
->
p_buffer
[
p_vout
->
i_buffer_index
])
->
i_pic_height
;
disp
.
x
=
(
p_vout
->
i_width
-
disp
.
w
)
/
2
;
disp
.
x
=
(
p_vout
->
i_width
-
disp
.
w
)
/
2
;
disp
.
y
=
(
p_vout
->
i_height
-
disp
.
h
)
/
2
;
disp
.
y
=
(
p_vout
->
i_height
-
disp
.
h
)
/
2
;
SDL_DisplayYUVOverlay
(
p_vout
->
p_sys
->
p_overlay
,
&
disp
);
SDL_DisplayYUVOverlay
(
p_vout
->
p_sys
->
p_overlay
,
&
disp
);
SDL_UnlockYUVOverlay
(
p_vout
->
p_sys
->
p_overlay
);
SDL_UnlockYUVOverlay
(
p_vout
->
p_sys
->
p_overlay
);
}
}
...
@@ -296,7 +296,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
...
@@ -296,7 +296,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
p_vout
->
p_sys
->
p_display
=
SDL_SetVideoMode
(
p_vout
->
i_width
,
p_vout
->
p_sys
->
p_display
=
SDL_SetVideoMode
(
p_vout
->
i_width
,
p_vout
->
i_height
,
p_vout
->
i_height
,
0
,
0
,
SDL_ANYFORMAT
|
SDL_HWSURFACE
|
SDL_DOUBLEBUF
);
SDL_ANYFORMAT
|
SDL_HWSURFACE
|
SDL_DOUBLEBUF
|
SDL_RESIZABLE
);
SDL_ShowCursor
(
1
);
SDL_ShowCursor
(
1
);
}
}
...
@@ -305,6 +305,11 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
...
@@ -305,6 +305,11 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
intf_ErrMsg
(
"error: can't open DISPLAY default display"
);
intf_ErrMsg
(
"error: can't open DISPLAY default display"
);
return
(
1
);
return
(
1
);
}
}
intf_DbgMsg
(
"sdl display size : %dx%d - pitch : %d"
,
p_vout
->
p_sys
->
p_display
->
w
,
p_vout
->
p_sys
->
p_display
->
h
,
p_vout
->
p_sys
->
p_display
->
pitch
);
SDL_WM_SetCaption
(
VOUT_TITLE
,
VOUT_TITLE
);
SDL_WM_SetCaption
(
VOUT_TITLE
,
VOUT_TITLE
);
SDL_EventState
(
SDL_KEYUP
,
SDL_IGNORE
);
/* ignore keys up */
SDL_EventState
(
SDL_KEYUP
,
SDL_IGNORE
);
/* ignore keys up */
...
...
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