Libav
|
00001 /* 00002 * Copyright (C) 2003 Ivan Kalvachev 00003 * 00004 * This file is part of FFmpeg. 00005 * 00006 * FFmpeg is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * FFmpeg is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with FFmpeg; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00019 */ 00020 00021 #ifndef AVCODEC_XVMC_H 00022 #define AVCODEC_XVMC_H 00023 00024 #include <X11/extensions/XvMC.h> 00025 00026 #include "avcodec.h" 00027 00028 #if LIBAVCODEC_VERSION_MAJOR < 53 00029 #define AV_XVMC_STATE_DISPLAY_PENDING 1 00030 #define AV_XVMC_STATE_PREDICTION 2 00031 #define AV_XVMC_STATE_OSD_SOURCE 4 00032 #endif 00033 #define AV_XVMC_ID 0x1DC711C0 00036 struct xvmc_pix_fmt { 00037 00043 int xvmc_id; 00044 00052 short* data_blocks; 00053 00059 XvMCMacroBlock* mv_blocks; 00060 00066 int allocated_mv_blocks; 00067 00072 int allocated_data_blocks; 00073 00079 int idct; 00080 00086 int unsigned_intra; 00087 00094 XvMCSurface* p_surface; 00095 00103 XvMCSurface* p_past_surface; 00104 00109 XvMCSurface* p_future_surface; 00110 00115 unsigned int picture_structure; 00116 00121 unsigned int flags; 00122 //}@ 00123 00131 int start_mv_blocks_num; 00132 00140 int filled_mv_blocks_num; 00141 00153 int next_free_data_block_num; 00154 00156 #if LIBAVCODEC_VERSION_MAJOR < 53 00157 00158 00164 int state; 00165 00167 void* p_osd_target_surface_render; 00168 //}@ 00169 #endif 00170 }; 00171 00172 #endif /* AVCODEC_XVMC_H */