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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

audio_policy_configuration.xml文件解析

發布時間:2023/12/16 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 audio_policy_configuration.xml文件解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

audio_policy_configuration.xml文件解析

簡介

audio音頻數據從一個源走到一個目的都是需要根據配置文件來決定,所以理解configuration配置文件中各個標簽項轉化為c++實體類的及各成員至關重要,本文先直接給出各標簽和對應實體類的結果,后再簡單分析其解析過程


audio_policy_configuration.xml文件對應C++實體類

configuration文件(audio_policy_configuration的縮寫)為音頻audio的設備、流以及路由等配置文件,里面寫明了audio音頻部分有哪些設備、哪些流以及它們支持的編碼、格式以及通道存儲布局等等;
文件通常保存在odm/etc、/vendor/etc、/system/etc目錄下,文件內容大致如下:

<module name="a"><attachedDevices><item>Speaker</item><item>Built-In Mic</item><item>Built-In Back Mic</item></attachedDevices><defaultOutputDevice>Speaker</defaultOutputDevice><devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" .../><devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BACK_MIC" .../><mixport .../>....<route .../> </module> <module name="b"></module>

查看源碼,在AudioPolicyManager初始化的時候,在方法deserializeAudioPolicyXmlConfig中,當解析正確完第一個configuration文件就會return,所以應該不會解析完所有的config文件;以上xml配置最終轉化為以下c++類AudioPolicyConfig:

