日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大话ion系列(三)

發(fā)布時(shí)間:2024/4/11 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大话ion系列(三) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方“LiveVideoStack”關(guān)注我們

作者 | 王朋闖

本文為王朋闖老師創(chuàng)作的系列ion文章,LiveVideoStack已獲得授權(quán)發(fā)布,未來將持續(xù)更新。

大話ion系列(一)

大話ion系列(二)

五、offer與answer流程

1.前言

之前的文章已經(jīng)介紹了前兩次重協(xié)商:

  • 客戶端sdk的pub的dc已經(jīng)打通,此時(shí)使用dc控制simulcast和監(jiān)聽audiolevel speaker。

  • 客戶端sdk的sub訂閱到了房間內(nèi)的流。

接下來,SDK推流是第三次協(xié)商了。

2.offer流程

當(dāng)點(diǎn)擊ion-sfu的demo里“publish”按鈕的時(shí)候,就會(huì)觸發(fā)ion-sdk-js的操作:

把音視頻track增加到pub的pc,此時(shí)會(huì)觸發(fā)onNegotiationNeeded。

首先來看一下ion-sdk-js的代碼:

this.transports[Role.pub].pc.onnegotiationneeded = this.onNegotiationNeeded.bind(this);

這里把onNegotiationNeeded綁定到了pc.onnegotiationneeded,意思是當(dāng)推流增加track到pc時(shí),就會(huì)觸發(fā)onNegotiationNeeded。

參考:

https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/onnegotiationneeded

接下來看一下onNegotiationNeeded,是個(gè)標(biāo)準(zhǔn)的重協(xié)商流程。

