ffmpeg解码h264代码分析-slice解析(一)

get_ue_golomb_long(&nal.gb); // skip first_mb_in_slice

slice_type = get_ue_golomb_31(&nal.gb);// nalu类型后面第一个字段是 slice type, 无符号指数哥伦布编码

s->pict_type = ff_h264_golomb_to_pict_type[slice_type % 5];

if (p->sei.recovery_point.recovery_frame_cnt >= 0) { // sei set key frame

/* key frame, since recovery_frame_cnt is set */

s->key_frame = 1;

}

pps_id = get_ue_golomb(&nal.gb);// pps ID

if (pps_id >= MAX_PPS_COUNT) {

av_log(avctx, AV_LOG_ERROR,

"pps_id %u out of range\n", pps_id);

goto fail;

}

if (!p->ps.pps_list[pps_id]) {

av_log(avctx, AV_LOG_ERROR,

"non-existing PPS %u referenced\n", pps_id);

goto fail;

}

 

av_buffer_unref(&p->ps.pps_ref);

p->ps.pps = NULL;

p->ps.sps = NULL;

p->ps.pps_ref = av_buffer_ref(

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值