Commit 6f037fa4 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Add a centralized avcodec lock

avcodec is used from at least three different plugins: avcodec,
switcher (which seems dead though) and indirectly in avformat. We need
to have a common interlock for all of these.
parent c1e1c430
/*****************************************************************************
* vlc_avcodec.h: VLC thread support for FFMPEG/libavcodec
*****************************************************************************
* Copyright (C) 2009 Rémi Denis-Courmont
*
* 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.
*****************************************************************************/
#ifndef VLC_AVCODEC_H
# define VLC_AVCODEC_H 1
VLC_EXPORT( void, vlc_avcodec_mutex, (bool) );
static inline void vlc_avcodec_lock (void)
{
vlc_avcodec_mutex (true);
}
static inline void vlc_avcodec_unlock (void)
{
vlc_avcodec_mutex (false);
}
#endif
......@@ -41,6 +41,7 @@ pluginsinclude_HEADERS = \
../include/vlc_acl.h \
../include/vlc_aout.h \
../include/vlc_arrays.h \
../include/vlc_avcodec.h \
../include/vlc_bits.h \
../include/vlc_block.h \
../include/vlc_block_helper.h \
......
......@@ -2130,3 +2130,15 @@ static void InitDeviceValues( libvlc_int_t *p_vlc )
(void)p_vlc;
#endif /* HAVE_HAL */
}
#include <vlc_avcodec.h>
void vlc_avcodec_mutex (bool acquire)
{
static vlc_mutex_t lock = VLC_STATIC_MUTEX;
if (acquire)
vlc_mutex_lock (&lock);
else
vlc_mutex_unlock (&lock);
}
......@@ -409,6 +409,7 @@ var_SetChecked
__var_TriggerCallback
__var_Type
video_format_FixRgb
vlc_avcodec_mutex
vlc_b64_decode
vlc_b64_decode_binary
vlc_b64_decode_binary_to_buffer
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment