線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1410
推到 Plurk!
推到 Facebook!

關於SetTimeFormat的錯誤...

尚未結案
vincentpan
一般會員


發表:3
回覆:11
積分:2
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-27 17:25:07 IP:61.221.xxx.xxx 未訂閱
我用的是BCB6 DSPACK 2.3.1, DSPACK部分已經安裝正確且可使用, 我程式中有ㄧ行: FilterGraph1->QueryInterface(IID_IMediaSeeking,&MediaSeeking); MediaSeeking->SetTimeFormat(&TIME_FORMAT_FRAME); <--錯在這行 MediaSeeking->GetDuration(&Max); 編譯可以過,但是Link的時候會發生如下錯誤: [Linker Error] Unresolved external '_TIME_FORMAT_FRAME' referenced from UNIT1.OBJ 請問有這方面經驗的前輩,我該引入啥檔案或怎麼處理嘛? 感激不盡~~ PS:BCB跟DSPACK搭配的資料實在少的可憐....
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-28 18:30:53 IP:220.135.xxx.xxx 未訂閱
你好:    看一下dspack的help,會不會是少include Uuids.h這個檔頭?    ------------------------------------------------------------------ HRESULT SetTimeFormat(const GUID *pFormat);    Parameters   pFormat  [in] Pointer to a GUID that specifies the time format.                  See Time Format GUIDs.     ------------------------------------------------------------------- Time Format GUIDs The following globally unique identifiers (GUIDs) define different time formats.    Declaration: Uuids.h.
GUID Description 
TIME_FORMAT_NONE        No format. 
TIME_FORMAT_FRAME       Video frames. 
TIME_FORMAT_SAMPLE      Samples in the stream. 
TIME_FORMAT_FIELD       Interlaced video fields. 
TIME_FORMAT_BYTE        Byte offset within the stream. 
TIME_FORMAT_MEDIA_TIME  Reference time (100-nanosecond units). 
發表人 - jerrykuo 於 2004/10/28 18:33:09
vincentpan
一般會員


發表:3
回覆:11
積分:2
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-29 08:13:55 IP:218.162.xxx.xxx 未訂閱
感謝您的答覆,不過我想應該不會沒有INCLUDE到, 因為我是LINK的時候錯的,不是COMPILER的時候...
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-29 15:46:16 IP:220.135.xxx.xxx 未訂閱
引言: 感謝您的答覆,不過我想應該不會沒有INCLUDE到, 因為我是LINK的時候錯的,不是COMPILER的時候... < face="Verdana, Arial, Helvetica"> 查了一下TIME_FORMAT_FRAME的原始定義,實在看不太懂, 可否請你寫的小範例程式,給大家試試?
// -- Well known time format GUIDs ---
  TIME_FORMAT_NONE: TGUID = (D1:$00000000;D2:$0000;D3:$0000;D4:($00,$00,$00,$00,$00,$00,$00,$00));
  {$EXTERNALSYM TIME_FORMAT_NONE}
  TIME_FORMAT_FRAME: TGUID = (D1:$7B785570;D2:$8C82;D3:$11CF;D4:($BC,$0C,$00,$AA,$00,$AC,$74,$F6));
  {$EXTERNALSYM TIME_FORMAT_FRAME}
  TIME_FORMAT_BYTE: TGUID = (D1:$7B785571;D2:$8C82;D3:$11CF;D4:($BC,$0C,$00,$AA,$00,$AC,$74,$F6));
  {$EXTERNALSYM TIME_FORMAT_BYTE}
  TIME_FORMAT_SAMPLE: TGUID = (D1:$7B785572;D2:$8C82;D3:$11CF;D4:($BC,$0C,$00,$AA,$00,$AC,$74,$F6));
  {$EXTERNALSYM TIME_FORMAT_SAMPLE}
  TIME_FORMAT_FIELD: TGUID = (D1:$7B785573;D2:$8C82;D3:$11CF;D4:($BC,$0C,$00,$AA,$00,$AC,$74,$F6));
  {$EXTERNALSYM TIME_FORMAT_FIELD}
  TIME_FORMAT_MEDIA_TIME: TGUID = (D1:$7B785574;D2:$8C82;D3:$11CF;D4:($BC,$0C,$00,$AA,$00,$AC,$74,$F6));
  {$EXTERNALSYM TIME_FORMAT_MEDIA_TIME}
vincentpan
一般會員


發表:3
回覆:11
積分:2
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-29 15:57:25 IP:218.162.xxx.xxx 未訂閱
感謝您的答覆... 1.我的程式不算小,所以要的話得另外寫一個SAMPLE, 我用到的功能是可以任意控制播放進度(不只DSTrackBar的控制), 預設的單位是毫秒(吧),我想改成FRAME比較好控制, 所以用到這個FUNCTION,卻帶來如此麻煩...Orz 2.我也查過INCLUDE檔裡的定義,跟你一樣看沒有, 也查過MSDN裡的,感覺上應該只是一個常數而已,卻這麼奇怪??? 3.後來我改用MediaPosition介面控制,已經解決我的問題了, 如果你有興趣研究這方面,我可以分享我的經驗..^_^
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-29 16:07:12 IP:220.135.xxx.xxx 未訂閱
引言: 感謝您的答覆... 1.我的程式不算小,所以要的話得另外寫一個SAMPLE, 我用到的功能是可以任意控制播放進度(不只DSTrackBar的控制), 預設的單位是毫秒(吧),我想改成FRAME比較好控制, 所以用到這個FUNCTION,卻帶來如此麻煩...Orz 2.我也查過INCLUDE檔裡的定義,跟你一樣看沒有, 也查過MSDN裡的,感覺上應該只是一個常數而已,卻這麼奇怪??? 3.後來我改用MediaPosition介面控制,已經解決我的問題了, 如果你有興趣研究這方面,我可以分享我的經驗..^_^
感謝,期待你的大作囉^^. 不過這個問題還要解決,dspack實在問題一大堆呢.不快弄清楚,事後才發 現有問題,當要抽身重來時就很辛苦囉。
vincentpan
一般會員


發表:3
回覆:11
積分:2
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-04 11:06:54 IP:163.17.xxx.xxx 未訂閱
哈,終於讓我查到少哪個lib了... 那就是 strmiids.lib ...import後就OK了~~~ but.... 我要控制的是QUICKTIME的影片,他居然會回傳說 不能改用FRAME的方式控制進度....Orz MediaSeeking->SetTimeFormat(&TIME_FORMAT_FRAME) -> 必回傳失敗.. 唉...怎麼這麼麻煩阿~~
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-04 11:24:14 IP:220.135.xxx.xxx 未訂閱
引言: 哈,終於讓我查到少哪個lib了... 那就是 strmiids.lib ...import後就OK了~~~ but.... 我要控制的是QUICKTIME的影片,他居然會回傳說 不能改用FRAME的方式控制進度....Orz MediaSeeking->SetTimeFormat(&TIME_FORMAT_FRAME) -> 必回傳失敗.. 唉...怎麼這麼麻煩阿~~
請問quicktime有控制速度的功能嗎?好像沒有,傳回失敗好像就是這個原因吧~~
vincentpan
一般會員


發表:3
回覆:11
積分:2
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-04 11:44:48 IP:163.17.xxx.xxx 未訂閱
剛試了一下,透過 SetRate(2.0) 的設定,即使是 播放QUICKTIME的影片也可以有兩倍速的效果, 不知道這樣是否是您說的"有控制速度的功能嗎"?? 我去網路上查,得到的結果都是說播放AVI檔案時, 單位設定成FRAME才會成功...
系統時間:2024-11-23 9:29:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!