class AudioPolicyConfig {std::string mSource; //為config字符串目錄,一般在odm/etc、/vendor/etc、/system/etc下的audio_policy_configuration.xmlHwModuleCollection &mHwModules; //保存了配置文件中所有的所有module標簽集合,每個module標簽對應一個HwModule類DeviceVector &mAvailableOutputDevices; //attchedDevices標簽中,設備名稱名字和devicePort標簽的tagName相同,且type中有OUT字眼的DeviceDescriptor實體類集合,如上SpeakerDeviceVector &mAvailableInputDevices; //同mAvailableOutputDevices一樣,只不過type中有IN的DeviceDescriptor實體類集合,如上Built-In Micsp<DeviceDescriptor> &mDefaultOutputDevice; // 保存defaultOutputDevice標簽內名字和devicePort標簽的tagName相同,如Speaker }

module標簽

每個module標簽對應有自己的hal,也就是hal的源碼實現都不一樣,如primary、usb、a2dp等

<module name="primary" halVersion="3.0"><mixport name="compressed_offload" role="source"...><profile name="" format="AUDIO_FORMAT_MP3" .../><profile name="" format="AUDIO_FORMAT_AAC_LC" .../></mixport><mixport name="...." role="sink"/><deviceport .../><route .../> </module>

module標簽對應C++實體類HWModule

class HWModule {mName = "primary"mHalVersion = 3.0OutputProfileCollection mOutputProfiles; //mixport標簽role為source類型,對應IOProfle實體類集合InputProfileCollection mInputProfiles; //mixport標簽role為sink的類型,對應IOProfle實體類集合DeviceVector mDeclaredDevices; //所有的deviceport標簽,對應DeviceDescriptor實體類的集合AudioPortVector mPorts; //所有的mixport,deviceport標簽對應的實體類,因為IOProfle和DeviceDescriptor都繼承了AudioPort,所以相當于這是一個AudioPort集合AudioRouteVector mRoutes; //所有的route }

MixPort標簽

mixport標簽可以理解為stream流,流配置了自己的格式、采樣率以及mask,并且氛圍輸出、輸入流

<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY"><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/><profile name="" format="AUDIO_FORMAT_AAC"samplingRates="8000,11025,12000,16000" channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/> </mixport>

注意:一個mixPort標簽可能有多個profile屬性,也就是支持很多編碼格式屬性

每個mixport標簽對應一個IOProfile實體類

class IOProfile : public AudioPort {/* *同時存活的流的最大數量,默認為1* 標簽中flag會影響該值,如果role為sink,且flag標記為AUDIO_INPUT_FLAG_MMAP_NOIRQ,則賦值為0,表示無窮大* */int maxActiveCount; /** 當前流支持的設備集合;* 如果是sink輸入流,查找規則如下:* 1. 遍歷其父類的成員mRoutes,因為是輸入流,所以遍歷mRoute集合中sink為自己的route,也就是找有哪些源source設備把數據傳給自己。* 2. 找到route后,根據route中source保存的對象,且對象type是AUDIO_PORT_TYPE_DEVICE類型(就是devicesPort標簽對應的實體類DeviceDescriptor)* 3. 把DeviceDescriptor保存在集合中,保存在以下mSupportedDevices中,作為其支持的設備;* 輸出流,同理;最終的結果就是:* 作為輸出流source,mSupportedDevices保存此流可以輸出到對應的device,stream -> device* 作為輸入流sink,mSupportedDevices保存了其他device能輸出數據到此流, device -> stream**/DeviceVector mSupportedDevices; }class AudioPort {mName = "primary output" //對應name(枚舉,下同)audio_port_type_t mType = AUDIO_PORT_TYPE_MIX //此處固定audio_port_role_t mRole = AUDIO_PORT_ROLE_SOURCE/AUDIO_PORT_ROLE_SINK //由config的role決定AudioProfileVector mProfiles; //AudioProfile的集合,對應mixport里面的多個profile/* ** 標簽中flag會影響該值,flag中有INPUT和OUTPUT字眼,如果mixport的role為source,則會去枚舉enum為* OutputFlagConverter::Table查找對比獲取枚舉值;反之則會去InputFlagConverter::Table去對比查找;* 最后將枚舉值設置到這里來;如果role是source角色,則判斷flag包含AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD* 離線加載,則flag |= AUDIO_OUTPUT_FLAG_DIRECT,最后在賦值* */mFlag = flags sp<HwModule> mModule //通過attach函數與HwModule綁定AudioRouteVector mRoutes //相關連的route標簽集合,多個route里面可能都會包含同一個name的mixport,所以這里是集合 }

mixport內部的Profile標簽

在解析以上標簽至profile時,會單獨創建AudioProfile,如上xml配置會創建:

class AudioProfile {mName = "" //空串audio_format_t mFormat ; //format字符對應enum的枚舉值,enum在TypeConverter.cpp的FormatConverte的mTable中ChannelsVector mChannelMasks = //同上,也是枚舉值,而不是字符串,定義在OutputChannelConverter、InputChannelConverter和ChannelIndexConverter的mTable中SampleRateVector mSamplingRates = //同上//以下三個對應上面三位,如果三位都有值,則為false固定的,如果xml沒有指定值,則為true表示是動態的值bool mIsDynamicFormat = falsebool mIsDynamicChannels = false;bool mIsDynamicRate = false; }

DevicePort標簽

devicePort標簽可以理解為一個device設備,設備也分output和input,但是不在像mixport那樣以role來分,而是以type中有關鍵字“IN”和“OUT”來分,如下:

<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"encodedFormats="AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC"><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="44100,48000,88200,96000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/></devicePort>

對應實體類DeviceDescriptor

class DeviceDescriptor : public AudioPort, public AudioPortConfig {/* *AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES字符串對應的enum的整型值,* enum定義在system下的audio-base.h,根據其字符串中就有OUT和IN兩種類型* audio_devices_t其實也是一個整型,判斷一個device是in或者out也是根據這個判斷的;* role標志只是會在audioPort中的mRole保存* */audio_devices_t mDeviceType;String8 mTagName = "BT A2DP Headphones"FormatVector mEncodedFormats = Vector<int>上面encodedFormats轉換的枚舉值 }class AudioPort {mName = ""audio_port_type_t mType = AUDIO_PORT_TYPE_DEVICE //固定值audio_port_role_t mRole = AUDIO_PORT_ROLE_SOURCE/AUDIO_PORT_ROLE_SINK //由role決定AudioProfileVector mProfiles = //對應deviceport里面的多個profile標簽,AudioProfile的集合,sp<HwModule> mModule = null //目前沒有attach到HwModule上AudioRouteVector mRoutes //相關連的route標簽集合,多個route里面可能都會包含同一個name的deviceport標簽,所以這里是集合 }

同上MixPort一樣,也會在解析內部profile標簽,創建新的AudioProfile,如下:

class AudioProfile {mName = "" 空串audio_format_t mFormat; //同上mixport中的audioprofileChannelsVector mChannelMasks;SampleRateVector mSamplingRates;//對應上面三位,如果三位都有值,則為false固定的,如果xml沒有指定值,則為true表示是動態的值bool mIsDynamicFormat = falsebool mIsDynamicChannels = false;bool mIsDynamicRate = false; }

route標簽

route是把deviceport和mixport連接起來的路由,數據由一個stream輸出到另一個device,或者從一個device輸出到另一個stream;

<route type="mix" sink="Speaker"sources="primary output,raw,deep_buffer,compressed_offload,mmap_no_irq_out,voip_rx"/>

對應的AudioRoute類:

class AudioRoute {audio_route_type_t mType = AUDIO_ROUTE_MIX/AUDIO_ROUTE_MUX//根據type而定是互斥還是可融合sp<AudioPort> mSink; //所有的deviceport、mixport標簽轉化的實體類都保存到HwModule的mPorts成員了,所以是用name去mPorts里面查找;AudioPortVector mSources; //同上,只是source可能是多個,這里用集合保存 }

configuration配置文件中關鍵點理解

devicePort和mixport如何通過route串聯

route路由決定了哪些mixport的流數據可以傳到devicePort的設備里,建立他們之間的連接關系;在代碼中的體現就是通過mixport標簽對應的實體類IOProfile,在IOProfile里面有一個mSupportedDevices成員,它是一個DeviceDescriptor集合類型,意思也就是IOProfile支持的設備集合,這些設備集合可以把音頻數據傳遞給IOProfile或IOProfile可以把數據傳給device;那IOProfile是如何找到他的DeviceDescriptor的?

主要是通過route標簽對應AudioRoute,只要route標簽內,不管sink或source內容只要有自己的名字,就把這條route保存到自己IOProfile的mRoutes中去,最后通過遍歷mRoute來查找自己支持的設備DeviceDescriptor,如下代碼:

DeviceVector sourceDevices; //input stream to sink device for (const auto& route : stream->getRoutes()) {sp<AudioPort> sink = route->getSink();if (sink == 0 || stream != sink) {ALOGE("%s: Invalid route attached to input stream", __FUNCTION__);continue;}//過濾route里面的source中的deviceport而不是mixportDeviceVector sourceDevicesForRoute = getRouteSourceDevices(route);if (sourceDevicesForRoute.isEmpty()) {ALOGE("%s: invalid source devices for %s", __FUNCTION__, stream->getName().string());continue;}sourceDevices.add(sourceDevicesForRoute); }DeviceVector HwModule::getRouteSourceDevices(const sp<AudioRoute> &route) const {DeviceVector sourceDevices;for (const auto& source : route->getSources()) {//type在AudioPort里面,過濾得到deviceport而不是mixportif (source->getType() == AUDIO_PORT_TYPE_DEVICE) {sourceDevices.add(mDeclaredDevices.getDeviceFromTagName(source->getTagName()));}}return sourceDevices; }

上面是一個sink輸入流案例,查找規則如下:

