注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

...

 
 
 

日志

 
 

读264码流文件,以0x 00 00 00 01为分界  

2011-10-06 17:46:51|  分类: RTP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

/*

common/bs.h
函数名称:
函数功能:从s中读出1位,并将其做为uint32_t类型返回。
函数参数:
返 回 值:
思    路:若s流并未结束,则读取一位
资    料:
  毕厚杰:第145页,u(n)/u(v),读进连续的若干比特,并将它们解释为“无符号整数”
  return i_result; //unsigned int
*/
static inline uint32_t bs_read1( bs_t *s )
{

    if( s->p < s->p_end ) //
    {
        unsigned int i_result;

        s->i_left--;//当前字节未读取的位数少了1位
        i_result = ( *s->p >> s->i_left )&0x01;//把要读的比特移到当前字节最右,然后与0x01:00000001进行逻辑与操作,因为要读的只是一个比特,这个比特不是0就是1,与0000 0001按位与就可以得知此情况
        if( s->i_left == 0 )//如果当前字节剩余未读位数是0,即是说当前字节全读过了
        {
            s->p++;   //指针s->p 移到下一字节
            s->i_left = 8; //新字节中,未读位数当然是8位
        }
        return i_result;//unsigned int
    }

    return 0;//返回0应该是没有读到东西
}

  评论这张
 
阅读(1008)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017