H264支持码率变化和GOP调整的代码整理

1、现有代码要想支持H264变码率,需要修改的地方:

\platform\openmax\hantro_omx\libvideo\libenc\codec_hw\H264EncLib\ViEncH264.cpp         ViH264EncParam.rcupdateflag置1表示能够改变码率

\platform\openmax\hantro_omx\libvideo\libenc\codec_hw\H264EncLib\ViEncH264.h添加rcupdateflag这个变量


以前的应用代码

videocodec = gst_element_factory_make("omxh264enc", "video-codec");
 
g_object_set(videocodec, "control-rate", ratectrl, NULL);   //是否支持改变比特率
g_object_set(videocodec, "target-bitrate", targetrate, NULL);//如果支持,目标比特率

因为代码里的rcupdateflag这个变量没有添加,所以,即使设了也没有生效。现在经过以上修改,就可让设目标比特率的代码生效了。具体的调用层级:




从gstreamer到omx的调用细节:


2、支持GOP的改变

目前已经支持了编码率,具体做开发的平台上:car_digital_video_rec_140904

修改的文件

应用层:rec_gst_thread.cpp     增加调用g_object_set(elegroup.videocodec, "target-goplen", 2, NULL);

                                 注意:这个调用必须要在gst_element_set_state(elegroup.video_pipeline, GST_STATE_PLAYING);之后才能生效

底层修改的文件:1、/gstreamer/plugin_gst/

#       modified:   omx-1.0.0/omx/gstomxvideoenc.c
#       modified:   omx-1.0.0/omx/gstomxvideoenc.h
#       modified:   omx-1.0.0/omx/openmax/OMX_Index.h
#       modified:   omx-1.0.0/omx/openmax/OMX_Video.h

2、/platform/openmax/hantro_omx/

#       modified:   libvideo/libenc/codec_hw/H264EncLib/ViEncH264.cpp
#       modified:   libvideo/libenc/codec_hw/Inc/ViEncH264.h
#       modified:   vmc_omx/vmc_omx_component/h264enc/omx_avcenc.c
#       modified:   vmc_omx/vmc_omx_include/khronos/OMX_Index.h
#       modified:   vmc_omx/vmc_omx_include/khronos/OMX_Video.h



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值