From c438a0104bf3a549b326c172b39dc5e2d9ab6573 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Thu, 16 Oct 2008 21:59:19 +0200 Subject: [PATCH] Split vout_internal.h to hide vout_thread_t definition from decoder. --- src/Makefile.am | 1 + src/input/decoder.c | 2 +- src/video_output/vout_control.h | 72 ++++++++++++++++++++++++++++++++ src/video_output/vout_internal.h | 40 +----------------- 4 files changed, 76 insertions(+), 39 deletions(-) create mode 100644 src/video_output/vout_control.h diff --git a/src/Makefile.am b/src/Makefile.am index 910af403d2..1663b86a9c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -331,6 +331,7 @@ SOURCES_libvlc_common = \ video_output/vout_subpictures.c \ video_output/vout_intf.c \ video_output/vout_internal.h \ + video_output/vout_control.h \ audio_output/aout_internal.h \ audio_output/common.c \ audio_output/dec.c \ diff --git a/src/input/decoder.c b/src/input/decoder.c index 159682d636..b0b8aa513b 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -47,7 +47,7 @@ #include "clock.h" #include "decoder.h" -#include "../video_output/vout_internal.h" +#include "../video_output/vout_control.h" static decoder_t *CreateDecoder( input_thread_t *, es_format_t *, int, sout_instance_t *p_sout ); static void DeleteDecoder( decoder_t * ); diff --git a/src/video_output/vout_control.h b/src/video_output/vout_control.h new file mode 100644 index 0000000000..48d70fcef2 --- /dev/null +++ b/src/video_output/vout_control.h @@ -0,0 +1,72 @@ +/***************************************************************************** + * vout_control.h : Vout control function definitions + ***************************************************************************** + * Copyright (C) 2008 the VideoLAN team + * Copyright (C) 2008 Laurent Aimar + * $Id$ + * + * Authors: Laurent Aimar < fenrir _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. + *****************************************************************************/ + + +#if defined(__PLUGIN__) || defined(__BUILTIN__) || !defined(__LIBVLC__) +# error This header file can only be included from LibVLC. +#endif + +#ifndef _VOUT_CONTROL_H +#define _VOUT_CONTROL_H 1 + +/* DO NOT use vout_CountPictureAvailable unless your are in src/input/decoder.c (no exception) */ +int vout_CountPictureAvailable( vout_thread_t * ); + +/** + * This function will (un)pause the display of pictures. + * It is thread safe + */ +void vout_ChangePause( vout_thread_t *, bool b_paused, mtime_t i_date ); + +/** + * This function will apply an offset on subtitle subpicture. + */ +void spu_OffsetSubtitleDate( spu_t *p_spu, mtime_t i_duration ); + +/** + * This function will return and reset internal statistics. + */ +void vout_GetResetStatistic( vout_thread_t *p_vout, int *pi_displayed, int *pi_lost ); + +/** + * This function will ensure that all ready/displayed pciture have at most + * the provided dat + */ +void vout_Flush( vout_thread_t *p_vout, mtime_t i_date ); + +/** + * This function will try to detect if pictures are being leaked. If so it + * will release them. + * + * XXX This function is there to workaround bugs in decoder + */ +void vout_FixLeaks( vout_thread_t *p_vout, bool b_forced ); + +/** + * This functions will drop a picture retreived by vout_CreatePicture. + */ +void vout_DropPicture( vout_thread_t *p_vout, picture_t * ); + +#endif + diff --git a/src/video_output/vout_internal.h b/src/video_output/vout_internal.h index 80ff458146..7cd12082b5 100644 --- a/src/video_output/vout_internal.h +++ b/src/video_output/vout_internal.h @@ -30,6 +30,8 @@ #ifndef _VOUT_INTERNAL_H #define _VOUT_INTERNAL_H 1 +#include "vout_control.h" + struct vout_thread_sys_t { /* */ @@ -79,43 +81,5 @@ struct vout_thread_sys_t picture_t *vout_RenderPicture( vout_thread_t *, picture_t *, subpicture_t *, bool b_paused ); -/* DO NOT use vout_CountPictureAvailable unless your are in src/input/decoder.c (no exception) */ -int vout_CountPictureAvailable( vout_thread_t * ); - -/** - * This function will (un)pause the display of pictures. - * It is thread safe - */ -void vout_ChangePause( vout_thread_t *, bool b_paused, mtime_t i_date ); - -/** - * This function will apply an offset on subtitle subpicture. - */ -void spu_OffsetSubtitleDate( spu_t *p_spu, mtime_t i_duration ); - -/** - * This function will return and reset internal statistics. - */ -void vout_GetResetStatistic( vout_thread_t *p_vout, int *pi_displayed, int *pi_lost ); - -/** - * This function will ensure that all ready/displayed pciture have at most - * the provided dat - */ -void vout_Flush( vout_thread_t *p_vout, mtime_t i_date ); - -/** - * This function will try to detect if pictures are being leaked. If so it - * will release them. - * - * XXX This function is there to workaround bugs in decoder - */ -void vout_FixLeaks( vout_thread_t *p_vout, bool b_forced ); - -/** - * This functions will drop a picture retreived by vout_CreatePicture. - */ -void vout_DropPicture( vout_thread_t *p_vout, picture_t * ); - #endif -- 2.39.5