private async onNegotiationNeeded() {if (!this.transports) {throw Error(ERR_NO_SESSION);}let offer: RTCSessionDescriptionInit | undefined;let answer: RTCSessionDescriptionInit | undefined;try {offer = await this.transports[Role.pub].pc.createOffer();await this.transports[Role.pub].pc.setLocalDescription(offer);answer = await this.signal.offer(offer);//在這里發(fā)送offer到SFUawait this.transports[Role.pub].pc.setRemoteDescription(answer);} catch (err) {/* tslint:disable-next-line:no-console */console.error(err);if (this.onerrnegotiate) this.onerrnegotiate(Role.pub, err, offer, answer);}}

接下來看一下SFU里的處理:

func (p *JSONSignal) Handle(ctx context.Context, conn *jsonrpc2.Conn, req *jsonrpc2.Request) { .... case "offer":var negotiation Negotiationerr := json.Unmarshal(*req.Params, &negotiation)if err != nil {p.Logger.Error(err, "connect: error parsing offer")replyError(err)break}//調(diào)用peerLocal.Answer()answer, err := p.Answer(negotiation.Desc)if err != nil {replyError(err)break}// 發(fā)送answer_ = conn.Reply(ctx, req.ID, answer) func (p *PeerLocal) Answer(sdp webrtc.SessionDescription) (*webrtc.SessionDescription, error) { ....//這里調(diào)用了publisher.Answer()answer, err := p.publisher.Answer(sdp)if err != nil {return nil, fmt.Errorf("error creating answer: %v", err)}Logger.V(0).Info("PeerLocal send answer", "peer_id", p.id)return &answer, nil } // 這里可以看到Publisher.Answer就是標(biāo)準(zhǔn)的協(xié)商流程 // 在前邊的文章詳細(xì)介紹過什么叫協(xié)商和重協(xié)商,這里不在重復(fù)了 func (p *Publisher) Answer(offer webrtc.SessionDescription) (webrtc.SessionDescription, error) {if err := p.pc.SetRemoteDescription(offer); err != nil {return webrtc.SessionDescription{}, err}for _, c := range p.candidates {if err := p.pc.AddICECandidate(c); err != nil {Logger.Error(err, "Add publisher ice candidate to peer err", "peer_id", p.id)}}p.candidates = nilanswer, err := p.pc.CreateAnswer(nil)if err != nil {return webrtc.SessionDescription{}, err}if err := p.pc.SetLocalDescription(answer); err != nil {return webrtc.SessionDescription{}, err}return answer, nil }

3.answer流程

func (p *JSONSignal) Handle(ctx context.Context, conn *jsonrpc2.Conn, req *jsonrpc2.Request) { ....case "answer":var negotiation Negotiationerr := json.Unmarshal(*req.Params, &negotiation)if err != nil {p.Logger.Error(err, "connect: error parsing offer")replyError(err)break}// peerLocal.SetRemoteDescriptionerr = p.SetRemoteDescription(negotiation.Desc)if err != nil {replyError(err)}func (p *PeerLocal) SetRemoteDescription(sdp webrtc.SessionDescription) error {if p.subscriber == nil {return ErrNoTransportEstablished}p.Lock()defer p.Unlock()Logger.V(0).Info("PeerLocal got answer", "peer_id", p.id)// 這里調(diào)用subscriber.SetRemoteDescriptionif err := p.subscriber.SetRemoteDescription(sdp); err != nil {return fmt.Errorf("setting remote description: %w", err)}p.remoteAnswerPending = falseif p.negotiationPending {//這里兩個(gè)標(biāo)志位是為了防止重協(xié)商競(jìng)爭(zhēng)沖突p.negotiationPending = falsep.subscriber.negotiate()}return nil }//這里僅僅是調(diào)用pc.SetRemoteDescription func (s *Subscriber) SetRemoteDescription(desc webrtc.SessionDescription) error {if err := s.pc.SetRemoteDescription(desc); err != nil {Logger.Error(err, "SetRemoteDescription error")return err} .....return nil }

至此,第三次重協(xié)商完成,兩端交換完sdp,接下來ice打通后會(huì)推流過來。


4.總結(jié)

pub在第一次協(xié)商后,只打通了dc,此時(shí)使用dc控制simulcast和監(jiān)聽audiolevel speaker,也可以定制自己的dc。

這樣的好處是靈活。

sub在第二次協(xié)商后,可以訂閱到房間內(nèi)的其他人的流了。

pub在第三次協(xié)商時(shí),是增加音視頻track后,然后走標(biāo)準(zhǔn)重協(xié)商流程,開始推流。

六、包的收發(fā)流程

1.前言

本文從ion-sfu中的demo點(diǎn)擊“publish”開始,講一下如何收包轉(zhuǎn)發(fā)。

前邊講到,點(diǎn)擊“publish”,會(huì)進(jìn)行第三次重協(xié)商,協(xié)商完成,客戶端此時(shí)推流到SFU。

此時(shí)會(huì)觸發(fā)OnTrack,這里的OnTrack和標(biāo)準(zhǔn)webrtc接口是一樣的,會(huì)在流到達(dá)時(shí)自動(dòng)觸發(fā)。

參考:

https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/ontrack

2.收包流程

OnTrack收包流程的入口

首先貼一下老代碼,OnTrack是在NewPublisher里邊設(shè)置的回調(diào)。

func NewPublisher(idstring,sessionSession,cfg*WebRTCTransportConfig)(*Publisher,error){ 。。。//這里要注意cfg.Setting,里邊的bufferFactory已經(jīng)設(shè)置好了為自定義的c.BufferFactory.GetOrNew//可以搜一下這個(gè)函數(shù)NewWebRTCTransportConfig,這一行“se.BufferFactory = c.BufferFactory.GetOrNew”api:=webrtc.NewAPI(webrtc.WithMediaEngine(me),webrtc.WithSettingEngine(cfg.Setting))pc,err:=api.NewPeerConnection(cfg.Configuration) 。。。p:=&Publisher{id: id,pc: pc,cfg: cfg,router: newRouter(id,session,cfg),session:session,} //===========OnTrack在這里pc.OnTrack(func(track*webrtc.TrackRemote,receiver*webrtc.RTPReceiver){ 。。。//這里AddReceiver會(huì)新建WebRTCReceiver,然后AddUpTrack//uptrack是收流的,downtrack是發(fā)流的r,pub:=p.router.AddReceiver(receiver,track)if pub{//這里會(huì)把流發(fā)布到房間內(nèi),其他peer會(huì)訂閱到p.session.Publish(p.router,r)p.mu.Lock()publisherTrack:=PublisherTrack{track,r,true}p.tracks=append(p.tracks,publisherTrack) 。。。p.mu.Unlock()if handler,ok:=p.onPublisherTrack.Load().(func(PublisherTrack));ok&&handler!=nil{//這里如果上層業(yè)務(wù),通過OnPublisherTrack設(shè)置了回調(diào),就會(huì)觸發(fā)//一般只有包導(dǎo)入的情況下,才會(huì)這樣用,比如業(yè)務(wù)不想加入房間就自動(dòng)訂閱,想要按需訂閱handler(publisherTrack)}} else {p.mu.Lock()p.tracks=append(p.tracks,PublisherTrack{track,r,false})p.mu.Unlock()}})//===========


自定義buffer

這里不得不介紹一下自定義buffer了,看懂了才知道包是從哪里來的。

Pion/webrtc支持自定義BufferFactory,設(shè)置好之后,pion/webrtc的組件會(huì)使用自定義buffer。

比如pion/srtp是實(shí)際收發(fā)srtp和srtcp包的類,它們也會(huì)使用自定義buffer。

首先來看一下ion-sfu是在哪里設(shè)置自定義buffer的:

func NewWebRTCTransportConfig(cConfig)WebRTCTransportConfig{//這個(gè)SettingEngine是pion里很重要的設(shè)置類,可以控制pion/webrtc很多行為和參數(shù),比如ice-lite等se:=webrtc.SettingEngine{}se.DisableMediaEngineCopy(true)....//這里把自定義的BufferFactory給配置進(jìn)去了//意思是pion/srtp會(huì)使用這個(gè)buffer來傳包se.BufferFactory=c.BufferFactory.GetOrNew }

srtp和srtcp流向是這樣的:

客戶端---srtp--->srtp.ReadStreamSRTP------->SFU 客戶端<---srtcp---srtp.ReadStreamSRTCP<------SFU

當(dāng)包到達(dá)pion/srtp時(shí),就會(huì)觸發(fā)ReadStreamSRTP.init函數(shù)和ReadStreamSRTCP.init函數(shù)。

  • ReadStreamSRTP.init調(diào)用自定義的BufferFactory.GetOrNew函數(shù)了,new了一個(gè)buffer。

  • ReadStreamSRTCP.init調(diào)用自定義的BufferFactory.GetOrNew函數(shù),new一個(gè)rtcpReader。

之后收發(fā)rtp和rtcp包,就會(huì)流經(jīng)這個(gè)buffer和rtcpReader:

https://github.com/pion/srtp/blob/3c34651fa0c6de900bdc91062e7ccb5992409643/stream_srtp.go#L53

func(r*ReadStreamSRTP)init(childstreamSession,ssrcuint32)error{sessionSRTP,ok:=child.(*SessionSRTP) ......if r.session.bufferFactory!=nil{//這里就是調(diào)用自定義的BufferFactory.GetOrNew函數(shù)了,new了一個(gè)bufferr.buffer=r.session.bufferFactory(packetio.RTPBufferPacket,ssrc)} else { .......}return nil } //這里就把包寫入了自定義buffer func(r*ReadStreamSRTP)write(buf[]byte)(nint,errerror){n,err=r.buffer.Write(buf)if errors.Is(err,packetio.ErrFull){// Silently drop data when the buffer is full.return len(buf),nil}return?n,err }

為什么這么搞呢?

仔細(xì)想想,如果控制了rtp和rtcp的buffer,是不是計(jì)算twcc、nack、stats等就很方便了?在buffer寫入包的同時(shí),就可以通過設(shè)置的回調(diào)函數(shù)搞各種復(fù)雜計(jì)算。

router.AddReceiver

接下來可以看到buffer的各種回調(diào)。

func(r*router)AddReceiver(receiver*webrtc.RTPReceiver,track*webrtc.TrackRemote)(Receiver,bool){r.Lock()deferr.Unlock()publish:=falsetrackID:=track.ID()//這里獲取了之前init函數(shù)中,new出來的buffer和rtcpReader,開始搞事情buff,rtcpReader:=r.bufferFactory.GetBufferPair(uint32(track.SSRC()))//設(shè)置rtcp的回調(diào),比如nack、twcc、rrbuff.OnFeedback(func(fb[]rtcp.Packet){r.rtcpCh<-fb})if track.Kind()==webrtc.RTPCodecTypeAudio{streamID:=track.StreamID()//如果是音頻track,設(shè)置OnAudioLevel回調(diào)buff.OnAudioLevel(func(leveluint8){r.session.AudioObserver().observe(streamID,level)})r.session.AudioObserver().addStream(streamID)}else if track.Kind()==webrtc.RTPCodecTypeVideo{if r.twcc==nil{//如果是視頻track,創(chuàng)建twcc計(jì)算器,并設(shè)置回調(diào),當(dāng)計(jì)算器生成twcc包就會(huì)回調(diào)r.twcc=twcc.NewTransportWideCCResponder(uint32(track.SSRC()))r.twcc.OnFeedback(func(prtcp.RawPacket){r.rtcpCh<-[]rtcp.Packet{&p}})}//設(shè)置buffer的twcc回調(diào),buffer收到包后調(diào)用,塞入twcc計(jì)算器//twcc計(jì)算生成rtcp包,再回調(diào)OnFeedback發(fā)送給客戶端buff.OnTransportWideCC(func(snuint16,timeNSint64,markerbool){r.twcc.Push(sn,timeNS,marker)})}if r.config.WithStats{r.stats[uint32(track.SSRC())]=stats.NewStream(buff)}//設(shè)置rtcpReader.OnPacketrtcpReader.OnPacket(func(bytes[]byte){//收到SDES、SR包做些處理})recv,ok:=r.receivers[trackID]if!ok{//創(chuàng)建WebRTCReceiver并設(shè)置回調(diào)recv=NewWebRTCReceiver(receiver,track,r.id)r.receivers[trackID]=recvrecv.SetRTCPCh(r.rtcpCh)recv.OnCloseHandler(func(){。。。。})publish=true}//把track buffer塞入recvrecv.AddUpTrack(track,buff,r.config.Simulcast.BestQualityFirst)//初始化buffbuff.Bind(receiver.GetParameters(),buffer.Options{MaxBitRate:r.config.MaxBandwidth,})。。。return recv,publish }

這里很重要,WebRTCReceiver是真實(shí)負(fù)責(zé)收發(fā)包的,可以看到AddUpTrack已經(jīng)把buffer塞進(jìn)去了。

接下來看一下AddUpTrack是如何工作的:

func(w*WebRTCReceiver)AddUpTrack(track*webrtc.TrackRemote,buff*buffer.Buffer,bestQualityFirstbool){if w.closed.get(){return}//根據(jù)RID來區(qū)分layervarlayerintswitchtrack.RID(){//如果沒開simulcast,為""casefullResolution:layer=2casehalfResolution:layer=1default:layer=0//如果沒開simulcast,為0}w.Lock()//設(shè)置空域?qū)觢ayer的trackw.upTracks[layer]=track//設(shè)置空域?qū)觢ayer的buffw.buffers[layer]=buffw.available[layer].set(true)//設(shè)置空域?qū)觢ayer的downtrack,這里的[]*DownTrack數(shù)組,訂閱該layer的downtrack存在這里w.downTracks[layer].Store(make([]*DownTrack,0,10))w.pendingTracks[layer]=make([]*DownTrack,0,10)w.Unlock()//閉包函數(shù),按最佳質(zhì)量訂閱,切到f層subBestQuality:=func(targetLayerint){for l:=0;l<targetLayer;l++{dts:=w.downTracks[l].Load()if dts==nil{continue}for_,dt:=rangedts.([]*DownTrack){_=dt.SwitchSpatialLayer(int32(targetLayer),false)}}}//閉包函數(shù),按最差質(zhì)量訂閱,切到q層subLowestQuality:=func(targetLayerint){for l:=2;l!=targetLayer;l--{dts:=w.downTracks[l].Load()if dts==nil{continue}for_,dt:=rangedts.([]*DownTrack){_=dt.SwitchSpatialLayer(int32(targetLayer),false)}}}//是否開啟大小流if w.isSimulcast{//如果配置最佳質(zhì)量,則等到f層到來時(shí),訂閱它if bestQualityFirst&&(!w.available[2].get()||layer==2){subBestQuality(layer)//如果配置最差質(zhì)量,則等到q層到來時(shí),訂閱它}else if!bestQualityFirst&&(!w.available[0].get()||layer==0){subLowestQuality(layer)}}//啟動(dòng)讀寫流程go w.writeRTP(layer) }

真正的收發(fā)包流程來了:

func(w*WebRTCReceiver)writeRTP(layerint){defer func(){//這里設(shè)置自動(dòng)清理函數(shù)w.closeOnce.Do(func(){w.closed.set(true)w.closeTracks()})}()//創(chuàng)建一個(gè)PLI包,后邊要用pli:=[]rtcp.Packet{&rtcp.PictureLossIndication{SenderSSRC:rand.Uint32(),MediaSSRC:w.SSRC(layer)},}for {//這里可以看到,真正讀包是從buffer里讀出來的,正是前邊講到的自定義bufferpkt,err:=w.buffers[layer].ReadExtended()if err==io.EOF{return}//如果開啟大小流if w.isSimulcast{ 。。。//這里跳過,以后再講}for_,dt:=rangew.downTracks[layer].Load().([]*DownTrack){//下行track寫入rtp包,這樣訂閱者可以收到流了if err=dt.WriteRTP(pkt,layer);err!=nil{if?err==io.EOF&&err==io.ErrClosedPipe{w.Lock()w.deleteDownTrack(layer,dt.id)w.Unlock()}log.Error().Err(err).Str("id",dt.id).Msg("Error writing to down track")}}}}


3.發(fā)包流程

SessionLocal.Publish

func(s*SessionLocal)Publish(routerRouter,rReceiver){for_,p:=ranges.Peers(){// Don't sub to selfif router.ID()==p.ID()||p.Subscriber()==nil{continue}//表示根據(jù)r的信息創(chuàng)建downtrack,并增加到p.Subscriber()和r中if err:=router.AddDownTracks(p.Subscriber(),r);err!=nil{Logger.Error(err,"Error subscribing transport to Router")continue}} }


router.AddDownTracks

func(r*router)AddDownTracks(s*Subscriber,recvReceiver)error{ 。。。 //如果recv不為空,表示根據(jù)recv的信息創(chuàng)建downtrack,并增加到s和recv中if recv!=nil{if_,err:=r.AddDownTrack(s,recv);err!=nil{return err}s.negotiate()return nil} //如果recv為空,表示遍歷房間中所有的receivers,并增加到s和recv中if len(r.receivers)>0{for_,rcv:=ranger.receivers{if_,err:=r.AddDownTrack(s,rcv);err!=nil{return err}}s.negotiate()}return nil }

router.AddDownTrack

根據(jù)recv的信息創(chuàng)建downtrack,并增加到sub和recv中。

func(r*router)AddDownTrack(sub*Subscriber,recvReceiver)(*DownTrack,error){for_,dt:=rangesub.GetDownTracks(recv.StreamID()){//避免重復(fù)添加if dt.ID()==recv.TrackID(){return dt,nil}}codec:=recv.Codec()if err:=sub.me.RegisterCodec(codec,recv.Kind());err!=nil{return nil,err}//創(chuàng)建downtrack,downtrack用來給客戶端下發(fā)流downTrack,err:=NewDownTrack(webrtc.RTPCodecCapability{MimeType: codec.MimeType,ClockRate: codec.ClockRate,Channels: codec.Channels,SDPFmtpLine: codec.SDPFmtpLine,RTCPFeedback:[]webrtc.RTCPFeedback{{"goog-remb",""},{"nack",""},{"nack","pli"}},},recv,r.bufferFactory,sub.id,r.config.MaxPacketTrack)if err!=nil{return nil,err}//把downtrack增加到pc中if downTrack.transceiver,err=sub.pc.AddTransceiverFromTrack(downTrack,webrtc.RTPTransceiverInit{Direction:webrtc.RTPTransceiverDirectionSendonly,});err!=nil{return nil,err}// 設(shè)置關(guān)閉回調(diào),關(guān)閉時(shí)pc自動(dòng)刪除trackdownTrack.OnCloseHandler(func(){if sub.pc.ConnectionState()!=webrtc.PeerConnectionStateClosed{if err:=sub.pc.RemoveTrack(downTrack.transceiver.Sender());err!=nil{if err==webrtc.ErrConnectionClosed{return}Logger.Error(err,"Error closing down track")}else{//如果刪除成功,再從sub中刪除,然后重協(xié)商sub.RemoveDownTrack(recv.StreamID(),downTrack)sub.negotiate()}}})//設(shè)置OnBind回調(diào),DownTrack.Bind()里會(huì)調(diào)用這個(gè);PC協(xié)商完成時(shí),DownTrack.Bind()會(huì)觸發(fā)downTrack.OnBind(func(){gosub.sendStreamDownTracksReports(recv.StreamID())})//增加downTrack到sub中,sub只是用來管理downtracks和生成SenderReport等sub.AddDownTrack(recv.StreamID(),downTrack)//增加downTrack到WebRTCReceiver中,實(shí)際收發(fā)包是WebRTCReceiver來控制,在writeRTP中recv.AddDownTrack(downTrack,r.config.Simulcast.BestQualityFirst)returndownTrack,nil }

這樣下行track也增加好了,之前的writeRTP可以正常工作了。

4.總結(jié)

收發(fā)包邏輯打通步驟:

SDK推流---->OnTrack---->router.AddReceiver(設(shè)置Buffer和上行Track)------>SessionLocal.Publish(設(shè)置下行Track)---->收發(fā)包邏輯打通

收發(fā)包流程圖簡(jiǎn)單總結(jié):

srtp.write--->buffer.write--->buffer.ReadExtended--->downtrack.writeRTP

收包流程堆棧:

github.com/pion/ion-sfu/pkg/buffer.(*Buffer).Write (/Volumes/vm/workspace/go/src/github.com/pion/ion-sfu/pkg/buffer/buffer.go:187) github.com/pion/srtp/v2.(*ReadStreamSRTP).write (/Volumes/vm/workspace/go/pkg/mod/github.com/pion/srtp/v2@v2.0.5/stream_srtp.go:64) github.com/pion/srtp/v2.(*SessionSRTP).decrypt?(/Volumes/vm/workspace/go/pkg/mod/github.com/pion/srtp/v2@v2.0.5/session_srtp.go:166)

發(fā)包流程堆棧:

github.com/pion/ion-sfu/pkg/buffer.(*Buffer).ReadExtended (/Volumes/vm/workspace/go/src/github.com/pion/ion-sfu/pkg/buffer/buffer.go:236) github.com/pion/ion-sfu/pkg/sfu.(*WebRTCReceiver).writeRTP?(/Volumes/vm/workspace/go/src/github.com/pion/ion-sfu/pkg/sfu/receiver.go:345)

作者簡(jiǎn)介:

王朋闖:前百度RTN資深工程師,前金山云RTC技術(shù)專家,前VIPKID流媒體架構(gòu)師,ION開源項(xiàng)目發(fā)起人。

特別說明:

本文發(fā)布于知乎,已獲得作者授權(quán)轉(zhuǎn)載。


掃描圖中二維碼或點(diǎn)擊閱讀原文

了解大會(huì)更多信息

喜歡我們的內(nèi)容就點(diǎn)個(gè)“在看”吧!

總結(jié)

以上是生活随笔為你收集整理的大话ion系列(三)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

亚洲在线观看av | 狠狠躁日日躁狂躁夜夜躁 | 免费看在线看www777 | 国产成人av片| 亚洲日本va中文字幕 | 99久久婷婷国产精品综合 | 国产精品美女999 | 成片免费观看视频大全 | 99在线热播精品免费99热 | 国产日韩欧美在线影视 | 成人理论在线观看 | 青青河边草免费直播 | 久久精品综合网 | 在线免费观看视频一区 | 天天色天天干天天 | 国产成人亚洲精品自产在线 | 免费视频久久 | 麻豆国产视频下载 | 亚洲欧美国产精品 | 国产91精品久久久久久 | 视频精品一区二区三区 | 97超碰免费在线 | 欧美 日韩 成人 | 日韩在线| 亚洲jizzjizz日本少妇 | 超碰免费av | 96久久欧美麻豆网站 | 超碰在线最新地址 | 色吊丝在线永久观看最新版本 | 99精品一区二区 | 亚洲国产成人在线观看 | 精品二区视频 | 免费在线一区二区三区 | 国产精品系列在线 | 国产精品久久久久久超碰 | 日韩在线观看一区二区三区 | 激情五月综合网 | 午夜精品久久久久久久99婷婷 | 午夜a区 | 亚洲97在线 | 日韩精品高清不卡 | 波多野结衣在线视频免费观看 | 婷婷爱五月天 | 国产在线2020 | 综合亚洲视频 | 国产手机视频精品 | 国产在线精品国自产拍影院 | 国内视频1区 | 国产高清免费 | 久久你懂的| 欧美激情视频一区二区三区免费 | 中文字幕文字幕一区二区 | 九九久久在线看 | 91精品国产综合久久久久久久 | 久草在线一免费新视频 | 香蕉网站在线观看 | 91在线播放综合 | 超碰在线观看97 | 91日韩精品视频 | av免费在线免费观看 | 欧美成人在线网站 | 亚洲电影图片小说 | 182午夜在线观看 | 性色视频在线 | 操综合 | 韩国av一区 | 国产精品一码二码三码在线 | 亚洲狠狠丁香婷婷综合久久久 | 亚洲精品美女在线观看播放 | 国产96精品 | 久久精品精品电影网 | 网站你懂的 | 中文电影网 | 久青草影院 | 韩国av电影网| 久久久婷 | 91精品亚洲影视在线观看 | av在线播放快速免费阴 | 日本黄色免费观看 | 伊人婷婷综合 | 中文字幕高清在线播放 | 日本中文字幕影院 | 深爱激情开心 | 免费a级大片 | 91精品国产乱码 | 中文字幕资源在线观看 | 99一级片| 国产大陆亚洲精品国产 | 西西444www大胆高清视频 | 黄色成人在线 | 欧美日韩精品影院 | 欧美日韩精品在线观看 | 日韩视频一区二区三区 | 丁香六月天婷婷 | 国产精品激情在线观看 | 久久久久亚洲国产精品 | 天天干天天操天天拍 | 免费视频久久久 | 99在线免费视频 | 黄p在线播放 | 日韩精品一区二区三区免费观看 | 亚洲电影av在线 | 亚洲国产精品第一区二区 | 婷婷色综 | 欧美另类美少妇69xxxx | 夜夜操天天 | 四虎欧美 | 国产精品美女久久久久久久久 | av免费观看在线 | 亚洲精品小视频在线观看 | 日韩午夜网站 | 久久综合欧美 | 精品国产理论片 | 久久丝袜视频 | 欧美精品小视频 | 久久五月天综合 | 国产精品久久久久久久久久 | 久久免费视频一区 | av在线一| 亚洲精品国产综合99久久夜夜嗨 | 日韩高清黄色 | 三级黄色在线观看 | 夜夜躁狠狠躁 | 美女网站在线观看 | 亚洲精品视频在线免费 | 日韩手机在线 | 亚洲第一区精品 | 国产美女精品视频免费观看 | 久久激情视频 久久 | 97香蕉久久超级碰碰高清版 | 欧美性生活免费 | 中文在线www | 亚洲国产成人av网 | 国产福利91精品张津瑜 | 亚洲成a人片77777潘金莲 | 欧美激情精品久久久久久 | 久久国产成人午夜av影院宅 | 婷婷丁香在线视频 | 成人国产精品久久久 | 国产在线播放不卡 | 国产电影黄色av | 一区二区三区在线影院 | 国产九色在线播放九色 | 久久久久久久久毛片精品 | 国产精品自产拍在线观看 | 粉嫩av一区二区三区四区五区 | 天天色综合天天 | 日韩免费福利 | 欧美一区二区在线刺激视频 | 不卡的av中文字幕 | 91在线中文 | 欧美激情第一页xxx 午夜性福利 | 国产精品 亚洲精品 | 日日干干夜夜 | 狠狠网 | 人人射人人射 | 成人动漫一区二区三区 | 欧美三人交 | 99热日本 | 久久亚洲综合国产精品99麻豆的功能介绍 | 日日操网站 | 欧美日韩成人 | 久草在 | 97成人在线视频 | 综合久久久 | 国产理论在线 | 色老板在线 | 天天综合网在线 | 狠狠操操| 天天艹日日干 | 午夜精品一区二区三区免费视频 | 在线观看免费成人av | 久久视频精品在线 | 亚洲精品一区二区久 | 91精品在线视频观看 | 日韩一级精品 | 在线看日韩 | 在线日韩亚洲 | 99这里只有久久精品视频 | 国际精品久久 | 久久国内精品视频 | 精品国产不卡 | 日韩综合精品 | 国产一在线精品一区在线观看 | 久久久综合色 | 国产高清视频在线 | 日日狠狠| 欧美另类交人妖 | 黄色片免费电影 | av888.com| 亚洲在线视频免费观看 | 91av网站在线观看 | 97超碰资源| 天天舔夜夜操 | 99热国产精品 | 狠狠操91| 日韩精品一区二区三区第95 | www.成人久久| 精品爱爱 | 九九精品视频在线看 | 亚洲高清视频一区二区三区 | 欧美一区二区三区免费观看 | 日韩av高清| 国产成人一级电影 | 国产91精品高清一区二区三区 | 九九热只有这里有精品 | 成人免费在线看片 | 亚洲激情六月 | 久久久国产精品成人免费 | 久久久2o19精品 | 国产伦理一区二区三区 | 国产91在线免费视频 | 在线日韩一区 | 一区二区三区免费在线 | 99产精品成人啪免费网站 | 黄色小说18 | 婷婷丁香七月 | 色婷婷亚洲综合 | 久久精品人 | 丁香六月天婷婷 | 中文字幕在线观看1 | 中文字幕免费一区 | 91插插插免费视频 | 99草在线视频| 久久精品79国产精品 | 在线中文字幕视频 | 天天久久夜夜 | 永久免费毛片在线观看 | 久久精品电影 | 国产精品久久久久久99 | 91免费高清观看 | 国产精品18久久久久久久久 | 久久香蕉电影 | 日韩精品播放 | 伊人网站 | 亚av在线 | 亚洲网站在线 | 一区二区三区在线免费观看 | 国产资源网 | 日韩欧美高清不卡 | 五月天综合色 | 成人亚洲免费 | 亚洲精品女 | 成人国产精品一区 | 国内视频在线观看 | 日韩久久精品一区二区三区 | 在线成人观看 | 天堂av高清| 日韩精品免费一线在线观看 | av电影中文字幕在线观看 | 国产精品福利av | 日本论理电影 | 久日精品| 精品视频免费观看 | 国产视频69| 国产精品综合久久久久久 | 久久国产精品一区二区三区四区 | 国产精品区在线观看 | 亚洲精品国产精品国产 | 亚洲黄色激情小说 | 99精品影视 | 精品在线视频播放 | 欧美孕妇视频 | 国产高清在线看 | 狠狠干网址| 国产一级片久久 | 500部大龄熟乱视频 欧美日本三级 | 欧美analxxxx| 日韩中文在线播放 | 久久免费视频99 | 日批视频在线观看免费 | 国产精品福利一区 | 9久久精品 | 伊人欧美 | 精品国产1区2区 | 丁香午夜婷婷 | 天天色天天射综合网 | 日韩一区二区三 | 欧洲精品码一区二区三区免费看 | 91精品无人成人www | 视频二区 | 激情在线网址 | av中文字幕在线免费观看 | 免费成人av在线 | 中文字幕日韩在线播放 | 丁香六月婷婷开心 | 四虎在线视频 | 五月婷婷丁香六月 | 亚洲精品av中文字幕在线在线 | av韩国在线| 在线小视频 | 五月天综合网站 | 亚洲精品综合一区二区 | 亚洲清纯国产 | 国产黄色视| 99久久精品无码一区二区毛片 | 久久人人射 | 久久无码精品一区二区三区 | 美女国产| 久久手机精品视频 | 久久综合色天天久久综合图片 | 天天综合网久久 | 亚洲全部视频 | 免费欧美精品 | 99re在线视频观看 | 国产精品久久在线 | 国产五月色婷婷六月丁香视频 | 国产一级h | 婷婷久久婷婷 | 五月在线 | 欧美性色综合网站 | 激情综合啪啪 | 国产精品久久久久久麻豆一区 | 九九热视频在线 | 九九久久成人 | 日av免费 | 国产69精品久久久久99 | 亚洲午夜激情网 | 日韩国产精品久久 | 日日干日日| 91香蕉视频黄色 | 91亚洲精品久久久蜜桃网站 | 一本—道久久a久久精品蜜桃 | 久久免费av | 色综合久久久久久久 | 午夜电影久久久 | 成人国产在线 | 狠狠操导航 | 国产精品高清在线 | av高清一区| 国产精品久久艹 | 中文永久字幕 | 成人精品一区二区三区电影免费 | 国产亚洲精品中文字幕 | 久久狠狠干 | 国产精品毛片一区视频播 | 久草在线观看资源 | 成人av在线亚洲 | 日韩一级电影在线观看 | 香蕉国产91 | 国产专区视频在线观看 | 欧美日韩三区二区 | 中文亚洲欧美日韩 | 久久久久久久综合色一本 | 狠狠干 狠狠操 | 在线亚洲高清视频 | 国产黄色片久久久 | 玖玖综合网 | 久久中文网 | 国产精品视频地址 | 欧美一区二区在线免费观看 | 精品一区91| 久久久高清视频 | 久久久精品高清 | 久久久香蕉视频 | 久久综合欧美精品亚洲一区 | 日韩电影一区二区三区在线观看 | 久久理论影院 | 天天操天天操天天操天天操天天操 | 夜色.com | 免费看一级片 | 国产黄网站在线观看 | 国产精品久久久久av免费 | 综合色在线观看 | 999电影免费在线观看 | 欧美日韩精品在线播放 | 日韩精品不卡在线 | 激情久久小说 | 99视频在线免费 | 网站在线观看你们懂的 | 91色亚洲| 国产精品久久人 | 日韩视频在线观看视频 | 91亚洲精品久久久中文字幕 | 波多在线视频 | 亚洲精品国产免费 | 精品国产乱码久久久久久三级人 | 国产成人精品一区二区三区在线 | 国产麻豆精品一区二区 | 中文字幕 国产专区 | 欧美一级在线观看视频 | 黄色一级大片在线观看 | 久久精品久久精品久久39 | 久操视频在线播放 | 亚洲国产理论片 | 一级片视频在线 | 六月天综合网 | 久久资源在线 | 91自拍视频在线 | 五月婷香蕉久色在线看 | 精品在线播放视频 | 高清精品久久 | 亚洲免费视频观看 | 黄色视屏在线免费观看 | 日韩精品不卡在线观看 | 99综合久久 | 欧美精品免费一区二区 | 欧美在线观看小视频 | 日韩午夜高清 | 2017狠狠干| 国产精品久久久久久久久久久久午夜 | 在线免费观看麻豆视频 | av电影在线不卡 | 六月丁香在线观看 | 欧美日韩在线精品一区二区 | 天天干.com | adn—256中文在线观看 | 国产黄色av网站 | 在线之家免费在线观看电影 | 日韩欧美在线免费 | 国内视频在线 | 成人在线视频论坛 | 亚洲精品在线视频 | 在线成人av | 国产免费视频在线 | 日韩xxxxxxxxx | 国内毛片毛片 | 亚洲二区精品 | 黄色1级毛片 | 亚洲一二区视频 | www.色婷婷.com | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 欧美日韩视频在线 | 久久久片 | 成人av教育| 91在线产啪| 五月婷婷在线视频观看 | 色九九视频 | 天天色天天射天天综合网 | 欧美 日韩 久久 | 久久久久久国产精品美女 | 国产永久免费观看 | 人人干天天射 | 国产精品成人aaaaa网站 | 少妇做爰k8经典 | 99精品视频在线观看视频 | 亚洲成人资源 | 国产成人一级电影 | 91色九色 | 中文字幕在线观看第二页 | 日韩欧美极品 | 91久久精品一区二区三区 | 亚洲欧美视频一区二区三区 | 亚洲成色777777在线观看影院 | 久草免费资源 | 91久久爱热色涩涩 | 日韩免费在线观看视频 | 播五月婷婷| 国产精品九九九九九 | 丁香六月在线观看 | 夜夜操网 | 久久久一本精品99久久精品66 | 韩国一区视频 | 亚洲视屏一区 | 成人在线播放视频 | 午夜精品福利在线 | 一区二区三区在线播放 | 在线免费试看 | 黄色电影网站在线观看 | 亚洲少妇自拍 | 亚洲涩涩网站 | 黄色aaa毛片 | 97超碰在线人人 | 国产精品青草综合久久久久99 | 日韩免费观看av | 久久久久亚洲精品国产 | 亚洲精品系列 | 麻豆视频在线免费 | 久久久91精品国产一区二区精品 | 99视频在线精品国自产拍免费观看 | 天天操综合网站 | 综合网婷婷 | 国产视频1 | 日韩中文字幕在线看 | 亚洲男男gaygay无套同网址 | 国产视频精品在线 | 欧美视频网址 | 97精品国产91久久久久久久 | 91精品久久久久久久久久久久久 | 国产精品久久嫩一区二区免费 | 亚欧日韩av | 日本午夜在线亚洲.国产 | www日韩精品 | 99久久99久久免费精品蜜臀 | 在线91av| 亚洲高清激情 | 中文乱幕日产无线码1区 | 日韩欧美在线观看一区 | 亚洲国产日韩精品 | 麻豆视频国产在线观看 | 国产一区二区三区久久久 | 一级黄色片在线播放 | 久草视频精品 | 久久精品电影 | 91精品成人| 久久伦理影院 | 天堂在线一区 | 成人av电影免费 | 国内成人精品2018免费看 | www.国产视频 | 碰超人人 | 亚洲欧洲国产精品 | 一级黄毛片 | 亚洲国产精品久久久 | 激情av网| 字幕网在线观看 | 夜夜骑天天操 | 亚洲天堂网站 | 成人在线视频在线观看 | 日韩最新中文字幕 | 亚洲美女视频在线 | 日本精品一区二区三区在线播放视频 | 久久精品一 | 91超碰免费在线 | 中国美女一级看片 | 国产精品久久久久久久久久久久久久 | 国产精品系列在线播放 | 国产视频精品在线 | 亚洲人成人在线 | 亚洲国产欧美一区二区三区丁香婷 | 欧美激情第八页 | 人人插超碰 | 天天射天天操天天色 | 婷婷激情综合 | 福利视频 | 国产成人精品av在线观 | 欧美日韩国产一区 | 在线亚洲日本 | 久久久综合电影 | 国产很黄很色的视频 | 色资源在线观看 | 一级电影免费在线观看 | 日韩在线观看视频一区二区三区 | 在线观看国产日韩 | 亚洲综合精品在线 | 91精品专区| 黄色一级大片在线免费看国产一 | 国产福利91精品一区二区三区 | 91在线观看视频 | 国产成人精品一区二区三区免费 | 日韩在线视频二区 | 国产日韩一区在线 | 97在线观看| 99操视频| 在线看黄色的网站 | 99精品国产高清在线观看 | 黄色中文字幕在线 | 精品国产一区二区三区四 | 欧美性色xo影院 | 一级片免费观看视频 | 国产在线日本 | jizz18欧美18| 日韩伦理片一区二区三区 | 亚洲精品视频大全 | 中文字幕 91 | www.天天成人国产电影 | 黄色91免费观看 | 精品99免费 | 久久精品国产v日韩v亚洲 | 午夜av日韩 | 在线高清av| 在线观看成人福利 | 日本中文在线观看 | 国产精品美女久久久 | 日日婷婷夜日日天干 | 国产高清免费在线播放 | 成人av中文字幕在线观看 | 国产在线一区二区三区播放 | 日韩在线观看视频免费 | www.天天草| 欧美成人视 | jizz18欧美18 | 五月婷婷在线综合 | 91精品播放| 日韩高清一区在线 | 亚洲午夜小视频 | 亚洲在线网址 | 亚洲精品午夜aaa久久久 | 美女免费视频一区 | 久久一区二区免费视频 | 国产剧情在线一区 | 国产剧情在线一区 | 久久男女视频 | 中文av字幕在线观看 | av在线播放不卡 | 狠狠色噜噜狠狠狠狠2022 | 美女免费视频一区二区 | 99国产精品久久久久老师 | 精品国产一区二区三区四区在线观看 | 91成人免费| 99在线精品免费视频九九视 | 国产精品午夜在线观看 | 免费在线国产视频 | 99久久精品费精品 | 在线看片一区 | 蜜臀aⅴ国产精品久久久国产 | 色婷婷欧美 | 最近能播放的中文字幕 | 国产亚洲视频中文字幕视频 | 97网| 色丁香婷婷 | 久草99| 丁香久久激情 | 国产精品一区久久久久 | 欧美极品xxx| 菠萝菠萝在线精品视频 | 五月婷婷激情综合网 | 久久刺激视频 | 黄色一级免费电影 | 久草成人在线 | 色停停五月天 | 在线观看免费 | 色 免费观看 | 日日夜av| 尤物97国产精品久久精品国产 | 四虎影视www | 久久成年人视频 | aaa毛片视频 | 91粉色视频 | 国产精品麻豆三级一区视频 | a成人v在线 | 亚洲永久精品国产 | 一本一道久久a久久精品蜜桃 | 久久黄色a级片 | 久久久久区 | 在线观看福利网站 | 成人亚洲精品国产www | 91色影院 | 久久视频一区二区 | 456免费视频| 欧美日韩高清一区二区 国产亚洲免费看 | 91丨九色丨国产丨porny精品 | 99国产视频在线 | 久久精品中文字幕少妇 | 免费在线观看av网站 | 亚洲欧美日韩不卡 | 亚洲黄色一级电影 | 91精品久久久久久久久久久久久 | 国产在线观看91 | 在线看一级片 | 国产黄色大片 | 青青河边草免费视频 | 人人超碰人人 | 丁香婷婷激情网 | 9797在线看片亚洲精品 | 色综合久久久久久久 | 国产精品久久嫩一区二区免费 | 亚洲天天做 | 天天草综合 | 国产在线精品区 | 99久久99久国产黄毛片 | 色永久免费视频 | 久久黄色精品视频 | 一区二区电影网 | 91麻豆精品国产91久久久无限制版 | 中文字幕在线观看免费高清完整版 | 麻花豆传媒一二三产区 | 久久精品视频免费观看 | 久久精品国产成人精品 | 69av视频在线观看 | 成片免费观看视频大全 | 中文字幕在线免费播放 | 91久草视频 | 久久免费国产视频 | www..com黄色片 | 久久男人视频 | 国产精品久久久久久久久婷婷 | 五月天婷亚洲天综合网鲁鲁鲁 | 精品国产乱码 | 黄色片网站 | 日本不卡123区 | 99热999| 久久久免费看视频 | 国产精品免费久久久久 | 成人a毛片| 五月婷婷六月丁香激情 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 国产黄色理论片 | 永久免费视频国产 | 韩国av一区二区三区在线观看 | 丁香国产视频 | av在线播放一区二区三区 | 成人久久18免费网站 | 亚洲欧洲国产视频 | 久久官网 | 国产成人精品一二三区 | 亚洲国产mv | 美女福利视频一区二区 | 91成品人影院 | 中文字幕日韩免费视频 | 日韩视频免费在线 | 欧美日韩一二三四区 | 中文字幕精品一区久久久久 | 亚洲乱码在线观看 | 国产小视频在线观看 | 中文字幕在线观看av | 国产成人一级 | 久视频在线 | a级免费观看 | 在线中文字幕播放 | 97超碰国产在线 | 高清精品视频 | 久久精彩 | 韩日成人av| 三级av中文字幕 | 992tv又爽又黄的免费视频 | 91精品国产欧美一区二区 | 久久福利小视频 | 国产又粗又猛又黄视频 | 国产麻豆精品一区 | 成人久久毛片 | 91热精品| 日韩午夜av | 97在线视频网站 | 免费下载高清毛片 | 最新一区二区三区 | 菠萝菠萝在线精品视频 | 久久国产影院 | 亚洲涩涩网 | 天堂av在线免费观看 | 免费看国产黄色 | 免费毛片一区二区三区久久久 | 中文字幕视频免费观看 | 99精品免费久久久久久日本 | 精品国产乱码久久久久久久 | 国产 中文 日韩 欧美 | 国产永久网站 | 黄色视屏在线免费观看 | 亚洲人在线7777777精品 | 久草在线 | 黄色视屏av | 999久久久久久久久久久 | 91麻豆精品国产91久久久久久 | 91成版人在线观看入口 | 激情久久久 | 91久久久久久久一区二区 | 欧美久久久久久久久久久 | 国产精品一区在线观看 | av免费电影网站 | 国产精品久久久久久五月尺 | 亚洲视频在线看 | 久久精品成人欧美大片古装 | 日韩av成人在线观看 | www久久| 婷婷丁香狠狠爱 | 亚洲精品在线一区二区三区 | 亚洲第二色 | 国产99在线免费 | 亚洲精品国偷拍自产在线观看 | 国产婷婷视频在线 | 久久99这里只有精品 | av网站在线观看免费 | 五月花丁香婷婷 | 国产区免费 | 香蕉视频啪啪 | 国产精品久久嫩一区二区免费 | 国产资源 | 超碰人人做| 国产一级在线免费观看 | 久久试看 | 亚洲成人黄色网址 | 成人91在线| 精品国产美女 | 国产福利一区二区三区在线观看 | 久久99国产精品 | 天天摸日日摸人人看 | 91av视频观看 | 欧美日韩免费观看一区二区三区 | 热久久视久久精品18亚洲精品 | 十八岁以下禁止观看的1000个网站 | 黄色三级在线看 | 国产精品免费看久久久8精臀av | 国产精品亚洲人在线观看 | 天天操操操操操操 | 久久图 | 久久久久久久久久久久久久av | 网站在线观看日韩 | 久久社区视频 | 亚洲另类视频在线 | 欧美成人xxxx | 久久久久久久久久网 | 国产97超碰| 国产精品一区二区果冻传媒 | 国内毛片毛片 | 96精品高清视频在线观看软件特色 | 日韩中文在线电影 | 91精品啪在线观看国产线免费 | 日韩电影一区二区在线观看 | 国产 成人 久久 | 欧美精品在线观看 | 久草在线视频在线观看 | 久久久久亚洲精品国产 | 久久久久久久久久免费视频 | 久草电影在线观看 | 九草视频在线 | 久久99精品久久久久久清纯直播 | 天天干天天操天天拍 | 午夜美女网站 | 91成人久久 | 国产成人一区二区三区免费看 | 在线看片a | 97视频免费看| 一本到视频在线观看 | 成人一区电影 | 97人人模人人爽人人喊中文字 | av免费在线观 | 狠狠躁日日躁夜夜躁av | 国产精品一区二区久久精品爱微奶 | 精品99久久久久久 | 久章操 | 欧美a级片网站 | av成人免费网站 | 国产中文伊人 | 免费三及片 | 丁香激情五月 | 国产又粗又长又硬免费视频 | 丝袜av网站 | 久久久国产一区二区三区 | 国产亚洲精品久久久久久久久久 | 免费av网址大全 | 亚洲在线看 | 午夜av剧场 | 黄色av一区二区 | 999成人| 99国产情侣在线播放 | 国产又粗又猛又黄又爽的视频 | 国产97碰免费视频 | 欧美大片www | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲天天草 | 国产精品久久久久9999吃药 | 国产精品18久久久久久首页狼 | 久久99国产综合精品免费 | 国产精品白丝jk白祙 | 国产精品国产三级国产aⅴ无密码 | 欧美高清视频不卡网 | 大荫蒂欧美视频另类xxxx | 黄色小说网站在线 | 天天操夜夜操国产精品 | 国产午夜激情视频 | 婷婷色视频 | 亚洲视频在线观看免费 | 91av小视频| 久久专区| 99久久99久国产黄毛片 | 日韩免费小视频 | 正在播放五月婷婷狠狠干 | 成人av高清在线 | 精品国产一区二区三区久久影院 | 日韩一区视频在线 | 国产激情免费 | 国产精品99久久久久久武松影视 | 国产在线精品一区 | 久久av影视 | 欧美一级免费在线 | 五月天中文在线 | 中文字幕欧美激情 | 69av久久 | 免费黄色在线网站 | 黄色在线看网站 | 国内精品久久久久影院优 | 少妇性色午夜淫片aaaze | 丰满少妇在线观看资源站 | 99精品热视频只有精品10 | 毛片激情永久免费 | www.天天色 | 九九色视频 | 免费aa大片 | 欧美电影在线观看 | 欧美日韩精| 日本在线中文 | 亚洲成av人影院 | 国产精品国产三级国产aⅴ无密码 | 亚洲国产精选 | 美女视频一区二区 | 国产视频久久 | 四虎在线永久免费观看 | 你操综合| 97成人在线观看 | 欧美孕妇与黑人孕交 | 五月婷婷黄色网 | 日韩精品你懂的 | 久草视频免费播放 | 亚洲综合色网站 | 久久一区二区三区四区 | 日韩欧美在线中文字幕 | 国精产品999国精产品视频 | 成人三级网址 | 国产精品久久久久久久久毛片 | 午夜123 | 亚洲精品久久久久中文字幕二区 | 久久久久久久av | 国产乱老熟视频网88av | 天天操网 | 日韩欧美一区二区不卡 | 欧美性生活免费看 | 碰超在线97人人 | 中文字幕在线播放一区二区 | 中文字幕一区二区三区在线观看 | 日韩欧美电影在线观看 | 超级碰视频 | 五月激情在线 | 97精品超碰一区二区三区 | 波多野结衣电影一区二区三区 | 狠狠躁18三区二区一区ai明星 | 在线成人免费电影 | 久久免费av| 国产精品一区二区av日韩在线 | 国产精品网红直播 | 欧美精品国产综合久久 | 日韩高清不卡在线 | 精品国产伦一区二区三区观看体验 | 91精品成人 | 天堂在线一区 | 日韩欧美电影网 | 国产一区二区在线免费播放 | 激情av一区二区 | 久久综合色播五月 | av电影 一区二区 | 超碰人人做 | 精品国产精品久久一区免费式 | 国产免费一区二区三区网站免费 | 久久综合综合久久综合 | 欧美性脚交 | 另类老妇性bbwbbw高清 | 永久免费精品视频 | 日韩在线免费观看视频 | 精品在线你懂的 | 久章操| 国产看片免费 | 天天干天天玩天天操 | 天天综合网久久综合网 | 五月婷婷视频在线观看 | 久操视频在线观看 | 91精品国产麻豆 | 欧美在线观看视频免费 | 久久久久久久久久福利 | 成人网在线免费视频 | 欧美久久久久 | 欧美无极色 | 午夜在线日韩 | 亚洲国产合集 | 国产日韩精品视频 | 日韩在线观看一区 | 狠狠狠狠狠狠天天爱 | 日韩中文字幕91 | 午夜国产影院 | 久久久久亚洲最大xxxx | 亚洲一区二区精品在线 | 国产婷婷在线观看 | 亚洲高清国产视频 | 在线影院中文字幕 | 成人a级免费视频 | 亚洲午夜精品久久久久久久久 | 88av网站| www蜜桃视频 | 日韩av不卡播放 | 91视频这里只有精品 | 国产精品网站 | 精品国产免费人成在线观看 | 中文在线字幕免 | 黄网站污 | 久久精品导航 | 国产三级香港三韩国三级 | 激情欧美在线观看 | 午夜精品一区二区三区免费 | 99热精品在线 | 日韩精品一区在线观看 | 国产精品黄 | 天天色天天色天天色 | 日日干综合| 亚洲三级黄色 | 国产性天天综合网 | 亚洲激情视频 | 在线天堂亚洲 | 日韩在线免费看 | 亚洲国产精品影院 | 欧美视频不卡 | 丁五月婷婷 | 亚洲精品女人 | 亚洲伦理中文字幕 | 久久国产精品一区二区 | 中文字幕在线观看一区 | 高清一区二区三区av | 国产精品丝袜久久久久久久不卡 | 91免费黄视频 | 在线观看一 | 91av原创| 久久综合狠狠综合久久激情 | 91精品1区2区 | 国产亚洲aⅴaaaaaa毛片 | 色欲综合视频天天天 | 亚洲精品中文字幕视频 | 456成人精品影院 | 一区二区三区观看 | 91麻豆精品国产91久久久无限制版 | 国产精彩视频一区二区 | 激情av资源 |