青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

waveInReset/waveOutReset死鎖原因與解決方案

轉載自:http://blog.csdn.net/soliddream66/article/details/5353960

問題背景

 

錄音播音實際需求

1、隨時終止

2、錄音并非文件,而是形成rtp發(fā)送

3、播音并非源于文件,而是源于rtp

 

因此Waveform audio使用的buffer較小,不斷的裝載/發(fā)送 buffer,終止的時候Reset并且close.

大致如下調用的循環(huán)

 

錄音

waveInUnprepareHeader

waveInPrepareHeader

waveInAddBuffer

 

播音

waveOutUnprepareHeader

waveOutPrepareHeader

waveOutWrite

 

循環(huán)周期40ms,我采用的是回調函數。問題是有時候調用waveInReset/waveOutReset會形成死鎖,調用waveInReset/waveOutReset的線程與回調函數所在的線程死鎖在一塊了。

 

原因分析

這方面網上有文章提到,就是調用waveInReset/waveOutReset的同時調用了錄音/播音循環(huán)調用的某個函數會形成死鎖。我再稍作解釋下,我們知道buffer滿了或是調用Reset都會觸發(fā)消息(回調函數方式的話就是MM_WOM_DONE/MM_WIM_DATA),由于調用waveInReset/waveOutReset所在的線程,與回調函數所在的線程不是一個線程,因此很容易撞車,也就是說,你調用reset的時候,另一個線程正好在處理MM_WOM_DONE/MM_WIM_DATA,于是就這樣死鎖了。

 

解決方案

方案一

先加上標記(假設標記bReset:bool),令bReset為true;

 

標記作用如下

if(!bReset)

{

錄音

waveInUnprepareHeader

waveInPrepareHeader

waveInAddBuffer

 

播音

waveOutUnprepareHeader

waveOutPrepareHeader

waveOutWrite

}

延時調用waveInReset/waveOutReset,延時時間長度以循環(huán)周期為妙,我這個例子中也就是采用40ms。

 

當然也可以采用臨界保護。


方案二

換一個角度去考慮問題,之所以死鎖,是因為兩個線程沖突了的緣故,所以可以建立一個線程

錄音

waveInUnprepareHeader

waveInPrepareHeader

waveInAddBuffer

 

播音

waveOutUnprepareHeader

waveOutPrepareHeader

waveOutWrite

 

與waveInReset/waveOutReset都放到這個線程去處理,自然不會發(fā)生死鎖了。

