打印信息如下:
Current fully support t264 encoder's bitstream.
used fast interpolate:yes.
ref frames num:1
width:176
height:144
Assertion failed :0. file e:\360data\重要数据\桌面\h264-lib\decoder\t264dec.c, line 594
Press any key to continue
T264dec_decode_nal(T264_t* t)
{
eg_init(t->bs, t->nal_buf, t->nal_len);
/* ready for next nal */
t->action = T264dec_copy_nal;
t->nal_len = 0;
eg_read_skip(t->bs, 1); /* discard forbidden + nal_ref_idc */
t->nal.nal_ref_idc = eg_read_direct(t->bs, 2);
t->nal.nal_unit_type = eg_read_direct(t->bs, 5);
switch (t->nal.nal_unit_type)
{
case NAL_SLICE_NOPART:
T264dec_parse_slice(t);
t->frame_num ++;
t->frame_id ++;
return DEC_STATE_SLICE;
case NAL_PIC_SET:
T264dec_parse_pic_header(t);
return DEC_STATE_PIC;
case NAL_SLICE_IDR:
T264dec_parse_slice(t);
t->frame_num ++;
t->frame_id ++;
return DEC_STATE_SLICE;
case NAL_SEQ_SET:
T264dec_parse_seq_header(t);
t->frame_num = 0;
return DEC_STATE_SEQ;
case NAL_CUSTOM_SET:
T264dec_parse_custom_set(t);
return DEC_STATE_CUSTOM_SET;
default:
assert(0);
break;
}
经发现是在最后面的那个assert(0);出错的。也就是在读状态的时候出了错。真不知是啥子回事?求大神指教!
我先在整个说一下我所做的工作:这是解码库里进行修改的,我在ARM板上用UDP将采集的视屏采集回来到PC机上进行解码,
在PC上也做了很多测试,保存采集回来的视屏是可以进行解码的,不过我要做的是一个实时显示,所以我把接口进行了修改
利用边写文件边读文件的方式去进行的,不过在读解码器状态的时候出了错,这是为什么呢??小弟不盛感激~~~~~
------解决方案--------------------------------------------------------
assert(0);只是个断言,运行到这种语句条件不成立时会中断程序执行给予警告,一般方便Debug调试时中断程序。
至于是否出错,需要根据自己结合条件来判断是不是程序真的执行有误了。
可以注释掉看看是否程序运行正常。