發表文章

目前顯示的是 5月, 2018的文章

Notepad++ Win10 1803 文字顯示錯誤

https://notepad-plus-plus.org/community/topic/15758/some-characters-are-not-displayed-unicode 原本字形Courier New,要改成別的字型就可以 看起來應該是Win10字型機制的部分有修改到,細節還不清楚 可是notpad就顯示正常 ? M$又偷改東西沒通知自己偷用了嗎?

Windows 10 更新停止方法,stop/disable Windows update

圖片
更新1803時查到的方法,新版本應該還適用 1803問題滿多的,建議暫時不要裝,先觀望 我不想裝1803 就是延後多少天安裝 調這樣後就按更新就不會找到了 這文字好像會讓人誤解,我只是想要有安裝的自主權 不一定是想延後幾天才裝,如果沒看到災情,我會馬上裝 可是這設定,天數沒到按更新不會顯示 如果已經在更新中,也有辦法強制停掉 ↑在執行打services.msc,去service把windows update關掉後,可以強制停止進行中的更新 停掉更新把上面天數調整完,記得再打開,否則收不到安全性更新 主要版本的更新建議觀察一陣子沒災情就可以更新了,都不更新會有問題的

AppVeyor 要開始砍Arifact了

圖片
6/11 設定deploy到github後已解決問題,除了忘記更新的應該都沒問題 6/xx 目前AppVeyor是決定6個月了,OBS Studio再觀望 到時候有問題就再找個可直連的空間 我也算是其中一個濫用者吧,有空該想想檔案該怎麼處理了 OBS Studio應該不會被影響,以目前的更新頻率3個月沒動應該不可能 擁有的專案以後就改上傳到github,不能偷懶了 (目前也只有一個 suspend ) 其他非我個人的就不理了 (Chatty及 OBS Classical)

OBS 實況顯示VNR翻譯的遊戲文字, display VNR (visual novel reader) translation

圖片
需要使用修改過的VNR (主要由 kyob1010 完成) 及OBS (修改過的obs-text.dll) 不想安裝新的可以只換掉關鍵檔案 (版本太舊會出問題,建議用已整合完的版本) 詳細安裝方法請看VNR, OBS各別文件 限制: 不能有多個不同名的obs-text同時使用vnr mode (因為我懶得處理,應該很少用到) 2019/6/26 提高效能,需要更新後才能用或都不更新 (VNR和OBS必須是同一機制) 2019/1/9 提高效能,需要更新後才能用 (或是都不更新留在舊版) VNR (visual novel reader) 不放在github的原因是檔案太大 limit會超過,就選了gitlab https://gitlab.com/craftwar/VNR_OBS kyob1010寫的說明文件 https://gitlab.com/craftwar/VNR_OBS/blob/master/README%20for%20VNR_OBS.txt 有問題要問 kyob1010,py我不熟,我只修改windows api的部分 回報問題前先閱讀 https://craftwarblog.blogspot.com/2018/07/how-to-report-bugs-effectively.html 除錯時,依文件說明使用debug mode檢查視窗全部輸出 (不是輸出停止的最尾端畫面而已) 建議複製到文字檔內再看,非常長,通常會寫錯誤原因 VNR常見問題 https://craftwarblog.blogspot.com/2018/12/vnr-visual-novel-reader-faq.html 一般使用者下載這個就好 (沒有多餘的修改,只加上OBS輸出功能) 如果VNR版本太舊,手動patch可能會錯誤,可下載包好的 Jichi版本 + OBS 輸出patch https://mega.nz/#!l0tHzI6Z!ZMjs_cE46atvjoQIGyV4zCXnDI_FSdZ8NjrHV-3Af7Y (我包的) 原先使用的VNR內的Cache目錄複製進去,避免缺少字典檔或其他檔案,導致問題 或用mklink建立連結,不用複製Cache目錄 (空間只需要一份) https://docs.

C++ Lambda

在改obs-text的時候,想到C++11有lambda,想用到Windows callback 語法上應該這樣改 ::EnumWindows([](HWND hwnd, LPARAM lParam) -> BOOL {     TextSource* _TextSource = reinterpret_cast<TextSource *>(lParam);     return !_TextSource->get_song_name(hwnd); } , reinterpret_cast<LPARAM>(this)); 實際上會錯誤,去查了 http://en.cppreference.com/w/cpp/language/lambda 才知道lambda實際上是透過一個隱藏的class來實作的,所以會有一些限制 call convention會因為內容改變,用到class method就不行啦 不能轉成windows sdk要的 stdcall

Windows SDK 筆記

Global\ Local\ 差別在session,service或Remote Desktop在session 0,要用global才能溝通 其他一般application可以用local SetClipboardData 似乎要檢查return看有沒有成功,沒成功要globalfree (from NotePad++ commit) 否則會有memleak 基本上現在除了OS功能,很少人用這個寫UI了,通常用Qt

don't name git branch as 'tag'

$ git push fatal: The current branch tag has no upstream branch. To push the current branch and set the remote as upstream, use     git push --set-upstream origin tag $ git push --set-upstream origin tag fatal: tag shorthand without <tag> use this command instead git push --set-upstream origin tag:tag

C++ index loop vs range-based for

