⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.h

📁 vlc stand 0.1.99 ist sehr einfach
💻 H
字号:
/***************************************************************************** * common.h: common definitions * Collection of useful common types and macros definitions ***************************************************************************** * Copyright (C) 1998, 1999, 2000 VideoLAN * * Authors: * * 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., 59 Temple Place - Suite 330, Boston, MA  02111, USA. *****************************************************************************//***************************************************************************** * required headers: *  config.h *****************************************************************************//***************************************************************************** * Basic types definitions *****************************************************************************/#include "int_types.h"typedef u8                  byte_t;/* Boolean type */typedef int                 boolean_t;#ifdef SYS_GNU#define _MACH_I386_BOOLEAN_H_#endif/* Counter for statistics and profiling */typedef unsigned long       count_t;/***************************************************************************** * Classes declaration *****************************************************************************//* Interface */struct intf_thread_s;struct intf_sys_s;struct intf_console_s;struct intf_msg_s;struct intf_channel_s;typedef struct intf_thread_s *          p_intf_thread_t;typedef struct intf_sys_s *             p_intf_sys_t;typedef struct intf_console_s *         p_intf_console_t;typedef struct intf_msg_s *             p_intf_msg_t;typedef struct intf_channel_s *         p_intf_channel_t;/* Input */struct input_thread_s;struct input_vlan_s;struct input_cfg_s;typedef struct input_thread_s *         p_input_thread_t;typedef struct input_vlan_s *           p_input_vlan_t;typedef struct input_cfg_s *            p_input_cfg_t;/* Audio */struct aout_thread_s;struct aout_sys_s;typedef struct aout_thread_s *          p_aout_thread_t;typedef struct aout_sys_s *             p_aout_sys_t;/* Video */struct vout_thread_s;struct vout_font_s;struct vout_sys_s;struct vdec_thread_s;struct vpar_thread_s;struct video_parser_s;typedef struct vout_thread_s *          p_vout_thread_t;typedef struct vout_font_s *            p_vout_font_t;typedef struct vout_sys_s *             p_vout_sys_t;typedef struct vdec_thread_s *          p_vdec_thread_t;typedef struct vpar_thread_s *          p_vpar_thread_t;typedef struct video_parser_s *         p_video_parser_t;/***************************************************************************** * Macros and inline functions *****************************************************************************//* CEIL: division with round to nearest greater integer */#define CEIL(n, d)  ( ((n) / (d)) + ( ((n) % (d)) ? 1 : 0) )/* PAD: PAD(n, d) = CEIL(n ,d) * d */#define PAD(n, d)   ( ((n) % (d)) ? ((((n) / (d)) + 1) * (d)) : (n) )/* MAX and MIN: self explanatory */#ifndef MAX#define MAX(a, b)   ( ((a) > (b)) ? (a) : (b) )#endif#ifndef MIN#define MIN(a, b)   ( ((a) < (b)) ? (a) : (b) )#endif/* MSB (big endian)/LSB (little endian) convertions - network order is always * MSB, and should be used for both network communications and files. Note that * byte orders other than little and big endians are not supported, but only * the VAX seems to have such exotic properties - note that these 'functions' * needs <netinet/in.h> or the local equivalent. *//* FIXME??: hton64 should be declared as an extern inline function to avoid border * effects (see byteorder.h) */#if __BYTE_ORDER == __LITTLE_ENDIAN#define hton16      htons#define hton32      htonl#define hton64(i)   ( ((u64)(htonl((i) & 0xffffffff)) << 32) | htonl(((i) >> 32) & 0xffffffff ) )#define ntoh16      ntohs#define ntoh32      ntohl#define ntoh64      hton64#elif __BYTE_ORDER == __BIG_ENDIAN#define hton16      htons#define hton32      htonl#define hton64(i)   ( i )#define ntoh16      ntohs#define ntoh32      ntohl#define ntoh64(i)   ( i )#else/* XXX??: cause a compilation error */#endif/* Macros used by input to access the TS buffer */#define U32_AT(p)   ( ntohl ( *( (u32 *)(p) ) ) )#define U16_AT(p)   ( ntohs ( *( (u16 *)(p) ) ) )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -