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
7ee4309d
Commit
7ee4309d
authored
Oct 10, 2008
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed spu destruction order.
It should fix a potential segfault when the vout is closed.
parent
76795ad9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
4 deletions
+6
-4
src/video_output/video_output.c
src/video_output/video_output.c
+6
-4
No files found.
src/video_output/video_output.c
View file @
7ee4309d
...
@@ -459,9 +459,7 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt )
...
@@ -459,9 +459,7 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt )
if
(
p_vout
->
p_module
==
NULL
)
if
(
p_vout
->
p_module
==
NULL
)
{
{
msg_Err
(
p_vout
,
"no suitable vout module"
);
msg_Err
(
p_vout
,
"no suitable vout module"
);
// FIXME it's ugly but that's exactly the function that need to be called.
vlc_object_set_destructor
(
p_vout
,
vout_Destructor
);
EndThread
(
p_vout
);
vlc_object_detach
(
p_vout
);
vlc_object_release
(
p_vout
);
vlc_object_release
(
p_vout
);
return
NULL
;
return
NULL
;
}
}
...
@@ -501,6 +499,8 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt )
...
@@ -501,6 +499,8 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt )
VLC_THREAD_PRIORITY_OUTPUT
,
true
)
)
VLC_THREAD_PRIORITY_OUTPUT
,
true
)
)
{
{
module_unneed
(
p_vout
,
p_vout
->
p_module
);
module_unneed
(
p_vout
,
p_vout
->
p_module
);
p_vout
->
p_module
=
NULL
;
vlc_object_set_destructor
(
p_vout
,
vout_Destructor
);
vlc_object_release
(
p_vout
);
vlc_object_release
(
p_vout
);
return
NULL
;
return
NULL
;
}
}
...
@@ -543,6 +543,9 @@ static void vout_Destructor( vlc_object_t * p_this )
...
@@ -543,6 +543,9 @@ static void vout_Destructor( vlc_object_t * p_this )
/* Make sure the vout was stopped first */
/* Make sure the vout was stopped first */
assert
(
!
p_vout
->
p_module
);
assert
(
!
p_vout
->
p_module
);
/* */
spu_Destroy
(
p_vout
->
p_spu
);
/* Destroy the locks */
/* Destroy the locks */
vlc_mutex_destroy
(
&
p_vout
->
picture_lock
);
vlc_mutex_destroy
(
&
p_vout
->
picture_lock
);
vlc_mutex_destroy
(
&
p_vout
->
change_lock
);
vlc_mutex_destroy
(
&
p_vout
->
change_lock
);
...
@@ -1262,7 +1265,6 @@ static void EndThread( vout_thread_t *p_vout )
...
@@ -1262,7 +1265,6 @@ static void EndThread( vout_thread_t *p_vout )
/* Destroy subpicture unit */
/* Destroy subpicture unit */
spu_Attach
(
p_vout
->
p_spu
,
VLC_OBJECT
(
p_vout
),
false
);
spu_Attach
(
p_vout
->
p_spu
,
VLC_OBJECT
(
p_vout
),
false
);
spu_Destroy
(
p_vout
->
p_spu
);
/* Destroy the video filters2 */
/* Destroy the video filters2 */
filter_chain_Delete
(
p_vout
->
p
->
p_vf2_chain
);
filter_chain_Delete
(
p_vout
->
p
->
p_vf2_chain
);
...
...
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