  • 遍歷其父類的成員mRoutes,因為是輸入流,所以遍歷mRoute集合中sink為自己的route,也就是找有哪些源source設備把數據傳給自己。
  • 找到route后,根據route中source保存的對象,且對象type是AUDIO_PORT_TYPE_DEVICE類型(就是devicesPort標簽對應的實體類DeviceDescriptor)
  • 把DeviceDescriptor保存在集合中,保存在以下mSupportedDevices中,作為其支持的設備;
    輸出流,同理;最終的結果就是:
    作為輸出流source,mSupportedDevices保存此流可以輸出到對應的device,stream -> device
    作為輸入流sink,mSupportedDevices保存了其他device能輸出數據到此流, device -> stream
  • 輸出流source同理,就不在闡述了,最后層級依賴大致如下:


    MixPort中的flag

    AUDIO_OUTPUT_FLAGDescription
    AUDIO_OUTPUT_FLAG_PRIMARY表示音頻流需要輸出到主輸出設備,一般用于鈴聲類聲音
    AUDIO_OUTPUT_FLAG_DIRECT表示音頻流直接輸出到音頻設備,不需要軟件混音,一般用于 HDMI 設備聲音輸出
    AUDIO_OUTPUT_FLAG_FAST表示音頻流需要快速輸出到音頻設備,一般用于按鍵音、游戲背景音等對時延要求高的場景
    AUDIO_OUTPUT_FLAG_DEEP_BUFFER表示音頻流輸出可以接受較大的時延,一般用于音樂、視頻播放等對時延要求不高的場景
    AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD表示音頻流沒有經過軟件解碼,需要輸出到硬件解碼器,由硬件解碼器進行解碼

    在TypeConveter的OutputFlagConverter和InputFlagConverter還有定義的很多flag,如下:

    AUDIO_OUTPUT_FLAG_NON_BLOCKING AUDIO_OUTPUT_FLAG_HW_AV_SYNC AUDIO_OUTPUT_FLAG_TTS AUDIO_OUTPUT_FLAG_RAW AUDIO_OUTPUT_FLAG_SYNC AUDIO_OUTPUT_FLAG_IEC958_NONAUDIO AUDIO_OUTPUT_FLAG_DIRECT_PCM AUDIO_OUTPUT_FLAG_MMAP_NOIRQ AUDIO_OUTPUT_FLAG_VOIP_RX AUDIO_OUTPUT_FLAG_INCALL_MUSIC

    不是很懂這些flag,希望懂的朋友交流下!


    解析xml文件標簽代碼架構

    這里不談具體的解析過程,而是探討Android源碼中這塊的設計框架,源碼在/frameworks/av/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp中,博主覺得它設計很精巧,使用template模板來減少大量的冗余代碼,同時將各個模塊類串聯起來;
    首先,它為mixport、deviceport所有標簽分別創建單獨的模塊,如MixPortTraits,定義標簽名字屬性和解析方法:

    struct MixPortTraits : public AndroidCollectionTraits<IOProfile, IOProfileCollection> {static constexpr const char *tag = "mixPort";static constexpr const char *collectionTag = "mixPorts";struct Attributes{static constexpr const char *name = "name";static constexpr const char *role = "role";static constexpr const char *roleSource = "source"; /**< <attribute role source value>. */static constexpr const char *flags = "flags";static constexpr const char *maxOpenCount = "maxOpenCount";static constexpr const char *maxActiveCount = "maxActiveCount";};static Return<Element> deserialize(const xmlNode *cur, PtrSerializingCtx serializingContext);// Children: GainTraits };

    同時,也創建了deviceport的DevicePortTraits模塊,但是deserialize方法形參和返回值均相同; 而Attributes則根據自己的標簽內容定義,其他route、profile也有對應的獨立模塊,相互之間互不干擾;

    其次,用一個模板函數將每個模塊連接起來,如下:

    template <class Trait> status_t deserializeCollection(const xmlNode *cur,typename Trait::Collection *collection,typename Trait::PtrSerializingCtx serializingContext)

    使用deserializeCollection<MixPortTraits>來發起調用,在函數內部用模板調用模塊內部deserialize就串聯起來了,這樣看起來清晰易讀,結構也分明,以后的設計可參考參考此類型設計,相互獨立模塊,又相互聯系,具體的解析又是一致的場景

    解析架構圖

    總結

