php安装xenc扩展,php,linux_我在看lnmp安装脚本的时候,有一段修改配置文件libc6-xen.conf的代码,不是特别理解。,php,linux - phpStudy...

本文探讨了lnmp安装脚本中修改libc6-xen.conf配置文件的hwcap指令的作用,特别是从hwcap1nosegneg改为hwcap0nosegneg的影响。

我在看lnmp安装脚本的时候,有一段修改配置文件libc6-xen.conf的代码,不是特别理解。

lnmp.org V1.3版本

有一个方法Xen_Hwcap_Setting,我看把配置文件libc6-xen.conf的hwcap 1 nosegneg改为了hwcap 0 nosegneg,这样有什么作用吗?代码如下:

Xen_Hwcap_Setting()

{

if [ -s /etc/ld.so.conf.d/libc6-xen.conf ]; then

sed -i 's/hwcap 1 nosegneg/hwcap 0 nosegneg/g' /etc/ld.so.conf.d/libc6-xen.conf

fi

}

到网上搜了一下,但不是特别明白,期待大家能给我解答,谢谢

============== 补充下 ===========

可能我问题提的有点问题,我更想知道的是,这个配置hwcap 1 nosegneg起什么作用?为什么要修改这个配置为hwcap 0 nosegneg?

来自apt-browse的一段话.

# This directive teaches ldconfig to search in nosegneg subdirectories

# and cache the DSOs there with extra bit 1 set in their hwcap match

# fields. In Xen guest kernels, the vDSO tells the dynamic linker to

# search in nosegneg subdirectories and to match this extra hwcap bit

# in the ld.so.cache file.

hwcap 1 nosegneg

相关阅读:

不是说:java构造方法和类名一定要相同吗?为什么我看见很多构造方法跟类名不完全一致啊?隐藏了什么吗?

白盒加密源码或者库

有没有人整理过 go语言的 net/http 的 middleware 的完整列表?

Table 如何在触发 onRowClick 时设置 selectedRowKeys 。

JS输入编辑框实现输入@提示@人

Eclipse安装问题

redis数据迁移问题

body中的css为何有些没有作用?

boost中的Free Functions 是什么意思

javascript如何控制这个FLASH?

comapss合成的雪碧图路径不是../image 而是/image无法使用

node.js下载失败,求大神解释

有人在wordpress评论里写这个,这段代码是干什么用的?

关于echarts中的饼状图

在fragment中管理fragment

微信ajax 第二次失败

AngularJS Jsonp跨域问题

资深大神求助,文件保存在浏览器本地

使用匿名类实例化了一个抽象类之后,如何重写其中的抽象方法并调用?

自己用sublime下了一个CSSREM插件(px自动转rem)里边的初始比例是40,

