关于x.264视频格式源码

源代码在线查看: set.h.svn-base

软件大小: 883 K
上传用户: jl315
关键词: 264 视频格式 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*****************************************************************************				 * set.h: h264 encoder				 *****************************************************************************				 * Copyright (C) 2003 Laurent Aimar				 * $Id: set.h,v 1.1 2004/06/03 19:27:07 fenrir Exp $				 *				 * Authors: Laurent Aimar 				 *				 * 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.				 *****************************************************************************/								#ifndef _SET_H				#define _SET_H 1								enum profile_e				{				    PROFILE_BASELINE = 66,				    PROFILE_MAIN     = 77,				    PROFILE_EXTENTED = 88,				    PROFILE_HIGH    = 100,				    PROFILE_HIGH10  = 110,				    PROFILE_HIGH422 = 122,				    PROFILE_HIGH444 = 144				};								enum cqm4_e				{				    CQM_4IY = 0,				    CQM_4PY = 1,				    CQM_4IC = 2,				    CQM_4PC = 3				};				enum cqm8_e				{				    CQM_8IY = 0,				    CQM_8PY = 1				};								typedef struct				{				    int i_id;								    int i_profile_idc;				    int i_level_idc;								    int b_constraint_set0;				    int b_constraint_set1;				    int b_constraint_set2;								    int i_log2_max_frame_num;								    int i_poc_type;				    /* poc 0 */				    int i_log2_max_poc_lsb;				    /* poc 1 */				    int b_delta_pic_order_always_zero;				    int i_offset_for_non_ref_pic;				    int i_offset_for_top_to_bottom_field;				    int i_num_ref_frames_in_poc_cycle;				    int i_offset_for_ref_frame[256];								    int i_num_ref_frames;				    int b_gaps_in_frame_num_value_allowed;				    int i_mb_width;				    int i_mb_height;				    int b_frame_mbs_only;				    int b_mb_adaptive_frame_field;				    int b_direct8x8_inference;								    int b_crop;				    struct				    {				        int i_left;				        int i_right;				        int i_top;				        int i_bottom;				    } crop;								    int b_vui;				    struct				    {				        int b_aspect_ratio_info_present;				        int i_sar_width;				        int i_sar_height;				        				        int b_overscan_info_present;				        int b_overscan_info;								        int b_signal_type_present;				        int i_vidformat;				        int b_fullrange;				        int b_color_description_present;				        int i_colorprim;				        int i_transfer;				        int i_colmatrix;								        int b_chroma_loc_info_present;				        int i_chroma_loc_top;				        int i_chroma_loc_bottom;								        int b_timing_info_present;				        int i_num_units_in_tick;				        int i_time_scale;				        int b_fixed_frame_rate;								        int b_bitstream_restriction;				        int b_motion_vectors_over_pic_boundaries;				        int i_max_bytes_per_pic_denom;				        int i_max_bits_per_mb_denom;				        int i_log2_max_mv_length_horizontal;				        int i_log2_max_mv_length_vertical;				        int i_num_reorder_frames;				        int i_max_dec_frame_buffering;								        /* FIXME to complete */				    } vui;								    int b_qpprime_y_zero_transform_bypass;								} x264_sps_t;								typedef struct				{				    int i_id;				    int i_sps_id;								    int b_cabac;								    int b_pic_order;				    int i_num_slice_groups;								    int i_num_ref_idx_l0_active;				    int i_num_ref_idx_l1_active;								    int b_weighted_pred;				    int b_weighted_bipred;								    int i_pic_init_qp;				    int i_pic_init_qs;								    int i_chroma_qp_index_offset;								    int b_deblocking_filter_control;				    int b_constrained_intra_pred;				    int b_redundant_pic_cnt;								    int b_transform_8x8_mode;								    int i_cqm_preset;				    const uint8_t *scaling_list[6]; /* could be 8, but we don't allow separate Cb/Cr lists */								} x264_pps_t;								/* default quant matrices */				static const uint8_t x264_cqm_jvt4i[16] =				{				      6,13,20,28,				     13,20,28,32,				     20,28,32,37,				     28,32,37,42				};				static const uint8_t x264_cqm_jvt4p[16] =				{				    10,14,20,24,				    14,20,24,27,				    20,24,27,30,				    24,27,30,34				};				static const uint8_t x264_cqm_jvt8i[64] =				{				     6,10,13,16,18,23,25,27,				    10,11,16,18,23,25,27,29,				    13,16,18,23,25,27,29,31,				    16,18,23,25,27,29,31,33,				    18,23,25,27,29,31,33,36,				    23,25,27,29,31,33,36,38,				    25,27,29,31,33,36,38,40,				    27,29,31,33,36,38,40,42				};				static const uint8_t x264_cqm_jvt8p[64] =				{				     9,13,15,17,19,21,22,24,				    13,13,17,19,21,22,24,25,				    15,17,19,21,22,24,25,27,				    17,19,21,22,24,25,27,28,				    19,21,22,24,25,27,28,30,				    21,22,24,25,27,28,30,32,				    22,24,25,27,28,30,32,33,				    24,25,27,28,30,32,33,35				};				static const uint8_t x264_cqm_flat16[64] =				{				    16,16,16,16,16,16,16,16,				    16,16,16,16,16,16,16,16,				    16,16,16,16,16,16,16,16,				    16,16,16,16,16,16,16,16,				    16,16,16,16,16,16,16,16,				    16,16,16,16,16,16,16,16,				    16,16,16,16,16,16,16,16,				    16,16,16,16,16,16,16,16				};				static const uint8_t * const x264_cqm_jvt[6] =				{				    x264_cqm_jvt4i, x264_cqm_jvt4p,				    x264_cqm_jvt4i, x264_cqm_jvt4p,				    x264_cqm_jvt8i, x264_cqm_jvt8p				};								int  x264_cqm_init( x264_t *h );				void x264_cqm_delete( x264_t *h );				int  x264_cqm_parse_file( x264_t *h, const char *filename );								#endif							

相关资源