博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
H264 STAP-A解包代码(测试通过)
阅读量:2024 次
发布时间:2019-04-28

本文共 1429 字,大约阅读时间需要 4 分钟。

  测试通过,并进行了优化。思路:

  • 拷贝0001到数据区。
  • 得到size,复制size到缓冲区。
  • 循环直到结束。

  为了保证性能,由调用方传递一个临时缓冲区。

  具体代码如下,测试通过:

static int tdav_codec_h264_get_stapa_pay(const uint8_t* in_data, tsk_size_t in_size, const void** out_data, tsk_size_t *out_size, void** temp_buffer, tsk_size_t* temp_size){    uint8_t*   buf = in_data;    tsk_size_t len = in_size;    int      dst_len = 0;    uint8_t *dst     = NULL;    if (in_size <= H264_FUA_HEADER_SIZE) {        TSK_DEBUG_ERROR("Too short");        return -1;    }    if (*temp_size < (in_size*2))    {        *temp_size   = in_size*2;        *temp_buffer = tsk_realloc(*temp_buffer, *temp_size);    }    dst = *temp_buffer;    buf ++;    len --;    const uint8_t *src = buf;    int src_len        = len;    while (src_len > 2) {        uint16_t nal_size = (src[0] << 8 | src[1]);        src     += 2;        src_len -= 2;        if (nal_size <= src_len)        {            memcpy(dst, NAL_START_SEQUENCE, sizeof(NAL_START_SEQUENCE));            dst     += sizeof(NAL_START_SEQUENCE);            dst_len += sizeof(NAL_START_SEQUENCE);            memcpy(dst, src, nal_size);            dst     += nal_size;            dst_len += nal_size;        }        else        {            TSK_DEBUG_ERROR("nal size exceeds length: %d %d\n", nal_size, src_len);            return -1;        }        src     += nal_size;        src_len -= nal_size;    }    *out_data = *temp_buffer;    *out_size = dst_len;	    return 0;}

 

转载地址:http://snuaf.baihongyu.com/

你可能感兴趣的文章
Qomolangma.V1.0的发布说明
查看>>
从表达式到变量:一行scheme代码之所见
查看>>
关于做PDF的FAQ(一)~(四)
查看>>
杀不死的人狼——我读《人月神话》(一)
查看>>
杀不死的人狼——我读《人月神话》(二)
查看>>
杀不死的人狼——我读《人月神话》(三)
查看>>
杀不死的人狼——我读《人月神话》(四)
查看>>
杀不死的人狼——我读《人月神话》(五)
查看>>
宣个传:《大道至简》开始预售啦~
查看>>
英雄大会的事
查看>>
《大道至简》的幕后故事
查看>>
《大道至简》的幕后故事(2):“愚公移山记”人物篇
查看>>
《大道至简》的幕后故事(3):“愚公移山记”事物篇
查看>>
《大道至简》的幕后故事(4):“愚公移山记”军事地理篇
查看>>
《大道至简》的幕后故事(5):“愚公移山记”军事谋略篇
查看>>
《大道至简》的幕后故事:终结篇、勘误和PDF下载
查看>>
架构师的能力模型(图)
查看>>
能力要成体系
查看>>
Qomo 2.0 beta1 发布说明及新功能
查看>>
又见标题党——怒评《JavaScript核心技术》
查看>>