common.h
资源名称:vlc-1.0.5.zip [点击查看]
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:
midi
开发平台:
Unix_Linux
- /*****************************************************************************
- * common.h : DirectShow access module for vlc
- *****************************************************************************
- * Copyright (C) 2002 the VideoLAN team
- * $Id: 6a3f2b5ea22a3c1fb09f567f767a658782e88026 $
- *
- * Author: Gildas Bazin <gbazin@videolan.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.
- *****************************************************************************/
- /*****************************************************************************
- * Preamble
- *****************************************************************************/
- #include <string>
- #include <list>
- #include <deque>
- using namespace std;
- #ifndef _MSC_VER
- # include <wtypes.h>
- # include <unknwn.h>
- # include <ole2.h>
- # include <limits.h>
- # ifdef _WINGDI_
- # undef _WINGDI_
- # endif
- # define _WINGDI_ 1
- # define AM_NOVTABLE
- # define _OBJBASE_H_
- # undef _X86_
- # ifndef _I64_MAX
- # define _I64_MAX LONG_LONG_MAX
- # endif
- # define LONGLONG long long
- #endif
- #include <dshow.h>
- typedef struct dshow_stream_t dshow_stream_t;
- /****************************************************************************
- * Crossbar stuff
- ****************************************************************************/
- #define MAX_CROSSBAR_DEPTH 10
- typedef struct CrossbarRouteRec
- {
- IAMCrossbar *pXbar;
- LONG VideoInputIndex;
- LONG VideoOutputIndex;
- LONG AudioInputIndex;
- LONG AudioOutputIndex;
- } CrossbarRoute;
- void DeleteCrossbarRoutes( access_sys_t * );
- HRESULT FindCrossbarRoutes( vlc_object_t *, access_sys_t *,
- IPin *, LONG, int = 0 );
- /****************************************************************************
- * Access descriptor declaration
- ****************************************************************************/
- struct access_sys_t
- {
- /* These 2 must be left at the beginning */
- vlc_mutex_t lock;
- vlc_cond_t wait;
- IFilterGraph *p_graph;
- ICaptureGraphBuilder2 *p_capture_graph_builder2;
- IMediaControl *p_control;
- int i_crossbar_route_depth;
- CrossbarRoute crossbar_routes[MAX_CROSSBAR_DEPTH];
- /* list of elementary streams */
- dshow_stream_t **pp_streams;
- int i_streams;
- int i_current_stream;
- /* misc properties */
- int i_width;
- int i_height;
- int i_chroma;
- bool b_chroma; /* Force a specific chroma on the dshow input */
- };