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
8965c3f4
Commit
8965c3f4
authored
Mar 17, 2003
by
Sam Hocevar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* ./modules/video_output/sdl.c: fixed an endianness bug due to libSDL not
defining its fourcc values like us.
parent
7314de69
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
29 deletions
+35
-29
modules/video_output/sdl.c
modules/video_output/sdl.c
+35
-29
No files found.
modules/video_output/sdl.c
View file @
8965c3f4
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* sdl.c: SDL video output display method
* sdl.c: SDL video output display method
*****************************************************************************
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* Copyright (C) 1998-2001 VideoLAN
* $Id: sdl.c,v 1.
9 2003/02/10 23:50:08 massiot
Exp $
* $Id: sdl.c,v 1.
10 2003/03/17 17:11:32 sam
Exp $
*
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Authors: Samuel Hocevar <sam@zoy.org>
* Pierre Baillet <oct@zoy.org>
* Pierre Baillet <oct@zoy.org>
...
@@ -197,10 +197,10 @@ static int Open ( vlc_object_t *p_this )
...
@@ -197,10 +197,10 @@ static int Open ( vlc_object_t *p_this )
msg_Err
(
p_vout
,
"cannot set up SDL (%s)"
,
SDL_GetError
()
);
msg_Err
(
p_vout
,
"cannot set up SDL (%s)"
,
SDL_GetError
()
);
SDL_QuitSubSystem
(
SDL_INIT_VIDEO
);
SDL_QuitSubSystem
(
SDL_INIT_VIDEO
);
free
(
p_vout
->
p_sys
);
free
(
p_vout
->
p_sys
);
return
(
1
)
;
return
VLC_EGENERIC
;
}
}
return
(
0
)
;
return
VLC_SUCCESS
;
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -265,7 +265,7 @@ static int Init( vout_thread_t *p_vout )
...
@@ -265,7 +265,7 @@ static int Init( vout_thread_t *p_vout )
I_OUTPUTPICTURES
++
;
I_OUTPUTPICTURES
++
;
}
}
return
(
0
)
;
return
VLC_SUCCESS
;
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -579,7 +579,7 @@ static int Manage( vout_thread_t *p_vout )
...
@@ -579,7 +579,7 @@ static int Manage( vout_thread_t *p_vout )
SDL_ShowCursor
(
0
);
SDL_ShowCursor
(
0
);
}
}
return
(
0
)
;
return
VLC_SUCCESS
;
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -626,6 +626,9 @@ static int OpenDisplay( vout_thread_t *p_vout )
...
@@ -626,6 +626,9 @@ static int OpenDisplay( vout_thread_t *p_vout )
Uint32
i_flags
;
Uint32
i_flags
;
int
i_bpp
;
int
i_bpp
;
/* SDL fucked up fourcc definitions on bigendian machines */
uint32_t
i_sdl_chroma
;
/* Set main window's size */
/* Set main window's size */
p_vout
->
p_sys
->
i_width
=
p_vout
->
b_fullscreen
?
p_vout
->
output
.
i_width
:
p_vout
->
p_sys
->
i_width
=
p_vout
->
b_fullscreen
?
p_vout
->
output
.
i_width
:
p_vout
->
i_window_width
;
p_vout
->
i_window_width
;
...
@@ -641,7 +644,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
...
@@ -641,7 +644,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
if
(
i_bpp
==
0
)
if
(
i_bpp
==
0
)
{
{
msg_Err
(
p_vout
,
"no video mode available"
);
msg_Err
(
p_vout
,
"no video mode available"
);
return
(
1
)
;
return
VLC_EGENERIC
;
}
}
p_vout
->
p_sys
->
p_display
=
SDL_SetVideoMode
(
p_vout
->
p_sys
->
i_width
,
p_vout
->
p_sys
->
p_display
=
SDL_SetVideoMode
(
p_vout
->
p_sys
->
i_width
,
...
@@ -651,7 +654,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
...
@@ -651,7 +654,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
if
(
p_vout
->
p_sys
->
p_display
==
NULL
)
if
(
p_vout
->
p_sys
->
p_display
==
NULL
)
{
{
msg_Err
(
p_vout
,
"cannot set video mode"
);
msg_Err
(
p_vout
,
"cannot set video mode"
);
return
(
1
)
;
return
VLC_EGENERIC
;
}
}
SDL_LockSurface
(
p_vout
->
p_sys
->
p_display
);
SDL_LockSurface
(
p_vout
->
p_sys
->
p_display
);
...
@@ -661,52 +664,55 @@ static int OpenDisplay( vout_thread_t *p_vout )
...
@@ -661,52 +664,55 @@ static int OpenDisplay( vout_thread_t *p_vout )
{
{
case
VLC_FOURCC
(
'Y'
,
'U'
,
'Y'
,
'2'
):
case
VLC_FOURCC
(
'Y'
,
'U'
,
'Y'
,
'2'
):
case
VLC_FOURCC
(
'Y'
,
'U'
,
'N'
,
'V'
):
case
VLC_FOURCC
(
'Y'
,
'U'
,
'N'
,
'V'
):
p_vout
->
output
.
i_chroma
=
SDL_YUY2_OVERLAY
;
p_vout
->
output
.
i_chroma
=
VLC_FOURCC
(
'Y'
,
'U'
,
'Y'
,
'2'
);
i_sdl_chroma
=
SDL_YUY2_OVERLAY
;
break
;
break
;
case
VLC_FOURCC
(
'U'
,
'Y'
,
'V'
,
'Y'
):
case
VLC_FOURCC
(
'U'
,
'Y'
,
'V'
,
'Y'
):
case
VLC_FOURCC
(
'U'
,
'Y'
,
'N'
,
'V'
):
case
VLC_FOURCC
(
'U'
,
'Y'
,
'N'
,
'V'
):
case
VLC_FOURCC
(
'Y'
,
'4'
,
'2'
,
'2'
):
case
VLC_FOURCC
(
'Y'
,
'4'
,
'2'
,
'2'
):
p_vout
->
output
.
i_chroma
=
SDL_UYVY_OVERLAY
;
p_vout
->
output
.
i_chroma
=
VLC_FOURCC
(
'U'
,
'Y'
,
'V'
,
'Y'
);
i_sdl_chroma
=
SDL_UYVY_OVERLAY
;
break
;
break
;
case
VLC_FOURCC
(
'Y'
,
'V'
,
'Y'
,
'U'
):
case
VLC_FOURCC
(
'Y'
,
'V'
,
'Y'
,
'U'
):
p_vout
->
output
.
i_chroma
=
SDL_YVYU_OVERLAY
;
p_vout
->
output
.
i_chroma
=
VLC_FOURCC
(
'Y'
,
'V'
,
'Y'
,
'U'
);
i_sdl_chroma
=
SDL_YVYU_OVERLAY
;
break
;
break
;
case
VLC_FOURCC
(
'Y'
,
'V'
,
'1'
,
'2'
):
case
VLC_FOURCC
(
'Y'
,
'V'
,
'1'
,
'2'
):
case
VLC_FOURCC
(
'I'
,
'4'
,
'2'
,
'0'
):
case
VLC_FOURCC
(
'I'
,
'4'
,
'2'
,
'0'
):
case
VLC_FOURCC
(
'I'
,
'Y'
,
'U'
,
'V'
):
case
VLC_FOURCC
(
'I'
,
'Y'
,
'U'
,
'V'
):
default:
default:
p_vout
->
output
.
i_chroma
=
SDL_YV12_OVERLAY
;
p_vout
->
output
.
i_chroma
=
VLC_FOURCC
(
'Y'
,
'V'
,
'1'
,
'2'
);
i_sdl_chroma
=
SDL_YV12_OVERLAY
;
break
;
break
;
}
}
p_vout
->
p_sys
->
p_overlay
=
p_vout
->
p_sys
->
p_overlay
=
SDL_CreateYUVOverlay
(
32
,
32
,
p_vout
->
output
.
i_chroma
,
SDL_CreateYUVOverlay
(
32
,
32
,
i_sdl_chroma
,
p_vout
->
p_sys
->
p_display
);
p_vout
->
p_sys
->
p_display
);
/* FIXME: if the first overlay we find is software, don't stop,
/* FIXME: if the first overlay we find is software, don't stop,
* because we may find a hardware one later ... */
* because we may find a hardware one later ... */
/* If this best choice failed, fall back to other chromas */
/* If this best choice failed, fall back to other chromas */
if
(
p_vout
->
p_sys
->
p_overlay
==
NULL
)
if
(
p_vout
->
p_sys
->
p_overlay
==
NULL
)
{
{
p_vout
->
output
.
i_chroma
=
SDL_IYUV_OVERLAY
;
p_vout
->
output
.
i_chroma
=
VLC_FOURCC
(
'I'
,
'Y'
,
'U'
,
'V'
)
;
p_vout
->
p_sys
->
p_overlay
=
p_vout
->
p_sys
->
p_overlay
=
SDL_CreateYUVOverlay
(
32
,
32
,
p_vout
->
output
.
i_chroma
,
SDL_CreateYUVOverlay
(
32
,
32
,
SDL_IYUV_OVERLAY
,
p_vout
->
p_sys
->
p_display
);
p_vout
->
p_sys
->
p_display
);
}
}
if
(
p_vout
->
p_sys
->
p_overlay
==
NULL
)
if
(
p_vout
->
p_sys
->
p_overlay
==
NULL
)
{
{
p_vout
->
output
.
i_chroma
=
SDL_YV12_OVERLAY
;
p_vout
->
output
.
i_chroma
=
VLC_FOURCC
(
'Y'
,
'V'
,
'1'
,
'2'
)
;
p_vout
->
p_sys
->
p_overlay
=
p_vout
->
p_sys
->
p_overlay
=
SDL_CreateYUVOverlay
(
32
,
32
,
p_vout
->
output
.
i_chroma
,
SDL_CreateYUVOverlay
(
32
,
32
,
SDL_YV12_OVERLAY
,
p_vout
->
p_sys
->
p_display
);
p_vout
->
p_sys
->
p_display
);
}
}
if
(
p_vout
->
p_sys
->
p_overlay
==
NULL
)
if
(
p_vout
->
p_sys
->
p_overlay
==
NULL
)
{
{
p_vout
->
output
.
i_chroma
=
SDL_YUY2_OVERLAY
;
p_vout
->
output
.
i_chroma
=
VLC_FOURCC
(
'Y'
,
'U'
,
'Y'
,
'2'
)
;
p_vout
->
p_sys
->
p_overlay
=
p_vout
->
p_sys
->
p_overlay
=
SDL_CreateYUVOverlay
(
32
,
32
,
p_vout
->
output
.
i_chroma
,
SDL_CreateYUVOverlay
(
32
,
32
,
SDL_YUY2_OVERLAY
,
p_vout
->
p_sys
->
p_display
);
p_vout
->
p_sys
->
p_display
);
}
}
...
@@ -738,7 +744,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
...
@@ -738,7 +744,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
p_vout
->
p_sys
->
p_display
->
format
->
BitsPerPixel
);
p_vout
->
p_sys
->
p_display
->
format
->
BitsPerPixel
);
SDL_UnlockSurface
(
p_vout
->
p_sys
->
p_display
);
SDL_UnlockSurface
(
p_vout
->
p_sys
->
p_display
);
SDL_FreeSurface
(
p_vout
->
p_sys
->
p_display
);
SDL_FreeSurface
(
p_vout
->
p_sys
->
p_display
);
return
(
-
1
)
;
return
VLC_EGENERIC
;
}
}
p_vout
->
output
.
i_rmask
=
p_vout
->
p_sys
->
p_display
->
format
->
Rmask
;
p_vout
->
output
.
i_rmask
=
p_vout
->
p_sys
->
p_display
->
format
->
Rmask
;
...
@@ -764,7 +770,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
...
@@ -764,7 +770,7 @@ static int OpenDisplay( vout_thread_t *p_vout )
SDL_EventState
(
SDL_KEYUP
,
SDL_IGNORE
);
/* ignore keys up */
SDL_EventState
(
SDL_KEYUP
,
SDL_IGNORE
);
/* ignore keys up */
return
(
0
)
;
return
VLC_SUCCESS
;
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -796,14 +802,14 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
...
@@ -796,14 +802,14 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
if
(
p_vout
->
p_sys
->
i_surfaces
)
if
(
p_vout
->
p_sys
->
i_surfaces
)
{
{
/* We already allocated this surface, return */
/* We already allocated this surface, return */
return
-
1
;
return
VLC_EGENERIC
;
}
}
p_pic
->
p_sys
=
malloc
(
sizeof
(
picture_sys_t
)
);
p_pic
->
p_sys
=
malloc
(
sizeof
(
picture_sys_t
)
);
if
(
p_pic
->
p_sys
==
NULL
)
if
(
p_pic
->
p_sys
==
NULL
)
{
{
return
-
1
;
return
VLC_ENOMEM
;
}
}
switch
(
p_vout
->
p_sys
->
p_display
->
format
->
BitsPerPixel
)
switch
(
p_vout
->
p_sys
->
p_display
->
format
->
BitsPerPixel
)
...
@@ -820,7 +826,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
...
@@ -820,7 +826,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
p_pic
->
p
->
i_pixel_pitch
=
4
;
p_pic
->
p
->
i_pixel_pitch
=
4
;
break
;
break
;
default:
default:
return
(
-
1
)
;
return
VLC_EGENERIC
;
}
}
p_pic
->
p
->
p_pixels
=
p_vout
->
p_sys
->
p_display
->
pixels
;
p_pic
->
p
->
p_pixels
=
p_vout
->
p_sys
->
p_display
->
pixels
;
...
@@ -839,7 +845,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
...
@@ -839,7 +845,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
if
(
p_pic
->
p_sys
==
NULL
)
if
(
p_pic
->
p_sys
==
NULL
)
{
{
return
-
1
;
return
VLC_ENOMEM
;
}
}
p_pic
->
p_sys
->
p_overlay
=
p_pic
->
p_sys
->
p_overlay
=
...
@@ -850,7 +856,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
...
@@ -850,7 +856,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
if
(
p_pic
->
p_sys
->
p_overlay
==
NULL
)
if
(
p_pic
->
p_sys
->
p_overlay
==
NULL
)
{
{
free
(
p_pic
->
p_sys
);
free
(
p_pic
->
p_sys
);
return
-
1
;
return
VLC_EGENERIC
;
}
}
SDL_LockYUVOverlay
(
p_pic
->
p_sys
->
p_overlay
);
SDL_LockYUVOverlay
(
p_pic
->
p_sys
->
p_overlay
);
...
@@ -908,7 +914,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
...
@@ -908,7 +914,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
}
}
}
}
return
0
;
return
VLC_SUCCESS
;
}
}
/*****************************************************************************
/*****************************************************************************
...
...
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