以OBS Studio的code為範例 VS2017 15.7.1 release with pdb build 這邊我把兩種方式都寫進去,是為了方便比較asm,實際上只會選一種來用 (2)會轉成iterator的方式 http://en.cppreference.com/w/cpp/language/range-for (2)產生的asm會比(1)快 OBS是用(1),我在修其他bug時看到,就順手改成(2)丟給官方了 稍微想一下就知道index會比較慢了,每個loop都要算 volumes + i*n (array element大小) (2) 每個loop只要 vol += n 這邊我沒想到Jim會連這個也要求要照coding style,就直接寫auto& i了 想說是trivial的東西,因為每個範例都這樣寫 被要求改成 auto &vol void OBSBasic::ClearVolumeControls() {     //(1)     VolControl *control;     for (size_t i = 0; i < volumes.size(); i++) {         control = volumes[i];         delete control;     }     //(2)     for (auto &vol : volumes)         delete vol;     volumes.clear(); } asm code https://hastebin.com/jasikeqada.pl void OBSBasic::ClearVolumeControls() { 00007FF61D43C0B0 mov qword ptr [rsp+8],rbx 00007FF61D43C0B5 mov qword ptr [rsp+10h],rbp 00007FF61D43C0BA mov qword ptr [rsp+18h],rsi 00007FF61D43C0BF push rdi 00007FF61D43C0C0

OBS ndi 把影像傳到另一台電腦做壓縮, transfer video to another computer for encoding

NewTek's NDI® 是透用IP來傳送影音的技術 安裝這個plugin後,OBS就能使用NDI接收和傳送,正常是把ip camera拿來用 這個plugin會用到Qt,要自己build的必需和OBS所用Qt同版本,OBS更新可能就要更新 https://github.com/Palakis/obs-ndi 遊戲機把影像和丟出去,不做h264壓縮 (x264或硬體,交給另一台電腦來處理),降低系統使用資源 NDI在傳送時還是會壓縮 (比h264運算量少,資料比較大,會吃更多網路頻寬) 完全不影響遊戲機要用擷取卡/盒,讓另一台電腦擷取畫面實況,NDI只是省錢的替代方案 兩台電腦整體消耗資源會增加,如果電腦直接壓縮沒問題就不推薦 目前多數是高品質實況會影響遊戲體驗,用兩台高等級電腦來實況? 新版改善硬體壓縮後,對遊戲影響變小,也許不太需要了? (v23後新增功能) https://obsproject.com/mantis/view.php?id=610

講個我爸hinet 網路升速的笑話

因為hinet一直打電話來,我爸覺得太煩了,就答應升速了 20->35M 結果測速的數值 17,xxM,這樣根本差太多了吧,35M怎麼樣也該跑到2x 18M不到,根本用原本的20M就差不多跑這個數字了 他平常的使用習慣,只用手機,也不太看影片 就算35M能跑到,也沒有升級的價值 hinet的人來把p874換成p880就能跑到35M了 我爸最後有聽我的話,把網路退掉不升速, 換到一台p880

Qt style note

暫存區,還會修改 QWidget. setStyle() 不會拿ownership,要用setParent()才會一起清掉 我修正OBS一個memory leak ? QString styleName = slider->style()->objectName(); QStyle *style; style = QStyleFactory::create(styleName); if (!style) {     style = new SliderAbsoluteSetStyle(); } else {     style = new SliderAbsoluteSetStyle(style); } style->setParent(slider); slider->setStyle(style);

Use findstr on Windows to find text in files and command outputs

https://www.ghacks.net/2018/05/04/use-findstr-on-windows-to-find-text-in-files-and-elsewhere/ 1709似乎沒有這個指令,等更新後?

Windows win hotkey, 熱鍵

 win + https://www.techrepublic.com/blog/windows-and-office/the-complete-list-of-windows-logo-keyboard-shortcuts/ Windows+Ctrl+Shift+B 重啟顯卡驅動,可暫時解決win10 1803,chrome卡住的問題 reset graphic card driver 解決一些遊戲lag,或是記憶體無法釋放問題 Ctrl+Windows logo key +B     Switch to the program that displayed a message in the notification area.

Android VLC 中文字幕無法顯示/亂碼,display Chinese subtitle incorrectly

測試環境 Android 6.01, VLC player 3.05 字幕會變成方塊/亂碼,無法正常顯示,原因為VLC找不到字型或編碼有錯 這可能非最佳解法,對Android沒那麼熟 首先要先確認字幕檔編碼和VLC設定一樣 (自動偵測錯誤時,改utf-8通常能解決) 如果編碼沒錯,下一步是修正缺少的字型 下載google提供的NotoSansCJK-Regular.ttc字型 https://github.com/googlei18n/noto-cjk/blob/master/NotoSansCJK-Regular.ttc 或 https://www.google.com/get/noto/help/cjk/ 把 NotoSansCJK-Regular.ttc 複製到 /system/fonts/就可以了 (需要root或adb) 如果要讓其他app使用這個字型,應該還要修改/system/etc/fonts.xml 詳細改法,有興趣的人可以google看看,我沒有處理 這個修正法背後的原理,VLC寫死使用的字型 實際上,不是每隻手機都有預裝這字型 (google的原生系統有,其他家沒放?) http://git.videolan.org/gitweb.cgi/vlc.git/?p=vlc.git;a=blobdiff;f=modules/codec/libass.c;h=8004feb138ecad850106f015cb12fe38c0611e94;hp=8a73497422aa17c8d3f032e795a37cc67b2cd131;hb=8a15910d9f8e7d860f29d0e9803c756970d8cf74;hpb=4b898d321d77436204b573d066c61261d037f275 正確的方法,應該Android VLC要提供設定字幕字型 (desktop版就有這設定) MX Player字幕顯示就沒有問題,個人感覺效能上MX Player也比VLC好 VLC強在整體功能比較多 (也比較肥大)