posted on 2013-01-21 02:17 楊粼波 閱讀(2583) 評論(0)  編輯 收藏 引用 所屬分類: C++Windows

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩亚洲网| 老色批av在线精品| 亚洲欧洲精品一区二区三区| 久久综合999| 亚洲黄色精品| 亚洲美女淫视频| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲综合精品自拍| 久久av一区二区| 亚洲精品午夜| 亚洲尤物在线| 亚洲黄色影片| 亚洲天堂av图片| 精品电影在线观看| 亚洲毛片在线观看.| 国产伦精品免费视频| 免费日本视频一区| 免费在线成人av| 一本色道**综合亚洲精品蜜桃冫| 欧美日韩岛国| 久久av一区二区三区漫画| 久久亚洲精品欧美| 亚洲午夜国产成人av电影男同| 亚洲永久免费| 亚洲精品久久久久久久久久久| 99国产精品一区| 好看的av在线不卡观看| 日韩视频中文| 亚洲第一天堂无码专区| 亚洲免费黄色| 狠狠干综合网| 亚洲欧美成人一区二区三区| 亚洲日韩中文字幕在线播放| 亚洲欧美亚洲| 羞羞答答国产精品www一本 | 欧美第一黄色网| 久久久精品国产免大香伊| 亚洲免费观看高清在线观看 | 欧美国产先锋| 国产视频一区二区三区在线观看| 91久久精品日日躁夜夜躁国产| 国产亚洲一区二区精品| 日韩视频―中文字幕| 亚洲国产成人av好男人在线观看| 亚洲欧美久久| 亚洲一区二区3| 欧美激情一区二区三区成人| 美日韩精品视频| 国产一区二区三区黄| 亚洲一区二区三区影院| 一区二区三区成人精品| 欧美成人综合网站| 欧美不卡一卡二卡免费版| 久久久久88色偷偷免费| 蜜臀va亚洲va欧美va天堂| 亚洲综合色婷婷| 欧美人妖在线观看| 亚洲第一精品在线| ●精品国产综合乱码久久久久| 欧美在线免费播放| 久久国产视频网站| 国产亚洲精品久久飘花| 亚洲免费中文字幕| 欧美一级夜夜爽| 国产日产亚洲精品系列| 亚洲欧美成aⅴ人在线观看| 午夜在线a亚洲v天堂网2018| 国产精品高潮呻吟久久| 亚洲一区二区在线| 久久精品国产成人| 国产在线乱码一区二区三区| 久久精品成人| 亚洲福利专区| 一区二区三区日韩| 国产精品视频xxx| 欧美一级一区| 欧美成人黑人xx视频免费观看| 亚洲丰满少妇videoshd| 欧美激情1区| 一区二区av| 久久精品欧洲| 亚洲日本va在线观看| 欧美日韩精品是欧美日韩精品| 中文国产成人精品| 久久精品最新地址| 亚洲精品乱码久久久久久日本蜜臀| 欧美精品v国产精品v日韩精品| 一区二区三区四区国产| 久久精品男女| 日韩视频精品| 国产精品日本欧美一区二区三区| 欧美一区综合| 亚洲精品小视频| 欧美伊久线香蕉线新在线| 亚洲国产精品久久精品怡红院| 欧美精品手机在线| 性欧美xxxx视频在线观看| 欧美粗暴jizz性欧美20| 在线视频你懂得一区二区三区| 久久精彩视频| 在线亚洲观看| 亚洲老板91色精品久久| 欧美一区二区成人| 亚洲成人自拍视频| 国产精品毛片一区二区三区| 久久午夜影视| 亚洲主播在线播放| 91久久国产综合久久蜜月精品| 欧美在线播放| 一区二区三区av| 在线观看亚洲精品视频| 国产精品国码视频| 欧美好吊妞视频| 久久大香伊蕉在人线观看热2| 亚洲精品中文字幕女同| 欧美91精品| 久久精品国产精品| 亚洲欧美文学| 亚洲色图自拍| av成人手机在线| 亚洲国产欧美一区| 精品不卡在线| 国产一区二区三区自拍| 国产老女人精品毛片久久| 欧美精品一区二区三| 国产一区91| 性感少妇一区| 日韩亚洲综合在线| 影音先锋在线一区| 激情文学一区| 国产一区二区三区丝袜| 国产精品视频福利| 国产精品久久久久久久久搜平片| 欧美人与禽猛交乱配视频| 欧美黄免费看| 欧美电影在线免费观看网站| 免费观看在线综合色| 免费观看成人| 欧美成人乱码一区二区三区| 免费日韩一区二区| 免费看黄裸体一级大秀欧美| 久热综合在线亚洲精品| 久久综合中文| 欧美成人免费网站| 欧美日韩视频在线一区二区观看视频| 欧美激情亚洲一区| 欧美日本国产一区| 欧美体内谢she精2性欧美| 欧美视频一区二| 国产精品香蕉在线观看| 久久久午夜精品| 中文一区字幕| 亚洲午夜国产成人av电影男同| 一区二区三区欧美日韩| 午夜精品久久久久久久久| 亚洲欧美在线播放| 欧美综合国产精品久久丁香| 久久在线91| 亚洲第一精品夜夜躁人人爽| 亚洲日本成人网| 亚洲一区二区不卡免费| 久久久777| 欧美精品色网| 国产日韩精品在线| 亚洲黄色在线看| 亚洲欧美日韩一区| 美女精品网站| 一区二区日本视频| 久久精品视频一| 欧美日本高清视频| 国产专区精品视频| 亚洲男人av电影| 亚洲午夜一级| 性做久久久久久| 欧美成人午夜免费视在线看片| 欧美多人爱爱视频网站| 久久久久久噜噜噜久久久精品| 久久手机精品视频| 欧美久久婷婷综合色| 国产免费一区二区三区香蕉精| 在线日韩中文字幕| 亚洲——在线| 欧美高清在线精品一区| 亚洲一区自拍| 欧美成人嫩草网站| 国内视频一区| 亚洲欧美视频在线观看| 亚洲激精日韩激精欧美精品| 午夜视频一区二区| 欧美日韩一区在线| 亚洲高清免费视频| 久久精品三级| 宅男精品视频| 欧美—级高清免费播放| 精品999在线观看| 欧美影院一区| 亚洲午夜一区二区三区| 欧美日韩国产在线看| 久久久久综合网| 小辣椒精品导航|