static HD_RESULT set_enc_param(HD_PATH_ID video_enc_path, HD_DIM *p_dim, HD_VIDEO_PXLFMT pxlfmt, UINT32 enc_type, UINT32 bitrate) { HD_RESULT ret = HD_OK; HD_VIDEOENC_IN video_in_param = {0}; HD_VIDEOENC_OUT video_out_param = {0}; HD_H26XENC_RATE_CONTROL rc_param = {0}; HD_H26XENC_ROW_RC rowrc_param = {0}; HD_H26XENC_VUI vui = {0}; if (p_dim != NULL) { //--- HD_VIDEOENC_PARAM_IN --- video_in_param.dir = HD_VIDEO_DIR_NONE; video_in_param.pxl_fmt = pxlfmt ? pxlfmt : HD_VIDEO_PXLFMT_YUV420; video_in_param.dim.w = p_dim->w; video_in_param.dim.h = p_dim->h; video_in_param.frc = HD_VIDEO_FRC_RATIO(1,1); ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_IN, &video_in_param); if (ret != HD_OK) { printf("set_enc_param_in = %d\r\n", ret); return ret; } //--- HD_VIDEOENC_PARAM_OUT_RATE_CONTROL --- #if 1 rc_param.rc_mode = HD_RC_MODE_CBR; rc_param.cbr.bitrate = bitrate; rc_param.cbr.frame_rate_base = g_fps; rc_param.cbr.frame_rate_incr = 1; rc_param.cbr.init_i_qp = 26; rc_param.cbr.min_i_qp = 10; rc_param.cbr.max_i_qp = 51; rc_param.cbr.init_p_qp = 26; rc_param.cbr.min_p_qp = 10; rc_param.cbr.max_p_qp = 51; rc_param.cbr.static_time = 4; #else rc_param.rc_mode = HD_RC_MODE_FIX_QP; rc_param.fixqp.frame_rate_base = g_fps; rc_param.fixqp.frame_rate_incr = 1; rc_param.fixqp.fix_i_qp = 28; rc_param.fixqp.fix_p_qp = 30; #endif ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_OUT_RATE_CONTROL, &rc_param); if (ret != HD_OK) { printf("set_enc_rate_control = %d \n", ret); return ret; } rowrc_param.enable = TRUE; rowrc_param.i_qp_range = 1; rowrc_param.i_qp_step = 1; rowrc_param.p_qp_range = 1; rowrc_param.p_qp_step = 1; rowrc_param.min_i_qp = 10; rowrc_param.max_i_qp = 51; rowrc_param.min_p_qp = 10; rowrc_param.max_p_qp = 51; ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_OUT_ROW_RC, &rowrc_param); if (ret != HD_OK) { printf("set_row_rc = %d \n", ret); return ret; } //--- HD_VIDEOENC_PARAM_OUT_VUI --- vui.vui_en = TRUE; vui.color_range = 1; // 0: Not full range, 1: Full range ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_OUT_VUI , &vui); if (ret != HD_OK) { printf("set_enc_out_ui = %d \n", ret); return ret; } //--- HD_VIDEOENC_PARAM_OUT_AQ --- HD_H26XENC_AQ aq_param = { .enable = TRUE, .i_str = 4, .p_str = 4, .min_delta_qp = -4, .max_delta_qp = 4, .depth = 2, .thd_table = {-120,-112,-104, -96, -88, -80, -72, -64, -56, -48, -40, -32, -24, -16, -8, 7, 15, 23, 31, 39,47, 55, 63, 71, 79, 87, 95, 103, 111, 119} }; ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_OUT_AQ, &aq_param); if (ret != HD_OK) { printf("set_enc_aq = %d \n", ret); return ret; } //--- VENDOR_VIDEOENC_PARAM_OUT_H26X_MAQ_DIFF --- VENDOR_VIDEOENC_H26X_MAQ_DIFF maq_diff; maq_diff.b_enable = 1; maq_diff.str = -4; maq_diff.start_idx = 1; maq_diff.end_idx = 8; printf("set HD_VIDEOENC_PARAM_OUT MAQ_DIFF ! \n"); ret = vendor_videoenc_set(video_enc_path, VENDOR_VIDEOENC_PARAM_OUT_H26X_MAQ_DIFF , &maq_diff); if (ret != HD_OK) { printf("set_enc_maq_diff = %d \n", ret); return ret; } //--- VENDOR_VIDEOENC_PARAM_OUT_BG_RDO --- VENDOR_VIDEOENC_BG_RDO_CFG bg_rdo = {0}; bg_rdo.b_enable = TRUE; bg_rdo.avc_bg_skip_bias = 0; bg_rdo.hevc_bg_skip_bias = -16; bg_rdo.hevc_bg_merge_bias = 0; bg_rdo.bg_bias_shift = 0; bg_rdo.mode = 0; printf("set HD_VIDEOENC_PARAM_OUT BG ! \n"); ret = vendor_videoenc_set(video_enc_path, VENDOR_VIDEOENC_PARAM_OUT_BG_RDO, &bg_rdo); if (ret != HD_OK) { printf("set_enc_bg_rdo = %d \n", ret); return ret; } printf("enc_type=%d\r\n", enc_type); if (enc_type == 0) { //--- HD_VIDEOENC_PARAM_OUT_ENC_PARAM --- video_out_param.codec_type = HD_CODEC_TYPE_H265; video_out_param.h26x.profile = HD_H265E_MAIN_PROFILE; video_out_param.h26x.level_idc = HD_H265E_LEVEL_5; video_out_param.h26x.gop_num = (g_fps > 20) ? FRAME_RATE * 2 : FRAME_RATE * 3; video_out_param.h26x.ltr_interval = 0; video_out_param.h26x.ltr_pre_ref = 0; video_out_param.h26x.gray_en = 0; video_out_param.h26x.source_output = 0; video_out_param.h26x.svc_layer = HD_SVC_DISABLE; video_out_param.h26x.entropy_mode = HD_H265E_CABAC_CODING; ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_OUT_ENC_PARAM, &video_out_param); if (ret != HD_OK) { printf("set_enc_param_out = %d\r\n", ret); return ret; } } else if (enc_type == 1) { //--- HD_VIDEOENC_PARAM_OUT_ENC_PARAM --- video_out_param.codec_type = HD_CODEC_TYPE_H264; video_out_param.h26x.profile = HD_H264E_HIGH_PROFILE; video_out_param.h26x.level_idc = HD_H264E_LEVEL_5_1; video_out_param.h26x.gop_num = (g_fps > 20) ? FRAME_RATE * 2 : FRAME_RATE * 3; video_out_param.h26x.ltr_interval = 0; video_out_param.h26x.ltr_pre_ref = 0; video_out_param.h26x.gray_en = 0; video_out_param.h26x.source_output = 0; video_out_param.h26x.svc_layer = HD_SVC_DISABLE; video_out_param.h26x.entropy_mode = HD_H264E_CABAC_CODING; ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_OUT_ENC_PARAM, &video_out_param); if (ret != HD_OK) { printf("set_enc_param_out = %d\r\n", ret); return ret; } } else if (enc_type == 2) { //--- HD_VIDEOENC_PARAM_OUT_ENC_PARAM --- video_out_param.codec_type = HD_CODEC_TYPE_JPEG; video_out_param.jpeg.retstart_interval = 0; video_out_param.jpeg.image_quality = 50; ret = hd_videoenc_set(video_enc_path, HD_VIDEOENC_PARAM_OUT_ENC_PARAM, &video_out_param); if (ret != HD_OK) { printf("set_enc_param_out = %d\r\n", ret); return ret; } } else { printf("not support enc_type\r\n"); return HD_ERR_NG; } } return ret; }
09-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值