当前位置: 代码迷 >> 多媒体/流媒体开发 >> 请T264解码部分,上面是小弟出错的地方!一定结帖
  详细解决方案

请T264解码部分,上面是小弟出错的地方!一定结帖

热度:10101   发布时间:2013-02-26 00:00:00.0
请高手指点T264解码部分,下面是小弟出错的地方!一定结帖!
打印信息如下:
 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调试时中断程序。
至于是否出错,需要根据自己结合条件来判断是不是程序真的执行有误了。
可以注释掉看看是否程序运行正常。
  相关解决方案