    以上是生活随笔為你收集整理的audio_policy_configuration.xml文件解析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久久久亚洲最大xxxx | 国产成人久久久77777 | 欧美精品一区二区在线观看 | 激情综合色综合久久综合 | 五月天综合色 | 色婷婷导航 | 久久久伊人网 | 精品自拍sae8—视频 | 成人黄色av免费在线观看 | 成人国产精品免费观看 | 五月天激情婷婷 | 在线看的毛片 | 韩国在线一区 | 久久久久久久久久久综合 | 久久福利综合 | 久久久国产一区二区三区四区小说 | 欧美精品资源 | www.天天成人国产电影 | 久久成人国产精品入口 | 亚洲经典在线 | 日韩久久在线 | 波多野结衣在线中文字幕 | 成年人视频在线免费播放 | 最新一区二区三区 | 探花视频在线观看+在线播放 | 国产精品爽爽爽 | 久久精品9 | 天堂网一区二区 | 久久综合给合久久狠狠色 | 成人黄色片免费 | 国产不卡在线播放 | 国产精品一区二区久久久 | 又爽又黄又刺激的视频 | 人人狠狠综合久久亚洲婷 | 国产精品第2页 | 成人国产一区 | 国产精品自在线 | 99热精品在线 | 日韩精品一区二区三区在线视频 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 91超碰在线播放 | 高清在线一区二区 | 欧美淫视频 | 天天干天天干天天色 | 精品国产一区二区久久 | 欧美一区二区三区四区夜夜大片 | 成人久久久精品国产乱码一区二区 | 96香蕉视频 | 久久精品一区二区三 | 色悠悠久久综合 | 日韩免费高清在线 | 久久国产精品久久精品 | 久久观看免费视频 | 成人在线视频免费 | 国产一区二区观看 | 人人射人人爱 | 日本丰满少妇免费一区 | 亚洲欧美少妇 | 国产精品久久久久久影院 | 九草视频在线 | 欧美日韩中文另类 | 日韩三级av| 精品国产亚洲日本 | 天天操天天操天天操 | 亚洲狠狠婷婷综合久久久 | 日韩免费一区 | 久久精品2| 久二影院 | 激情欧美丁香 | 午夜久久久久久久久久久 | 少妇av网| 91av视频导航 | 美女黄频在线观看 | 亚洲激情在线观看 | 婷婷在线资源 | 激情深爱.com| 99久久国产免费免费 | 日韩网站在线免费观看 | 免费在线成人av | 日日干天天插 | 91看片网址 | 成人在线网站观看 | 97干com| 99热精品在线观看 | 国产在线观看污片 | 久久精品一区二区 | 国产精品99久久久精品免费观看 | 狂野欧美激情性xxxx欧美 | 麻豆免费视频 | 亚洲精选99| 综合国产在线观看 | 最新av电影网址 | 四虎成人精品永久免费av九九 | 亚洲草视频 | 中文字幕资源在线观看 | 一本大道久久精品懂色aⅴ 五月婷社区 | 在线国产不卡 | 九九热在线视频免费观看 | 99爱视频在线观看 | 在线播放亚洲 | 天天曰天天曰 | 天天干天天操天天做 | 中文日韩在线视频 | 天天色天天骑天天射 | 久久国产电影 | 激情小说久久 | 成人午夜片av在线看 | 欧美男男激情videos | 国产高清视频在线播放一区 | 国产最新精品视频 | 黄色成人av网址 | 日本最新高清不卡中文字幕 | 久久亚洲精品电影 | 久久精品精品电影网 | 亚洲精品字幕 | 久久精品国产精品亚洲精品 | 久久影视网| 狠狠色丁香婷婷综合久久片 | 天天综合天天综合 | 亚洲国产影院 | av免费网站在线观看 | 五月婷婷欧美视频 | 99r在线| 在线免费观看黄 | 国内精品久久久久久久久久久久 | 欧美色图88 | 精品一区 在线 | www.午夜视频 | 精品人妖videos欧美人妖 | 欧美日韩国产一区二区三区在线观看 | 成年美女黄网站色大片免费看 | 蜜臀av在线一区二区三区 | 99热这里精品 | 91探花国产综合在线精品 | 亚洲狠狠丁香婷婷综合久久久 | 91久久国产自产拍夜夜嗨 | 久久婷婷久久 | 黄在线免费观看 | 最近2019年日本中文免费字幕 | 亚洲视频久久 | 国产999精品久久久影片官网 | 免费a v视频 | 色综合久久久久久久久五月 | 国产欧美在线一区二区三区 | 最近最新中文字幕视频 | 日韩电影久久久 | 日韩一区在线播放 | 99久久这里只有精品 | 天天干天天想 | 日韩久久久久久久久久 | 在线国产中文字幕 | 人人插人人做 | 日本久草电影 | 另类老妇性bbwbbw高清 | 一区二区欧美激情 | 色综合久久久久久久久五月 | 天天干com| 天天干天天操天天干 | 国产亚洲日 | 亚州日韩中文字幕 | 久久久久久久久久久久久久电影 | 97视频成人| 欧美日韩精品在线观看视频 | 伊人夜夜| 国产小视频免费在线网址 | 91精品在线播放 | 国产中文字幕在线视频 | 美女网站在线播放 | 色91在线| 中文字幕免费高清 | 国产不卡在线视频 | 91精品视频在线免费观看 | 2020天天干夜夜爽 | 国产亚洲精品久久久久久移动网络 | 黄色成人免费电影 | 国产免费专区 | 久久96国产精品久久99漫画 | 久久久久久国产精品久久 | 国产精品一区二区av | 五月婷婷网站 | 国产免费av一区二区三区 | 久久久国产精华液 | 欧美日韩国产精品一区二区亚洲 | 91人人网 | 探花国产在线 | 国产精品黄网站在线观看 | 国产精品剧情在线亚洲 | av黄色一级片 | 日韩精品电影在线播放 | 国语自产偷拍精品视频偷 | 99国产视频在线 | 中国一级片在线观看 | 日韩精品一区二区三区外面 | 99精品久久精品一区二区 | www.国产在线 | 狠狠操夜夜操 | 菠萝菠萝在线精品视频 | 免费看的黄色片 | 九九久久影视 | 成人毛片网 | 日韩美精品视频 | 蜜臀av在线一区二区三区 | 91看片淫黄大片一级在线观看 | 91精品第一页 | 日韩毛片在线免费观看 | 一区二区视频电影在线观看 | 欧美日韩精品在线免费观看 | 国产成人精品午夜在线播放 | 成人在线免费观看视视频 | 久久在线精品视频 | 国产在线传媒 | 久久成人免费视频 | 国产香蕉视频在线观看 | 91成人小视频 | 中文字幕有码在线观看 | 久久精品视频网站 | 男女全黄一级一级高潮免费看 | 91精品视频在线免费观看 | 日韩激情综合 | 91精品成人 | 国产精品s色 | 免费观看国产精品 | 99久久激情视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | av在线播放中文字幕 | 亚洲精品国产精品久久99 | 亚洲精品一区二区三区在线观看 | 久久九九免费视频 | 婷婷激情影院 | a电影在线观看 | 久久亚洲视频 | 激情综合色播五月 | 成人黄色大片在线免费观看 | 91自拍91| 久久久香蕉视频 | 五月天久久| 天天碰天天操 | 色婷婷啪啪免费在线电影观看 | 国产理论在线 | 青草视频在线播放 | 国产91精品高清一区二区三区 | 亚洲天天摸日日摸天天欢 | 亚洲一区欧美精品 | 亚洲综合在 | 国产黄色片免费 | 久久精精品 | 五月婷婷色 | 在线观看免费成人av | 日韩高清一二三区 | 黄色福利| 久久精品一区二区国产 | 18+视频网站链接 | 日韩黄色在线观看 | 日本成址在线观看 | 97超碰人人干 | 麻豆视频免费在线 | 四虎成人精品在永久免费 | 91视频免费网址 | 日韩电影一区二区三区在线观看 | 精品国产一区二区三区久久久蜜月 | av免费在线看网站 | 91亚洲网 | 九九国产视频 | 亚洲午夜久久久久 | 亚洲精品在线国产 | 日本高清免费中文字幕 | 国产精品一区二区中文字幕 | 欧美精品在线观看一区 | 手机在线中文字幕 | 超碰在线1| 天天操天天爽天天干 | 婷婷日 | a特级毛片| 欧美午夜久久久 | 四虎在线永久免费观看 | 免费进去里的视频 | 国产精品免费久久久久影院仙踪林 | 黄色福利 | 久久精品一区二区 | 国产a级精品 | 天天色天天操天天爽 | 久久99久久99精品免观看粉嫩 | 中文字幕.av.在线 | 色97在线 | 久久国产视频网 | 一区二区不卡视频在线观看 | 欧美色精品天天在线观看视频 | 欧美日本三级 | 久久久久亚洲精品国产 | 亚洲乱码中文字幕综合 | 久久影视网 | 看片网站黄| 精品一区二区三区四区在线 | 国产高清福利在线 | 超碰精品在线观看 | 在线观看亚洲精品 | .精品久久久麻豆国产精品 亚洲va欧美 | 精品网站999www | 国产亚洲婷婷免费 | 久久久久久久免费看 | 亚洲精品免费在线 | 亚洲欧美日韩精品久久久 | 九九久久影视 | 久久99国产精品自在自在app | 欧美精品久久久久久久久老牛影院 | 日韩一区在线播放 | 久草91视频 | 久久久国产精品人人片99精片欧美一 | 亚洲国产三级 | 久久精品视频免费观看 | 天堂av在线免费 | 亚洲国产精品成人综合 | 久久久久免费观看 | 亚洲精品一区二区18漫画 | 91在线免费观看国产 | 青青视频一区 | 中文字幕免费不卡视频 | 久草视频免费在线观看 | 中文字幕xxxx | 成人片在线播放 | 国产精品欧美久久久久三级 | 日韩精品三区四区 | 国产精品自产拍在线观看桃花 | 婷婷丁香色 | 黄色av网站在线免费观看 | 玖玖综合网 | 中文字幕在线视频免费播放 | 久久久久久麻豆 | 久人人| 国产精品av免费观看 | 黄色av网站在线免费观看 | 国产又粗又长又硬免费视频 | 亚洲视频99 | 伊人亚洲综合 | 91桃花视频 | 色88久久| 欧美国产日韩一区二区三区 | 丁香婷婷综合网 | av一级久久 | 国产精品日韩久久久久 | 黄色国产成人 | 99久久99视频只有精品 | 日韩高清国产精品 | 国产一区二区综合 | 久久久久国产视频 | 欧美精品网站 | 成人影片在线免费观看 | 日韩com | 亚洲精品午夜国产va久久成人 | 久久久国产一区 | 国产成人性色生活片 | 精品视频成人 | 久久久96 | 国产精品成人久久久久久久 | 国产精品美女久久久久久2018 | 国产99久久久国产精品 | 中文字幕日本在线 | 美女很黄免费网站 | 日本久久久久久久久久 | 国产原创在线视频 | 国产中文| 日韩免费电影网 | 91资源在线免费观看 | 亚洲精品啊啊啊 | 永久免费观看视频 | 狠狠色丁香婷婷综合欧美 | 欧美日韩精品在线一区二区 | 色av色av色av| www.狠狠色| 91九色视频国产 | 国产精品高清一区二区三区 | 国产在线视频资源 | 精品无人国产偷自产在线 | 久久久久国产一区二区三区四区 | 91 在线视频 | 国产精品久久久久国产精品日日 | 久久av免费 | 国产免费黄色 | 黄色片网站 | 国产欧美在线一区二区三区 | 国产精品久久久久久一区二区三区 | 国产日韩中文字幕在线 | 婷婷去俺也去六月色 | 久久久久www| 国产xxxx | 麻豆精品在线 | 激情五月色播五月 | 国际精品久久久 | 超碰在线亚洲 | 国产精品麻豆欧美日韩ww | 日韩在线免费不卡 | 日韩一区二区三区高清免费看看 | 91看片在线免费观看 | 韩日电影在线 | 婷婷视频在线播放 | 亚洲天堂网在线视频观看 | 日本中文字幕网站 | 一级国产视频 | 国产精品一区电影 | 激情综合色综合久久综合 | 国产精品日韩精品 | 国产精品毛片一区二区在线看 | 在线免费黄 | 一区二区精品国产 | 国产精品亚州 | 久草在线视频网 | 亚洲a色 | 黄色毛片视频免费观看中文 | 激情伊人五月天 | 黄色av电影免费观看 | 黄色一区三区 | 日本婷婷色 | 国产日韩欧美视频在线观看 | av福利在线免费观看 | 国产精品久久久久久久久蜜臀 | 国产成人久久精品77777综合 | 日韩最新av在线 | 奇米网444 | 亚洲一区视频免费观看 | 麻花传媒mv免费观看 | av色一区 | a天堂中文在线 | 91九色视频网站 | 欧美天天综合 | 国产麻豆视频在线观看 | 久久久精品视频成人 | 色婷婷成人网 | 婷婷九月激情 | 久久人91精品久久久久久不卡 | 日本精品在线看 | 国产色网站 | 波多野结衣一区 | 国产韩国精品一区二区三区 | 久久99中文字幕 | 亚洲精品人人 | 一级欧美日韩 | 狠狠干干 | 91丨九色丨丝袜 | 欧美天堂影院 | av888av.com | 国产91精品一区二区麻豆亚洲 | 久久最新网址 | 亚洲精品自拍视频在线观看 | 中文字幕中文字幕在线一区 | 色综合久久天天 | 国产一区二区三区在线免费观看 | 亚洲最新在线视频 | 国产精品久久久久久久久久久久冷 | 欧美在线观看视频一区二区三区 | 婷婷久久综合九色综合 | 狠狠狠色丁香婷婷综合激情 | 欧美久久久久久久久久久久 | 久久福利在线 | 中文国产在线观看 | 久久久婷 | 成人理论在线观看 | 久久久国产一区二区 | 91激情在线视频 | 精品国产一区二区三区久久久蜜月 | 亚洲最大免费成人网 | 一区二区三区免费在线观看视频 | 特级毛片在线免费观看 | 精品久久久久久亚洲 | 久久草网站 | 五月婷婷丁香在线观看 | 国产小视频在线免费观看 | 国产午夜一级毛片 | 国产精品va最新国产精品视频 | 91九色porn在线资源 | 人人操日日干 | 国产精品一区二区62 | 草久视频在线观看 | 精品久久久国产 | 99re8这里有精品热视频免费 | 狠狠色噜噜狠狠 | 极品嫩模被强到高潮呻吟91 | 91av官网 | 最新国产一区二区三区 | 国产在线污 | 欧美日一级片 | 美女视频黄在线观看 | 国产欧美精品xxxx另类 | 久草网在线观看 | 91大神dom调教在线观看 | 一区二区三区在线免费播放 | 免费观看成人网 | 国产91成人在在线播放 | 五月婷社区| 免费看v片 | 四虎国产| 伊人中文网| 日日操天天爽 | 精品在线看 | 91传媒视频在线观看 | 人人看97 | 女人高潮一级片 | 日本特黄特色aaa大片免费 | 黄色资源网站 | 草免费视频 | 成人精品电影 | 亚洲无吗视频在线 | 激情综合网婷婷 | 热久精品| 在线播放你懂 | 日本特黄一级片 | 久久久这里有精品 | 亚洲精品一区二区三区在线观看 | 91av电影| 日韩精品在线播放 | 911久久香蕉国产线看观看 | 亚洲国产成人久久综合 | 国产成人精品女人久久久 | 中文久草 | 国产午夜三级一区二区三桃花影视 | 亚洲精品在线视频观看 | 国产精品美女久久久 | 蜜臀久久99精品久久久无需会员 | 高清不卡一区二区三区 | 99久久久国产精品免费99 | 成年美女黄网站色大片免费看 | 国产在线专区 | 久久午夜国产精品 | 国产手机免费视频 | 国产亚洲精品精品精品 | 免费精品国产 | 悠悠av资源片 | 中文字幕日韩高清 | 色天天中文 | 国产精品久久久久久久久久久久午夜片 | 97操操操 | 在线观看911视频 | 国产精品中文字幕在线播放 | 国产精品毛片久久久久久久久久99999999 | 精品国产免费一区二区三区五区 | 国产精品久久久久久久久久久不卡 | 久久字幕网 | 99这里只有精品99 | 久久免费视频6 | 91精品国产网站 | 在线成人免费 | 国产在线精品国自产拍影院 | 亚洲激情在线播放 | 亚洲精品国精品久久99热 | 91综合色| 超碰免费在线公开 | 精品日本视频 | 91av在线视频免费观看 | 国产综合福利在线 | av在线电影播放 | 天天操福利视频 | 欧洲成人免费 | 99这里精品 | 亚洲丝袜一区 | 黄色三级网站在线观看 | 成人av片在线观看 | 国产精品区免费视频 | 亚洲欧美视频一区二区三区 | 色婷婷色 | 国产美女免费视频 | 天天射天天艹 | 操操操av | 91日韩精品视频 | 在线观看av片 | 日韩欧美国产精品 | 少妇搡bbbb搡bbb搡忠贞 | 人人插人人搞 | 精品国产伦一区二区三区观看说明 | 久久国产精品第一页 | 亚洲国产精品传媒在线观看 | 婷婷综合在线 | www五月天 | 久久精久久精 | 免费97视频| 成人高清在线 | 日本久久99| av在线电影网站 | 人人射av | 在线欧美a | 日韩中文字幕免费视频 | 99精品国产福利在线观看免费 | 99热最新网址 | 成人中文字幕av | av千婊在线免费观看 | 欧美 另类 交 | 久久精品99国产精品日本 | 亚洲2019精品 | 国产视频色 | 国产一区二区中文字幕 | 亚洲国产网站 | 亚洲婷婷综合色高清在线 | 国产录像在线观看 | 午夜久操 | 婷婷色中文 | 亚洲性xxxx | 午夜免费电影院 | 欧亚久久| 国产精品99久久久久的智能播放 | 91视频高清免费 | 五月天丁香亚洲 | 久久久.com| 久久在线免费 | 成人免费观看视频网站 | 在线观看91av | 久久免费资源 | 玖玖爱在线观看 | 久久久国产一区二区三区四区小说 | 999国内精品永久免费视频 | 一区二区中文字幕在线 | 久久久这里有精品 | 国产美女在线精品免费观看 | 激情五月***国产精品 | 国产精品一区二区 91 | 国产精品第一页在线观看 | 最新av在线播放 | 精品一区二区日韩 | 日韩www在线 | 国产手机在线播放 | 精品99久久久久久 | 亚洲激情综合 | 日韩精品2区 | 国产亚洲精品久久久久久电影 | 激情视频免费在线 | 色婷婷激婷婷情综天天 | 最新午夜电影 | 五月婷婷色综合 | 最近更新好看的中文字幕 | 天天操天天干天天干 | 久久69精品 | 一本一本久久a久久精品综合 | 日韩中文免费视频 | 日韩av资源在线观看 | 91尤物国产尤物福利在线播放 | 国产成人三级在线观看 | 五月婷婷激情综合网 | 国产色视频一区二区三区qq号 | 日日夜夜天天久久 | 国产中文字幕视频在线观看 | 豆豆色资源网xfplay | 九九久久视频 | 日韩最新在线视频 | 最近日本韩国中文字幕 | 黄色在线免费观看网站 | 国产精品久久久久久久av电影 | 天天射天天操天天色 | 最新av电影网址 | 在线视频黄 | 网址你懂的在线观看 | 黄色一级大片在线免费看国产一 | 人人爽人人看 | 99久久日韩精品视频免费在线观看 | 亚洲va天堂va欧美ⅴa在线 | 国产原创在线视频 | 欧美性色黄| 成年人免费看av | 久久黄色免费 | 深爱激情五月婷婷 | 免费瑟瑟网站 | 五月天久久 | 亚洲精品久久久久58 | 久操操 | 视频一区在线播放 | 久热av在线 | 日韩高清在线一区二区三区 | 国产成人精品日本亚洲999 | 免费在线国产精品 | 欧美少妇bbwhd | 成片视频在线观看 | 久久中文字幕导航 | 久热电影| 午夜婷婷在线观看 | 欧美亚洲成人xxx | av韩国在线| 中文av在线播放 | 婷婷在线视频观看 | 精品久久一二三区 | 国产五码一区 | 超碰在线观看av | 亚洲美女在线国产 | 国产麻豆剧果冻传媒视频播放量 | 国产精品久久久久久久电影 | 欧美黑人猛交 | 国产视频美女 | 久久av一区二区三区亚洲 | 亚洲国产精品女人久久久 | 欧美伦理一区二区 | 免费在线观看a v | 欧美日韩国产网站 | 蜜桃视频精品 | 国产中文在线视频 | 免费久久视频 | 4p变态网欧美系列 | 一区二区视频免费在线观看 | 日韩av在线看 | 国产精品完整版 | 亚洲精品一区二区精华 | 亚洲第一区在线播放 | 天天操天天操天天操天天操 | 奇米导航| 日韩在线网址 | 国产精品初高中精品久久 | 国产成人精品av在线 | 91手机视频在线 | 久一网站| 中文字幕在线专区 | av动图| 精品一二三区 | 欧美日韩免费网站 | 国产色啪| 亚洲天堂网站 | 高清国产午夜精品久久久久久 | 探花视频免费观看 | 国产精品久久久久久久久久久久久久 | 久久中文字幕视频 | 四虎成人精品永久免费av | 亚洲视频一级 | 免费99精品国产自在在线 | 国产精品自在线拍国产 | 99久久精品免费看国产四区 | 国产不卡在线观看视频 | 欧美一级性生活视频 | 精品成人在线 | 亚洲欧美视频在线观看 | 91亚色视频在线观看 | 久久婷婷色综合 | 亚洲国产免费看 | 国产我不卡 | 在线网站黄 | 免费成人av| 91传媒免费在线观看 | 国产91精品一区二区麻豆网站 | 日韩精品中文字幕一区二区 | 亚洲欧美国内爽妇网 | 高清av网站| 久久久久久久久久久免费 | 日本久草电影 | 麻豆精品视频在线 | 97视频资源| 91视频链接| 久草久| 婷婷去俺也去六月色 | 精品99在线观看 | www.狠狠操 | 色综合天天射 | a级国产乱理论片在线观看 特级毛片在线观看 | 欧美激精品 | 91tv国产成人福利 | 蜜臀久久99精品久久久无需会员 | 最新国产精品久久精品 | 亚洲理论电影网 | 欧美视频日韩 | 国产精品久久在线 | 亚洲少妇自拍 | 91av视频导航 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 久久久久久中文字幕 | 久久久久久久久久免费 | 亚洲一区二区三区毛片 | 一本一本久久a久久精品牛牛影视 | 亚洲高清久久久 | 草免费视频 | 国产一区在线播放 | 午夜视频在线观看网站 | 亚洲最新精品 | 综合网av | 国产精品久久久久一区 | 在线观看av小说 | 高清av不卡| 精品视频在线看 | 日韩成年视频 | 国产精品第一 | 日韩动漫免费观看高清完整版在线观看 | 国产又黄又猛又粗 | 欧美在线视频日韩 | 激情久久久久久久久久久久久久久久 | 中日韩在线视频 | 久久精品在线视频 | 999成人国产 | 亚洲一区二区三区四区在线视频 | 99久久久国产精品免费99 | 狠狠狠狠狠操 | 国产美女搞久久 | 91精品国产一区二区三区 | 国产精品白丝jk白祙 | 国产第一二区 | 中文av一区二区 | 五月精品 | 久久综合色婷婷 | 久久久高清免费视频 | 91福利视频免费观看 | 亚洲国内精品在线 | 97视频总站 | 亚洲免费成人av电影 | 国产精品嫩草69影院 | 久久精品99北条麻妃 | 国产在线97 | 精品欧美一区二区精品久久 | 成人教育av| 亚洲高清视频在线观看 | 一区二区影院 | 婷婷日韩| 日韩影视精品 | 久久久国产影视 | 日韩网站一区二区 | 91精品色 | 9i看片成人免费看片 | 日韩网站在线观看 | 色综合网| 精品在线观看国产 | 国产91精品高清一区二区三区 | 又黄又爽又刺激的视频 | 中文字幕2021 | 在线观av| 色老板在线视频 | 又黄又爽免费视频 | 天天干天天操天天爱 | 国产小视频免费在线网址 | 国产精品99久久免费黑人 | 日韩欧美高清 | 国产精品免费观看久久 | 黄色网址在线播放 | 亚洲人人网| 狠狠干成人综合网 | 中文在线免费一区三区 | 久草视频在线播放 | 日韩av电影网站在线观看 | 婷婷九九 | 天天操天天干天天爽 | 69性欧美 | 麻豆国产露脸在线观看 | 乱子伦av | 天天躁日日 | 日韩av资源站 | 国内久久久久久 | 国产成人久 | 欧美大片www | 国产一级不卡毛片 | 一本一本久久a久久精品牛牛影视 | 手机在线观看国产精品 | www激情久久 | 国产尤物一区二区三区 | 久久久福利影院 | 91视频在线免费 | 欧美日韩天堂 | 国产成人一区二区精品非洲 | 精品电影一区二区 | 高清在线一区二区 | 天天天天天干 | 91在线永久 | 中文字幕乱码亚洲精品一区 | 亚洲精品一区二区三区高潮 | 在线观看免费av片 | 久久玖 | 国产一区二区三区高清播放 | 免费视频一二三 | 亚洲综合网 | 国产丝袜制服在线 | 97精品国产97久久久久久免费 | 中文字幕中文字幕中文字幕 | 国产91丝袜在线播放动漫 | 国产999精品| 精品一区二区三区四区在线 | 久久无码精品一区二区三区 | 91精品国产综合久久婷婷香蕉 | 国产一级片久久 | 欧美aaaxxxx做受视频 | 爱爱av在线 | 中文字幕影视 | 97狠狠操 | 亚洲午夜久久久久久久久电影网 | 免费在线观看av网址 | 亚洲片在线观看 | 久久久精品国产一区二区 | 中文字幕在线第一页 | 亚洲激情小视频 | 国产123av | 日韩在线观看你懂的 | 最近更新的中文字幕 | 欧美日韩中字 | 天天干夜夜夜操天 | 91在线视频播放 | 久久午夜精品 | 日韩有码专区 | 国产视频2区 | av免费观看网址 | 中文字幕免费观看视频 | 亚洲做受高潮欧美裸体 | 在线观看国产区 | 久久亚洲精品国产亚洲老地址 | 97国产精品久久 | 一区二区三区精品在线视频 | 91精品视频在线观看免费 | 色视频在线免费 | 综合网在线视频 | 国产精品自产拍在线观看中文 | 黄色视屏在线免费观看 | 亚洲成a人片综合在线 | 亚洲四虎在线 | 久草视频免费播放 | av丝袜制服| 国产一区二区手机在线观看 | www.91成人 | 99r在线| 国产成人区 | 一级黄色片在线免费观看 | 亚洲狠狠操 | 丝袜网站在线观看 | 97国产精品 | 五月天综合激情网 | 国产又粗又猛又爽又黄的视频先 | 在线 国产 亚洲 欧美 | 在线观看爱爱视频 | 国产123区在线观看 国产精品麻豆91 | 国产精品欧美久久久久无广告 | 日韩精品一区二区在线观看 | 国产一级免费电影 | 精品美女在线观看 | 国产69久久| 91精品网站在线观看 | 日日夜夜狠狠干 | 国产黄色片久久久 | av黄色在线观看 | 91在线最新| 色吧av色av | 97人人模人人爽人人少妇 | 91一区啪爱嗯打偷拍欧美 | 亚洲综合色婷婷 | 亚洲国产精品资源 | 国产91免费在线观看 | 欧美在线久久 | 欧美综合在线视频 | 欧美一区免费观看 | av免费在线网 | 国产一区二区观看 | 开心色插 | www天天操| 精品欧美乱码久久久久久 | 欧美另类z0zx| 久久免费的视频 | 91av中文| 99精品久久久久久久 | 99久久精品日本一区二区免费 | 国产精品免费观看网站 | 91精品国产乱码 | 在线免费黄色片 | 久久五月天婷婷 | 国产精品入口麻豆 | 中文字幕高清在线 | 免费十分钟 | 亚洲一区二区三区在线看 | 国产精品久久99综合免费观看尤物 | 日韩高清精品一区二区 | 欧美日韩一区二区三区视频 | 国产免费叼嘿网站免费 | 欧美另类69 | 欧美日韩色婷婷 | 日韩黄色在线电影 | 国产69精品久久久久久久久久 | 久久99精品久久久久久 | 亚洲精品成人av在线 | 国内精品久久久久 | 91色九色 | 久久兔费看a级 | 97理论片| 亚洲欧洲一区二区在线观看 | 亚洲午夜久久久久久久久久久 | 久久综合国产伦精品免费 | 国产精品2区 | 国产成人久久av977小说 | 国产精品久久精品国产 | 美女黄频在线观看 | 免费观看9x视频网站在线观看 | 欧美成人影音 | 国产精品自产拍在线观看桃花 | 国产精品毛片久久 | 成人黄色资源 | 国产永久免费观看 | 国产欧美中文字幕 | 69久久99精品久久久久婷婷 | 久久久精品国产一区二区三区 | 日韩一区二区三区免费视频 | 91精品国产三级a在线观看 | 国产视频中文字幕 | 草久久久久 | 天天做天天爱天天综合网 | 日韩三级.com | 免费观看成人网 | 黄色aa久久 | 免费福利在线播放 | 天堂资源在线观看视频 | 97人人看 | 在线观看中文字幕dvd播放 | 五月天综合网 | 欧美日韩一区二区久久 | 91av电影在线观看 | 日韩欧美高清一区二区 | 久久亚洲私人国产精品va | 国产流白浆高潮在线观看 | 五月婷婷av在线 |