首页 > 编程知识 正文

webpack打包后图片路径出错,create-react-app webpack配置

时间:2023-05-04 00:17:39 阅读:153462 作者:763

webrtc SequenceNumber比较isnewersequencenumberinlineboolisnewersequencenumber (uint 16 _ t sequence _ number ),并确定uint 16 _ t pt distinguishbetweenelementsthatareexactly0x 8000 apart.//if s1 S2 and|S1-S2|S2 )=true,isnewer(s2,S1 )=false/s1 )=false.if(static_castuint16_t ) sequence _ number-prev _ sequence _ number )==0x8000 ) returnsequence=prev _ sequence _ number static _ cast uint 16 _ t (sequence _ number-prev _ sequence _ number )0x8000; } RTP序列号sequence number用2字节表示,时间戳timestamp用4字节表示。 序列号和时间戳有取值范围。 因为是无符号数字,所以序列号的范围是[ 0,2 ^ 16-1 ],并且时间戳的范围是[ 0,2 ^ 32-1 ]。 达到最大值时,会发生所谓的倒带。 例如,如果序列号为2^16-1,则下一个软件包的序列号为0。 因此,我们不能根据数学意义上的大小直接进行序列号和时间戳的比较。

WebRTC定义了一种大小比较算法,用于确定是否为更新的数字,包括数字绕排。 说明算法的原理。

1 )假设有两个u型无符号整数: value、prev_value。

2 )定义常数kBreakpoint,取u型值范围的一半;

3 )如果满足value prev_value,value - prev_value=kBreakpoint,则value大于prev_value;

4 )如果value与prev_value不相等,且满足(u ) (valude - prev_value ) kBreakpoint,则value大于prev_value。

5 ) valueprev_value不等于。 满足(u ) ) valude - prev_value ) kBreakpoint实际上为负数,因为usign类型大于kBreakpoint,并且value小于prev_value。

总结起来就是value与prev_value距离小于取值范围的一半且不相等或者value与prev_value距离等于取值范围的一半,value大于prev_value,就可以说明value大于prev_value。

Timestamp比较也是同样的方法。

inlineboolisnewertimestamp (uint 32 _ t timestamp, uint 32 _ t prev _ timestamp (/distinguishbetweenelementsthatareexactly0x 8000000 apart./if t1 T2 and|t1-T2|=0x 882 T2 ) t1 )=false//ratherthanhavingisnewer (t1,t2 )=is newer (T2,t1 )=false.if ) Staalse.if ) ) ) 652 } ret2 )=prev _ timestamp static _ cast uint 32 _ t (timestamp-prev _ timestamp )0x80000000; 基于IsNewerSequenceNumber, 判断ispacketinorderboolstreamstatisticianimpl : inorderpacketinternal (uint 16 _ t sequence _ )的顺序是否奇怪isnewersequencenumber (sequence _ number,received_seq_max_ ) { return true; } else {//ifwehavearestartoftheremotesidethispacketisstillinorder.return! isnewersequencenumber (sequence _ number,received _ seq _ max _-max _ reordering _ threshold _ ); 基于RTT,Nack再订购isretransmitofoldpacketboolstreamstatisticianimpl 33603360 isretransmitofoldpacket (constrtpheaderheader, 判断是否为isretransmitofoldpacket (if ) { return false; } uint 32 _ tfrequency _ khz=header.payload _ type _ frequency/1000; assert(Frequency_khz0); int 64 _ ttime _ diff _ ms=clock _-timeinmilliseconds (-last _ receive _ time _ ms; //diffintimestampsincelastreceivedinorder.uint 32 _ t timestamp _ diff=header.timestamp-last _ received _ timestamed int64_t max_delay_ms=0; if(min_RTT==0)/jitterstandarddeviationinsamples.float jitter _ STD=sqrt (static _ cast float ) jitter _ QL oat andtransformtomillisecondsbydividingbythefrequencyinkhz.max _ delay//minmax _ delay _ MSI S1.if (max _ delay _ ms ) }else{max_Delay_ms=(min_RTT/3 ) 1; } return time _ diff _ msrtp _ time _ stamp _ diff _ ms max _ delay _ ms; } time_diff_ms=上次接收分组的时间(last_receive_time_ms_ ) -当前接收分组的时间rtp_time_stamp_diff_ms=上次接收分组的时间即使将f(rtt )添加到此,也还是过去的时间,表示接收侧有可能是由NACK通知给发送侧的重发分组(有可能是经由RTT的),可以认为是重发分组。 判定为重发包boolrtpstreamreceiver :3360 ispacketretransmitted (constrtpheaderheader ),判定为boolin_order(const(/retransmissionsarehandledseparatelyifrtxisenabled.if (RTP _ payload _ registry _.RTX enabled.if (RTP _ payload _ rad ) ) statistician=RTP _ receive _ statistics _-get statistician (header.ssrc ); if (! 静态(return false; //checkifthisisaretransmission.int 64 _ tmin _ RTT=0; RTP _ RTCP _-RTT (RTP _ receiver _-ssrc )、nullptr、nullptr、min_rtt和nullptr ); 返回! in _ order statistician-isretransmitofoldpacket (header,min_rtt ); }! in _ order statistician-isretransmitofoldpacket (header,min_rtt )满足顺序混乱,即使加上rtt时间,过去的时间也是nack重发分组。

references 3359 blog.jianchi Hu.net/webrtc-research-RTP-number-timestamp-compare.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。