GithubHelp home page GithubHelp logo

ci7lus / miraktest Goto Github PK

View Code? Open in Web Editor NEW
61.0 5.0 6.0 5.86 MB

Mirakurun 用映像視聴アプリ実装研究資料

License: MIT License

HTML 0.17% JavaScript 0.27% TypeScript 98.39% SCSS 0.21% Shell 0.55% PowerShell 0.40%
mirakurun dtv mirakc isdb vlc-libvlc webchimera libvlc macos

miraktest's People

Contributors

ci7lus avatar private-yusuke avatar rokoucha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

miraktest's Issues

再生停止と再生を無限に繰り返すことがある

df25596 として修正を試みたが治ってなさそうなのでrevして起票

過負荷状態や複数回リロードを繰り返した状態だと起きやすい気がする
callbackによる値の変化とユーザーの目的値が同期されてるのが根本的な問題なんだけど、逆反映とかのことも考えるとスパッと倒せる方法があんま考えつかない
明示的な再生と停止の際に別途その時間を記録しdiffが500msを超えたら操作を無視する?

長さが固定のTSを飛ばしながら再生できるように

  • 再生バーをposition判定で実装したが、巻き戻して===0になったときに非表示になったまま戻せなくなる
  • 秒数を取得できている場合に再生位置・ホバー部分時間を表示するようにし、30秒飛ばす系統のボタンも表示する

Windows版v2.0.0-RC1にてUI表示時にsetWindowButtonVisibility呼び出しエラー

環境

試したバージョン: MirakTest-2.0.0-rc.1-win
Windows10 21H2で実行.

内容

画面にカーソルを乗せてUI表示されたタイミングでエラー発生

エラー文

Error occurred in handler for 'set-window-button-visibility': TypeError: r.setWindowButtonVisibility is not a function
    at C:\Users\unyacat\Downloads\MirakTest-2.0.0-rc.1-win\resources\app.asar\dist\main.electron.js:1932:283733
    at node:electron/js2c/browser_init:189:579
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:161:11327)
    at EventEmitter.emit (node:events:526:28)

番組表

しょぼいカレンダーとかと連携できればなお良い


タスク by at ci7lus

  • 基本実装 @ ca16988
  • 番組の詳細情報を出す
  • ドラッグスクロールをつける @ e0624da
  • サービス切り替え(他ウィンドウのサービスを切り替えられる必要がある)暫定@ 860292b
  • 詳細な絞り込み・検索(別タスクに分割もあり)
  • 番組に対して操作を行うためのAPIを追加する(別タスクに分割もあり)
  • 番組データ更新時に表示がリアルタイムに更新されるようにする

固定長ファイル再生時に異常に先読みすることがある

全部読みだそうとしている?(当環境では上限の20MB/sぐらい読み出す)
関係ありそうなVLC Argは次の通り

  • --prefetch-buffer-size
  • --prefetch-read-size
  • --prefetch-seek-threshold

これのうち --prefetch-seek-threshold を0にすると再生が始まらないが、1にするとめっちゃ読み出す
番組が短い「ガルパ☆ピコ ふぃーばー! #\1」で検証したが、最初に再生ファイルを読み込んだ後は、視聴終了後まで1MBを超える通信が走らなかったので、全て読み込んでいるものと推察
VLC.app単体で視聴すると2MB程度の読み込みのため、WebChimera.js側?

image

プラグイン管理機能

必要ないプラグインは切れるようにしたい

  • プラグイン一覧の実装
  • メインプロセスとのすり合わせ
  • プラグイン管理機能をつける
  • 再起動を待たずに即反映されるようにする

Windows版v2.0.0-RC1にて実行時にfont-listロードエラー

環境

試したバージョン: MirakTest-2.0.0-rc.1-win
Windows10 21H2で実行.

内容

実行直後

エラー文

globalScreenshotAccelerator繧定ィュ螳壹@縺セ縺励◆ undefined
莉・荳九・蜷榊燕縺ォ蜷郁・縺吶k繝励Λ繧ー繧、繝ウ繧堤┌隕悶@縺セ縺・ []
Error: spawn EPERM
    at ChildProcess.spawn (node:internal/child_process:413:11)
    at spawn (node:child_process:709:9)
    at Object.execFile (node:child_process:336:17)
    at t.<computed> [as execFile] (node:electron/js2c/asar_bundle:5:2208)
    at exec (node:child_process:234:25)
    at node:electron/js2c/asar_bundle:5:12704
    at C:\Users\unyacat\Downloads\MirakTest-2.0.0-rc.1-win\resources\app.asar\node_modules\font-list\libs\win32\getByPowerShell.js:33:3
    at new Promise (<anonymous>)
    at module.exports (C:\Users\unyacat\Downloads\MirakTest-2.0.0-rc.1-win\resources\app.asar\node_modules\font-list\libs\win32\getByPowerShell.js:30:24)
    at module.exports (C:\Users\unyacat\Downloads\MirakTest-2.0.0-rc.1-win\resources\app.asar\node_modules\font-list\libs\win32\index.js:25:21) {
  errno: -4048,
  code: 'EPERM',
  syscall: 'spawn'
}

v2.0.0-beta.2 で再生できなくなる

OS: macOS Monterey 12.0.1 aarch64 (Rosetta 2)
Mirakurun: v3.5.0

現象:いかなるサービスでも「映像の受信に失敗しました」となる

Mirakurun logs:

0|mirakurun-server  | 2021-12-11T17:17:06.077+09:00 info: 192.168.1.199 - GET /api/services/3273601024/stream HTTP/1.1 403 - - 3.187 ms VLC/3.0.16 LibVLC/3.0.16 vlc-miraktest (+https://github.com/vivid-lapin/vlc-miraktest)
0|mirakurun-server  | 2021-12-11T17:17:06.086+09:00 info: 192.168.1.199 - GET /api/services/3273601024/stream HTTP/1.0 403 - - 0.411 ms VLC/3.0.16 LibVLC/3.0.16 vlc-miraktest (+https://github.com/vivid-lapin/vlc-miraktest)

なお、EPGStation を用いる再生は異常なし。

playingContentのウィンドウ間同期が無限ループすることがある

ループしてるのがplayingContentかどうかもわからない、activeWindowIdの変更がループしてる気もするが
次発現したときに要確認
1c06acf
多分ここでstringifyで比較するようになったのが原因?な気がするがよくわからない、idとdurationだけ見るようにしてもいいけど、そもそもウィンドウ間ではkeyごと1秒に1回ぐらいしか更新できないようにしたほうがいいのかもしれない

Windows版v2.0.0-RC1にて、プラグインフォルダが開けない

「設定」から、「プラグインフォルダを開く」を選択すると、以下のメッセージが出て
プラグインフォルダが開けない。

'-------------------------------------------------
'C:\Users\hoge\AppData\Roaming\MirakTest/plugins' が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。
'-------------------------------------------------

・・・\MirakTest/ ←ここが /(スラッシュ)になっているのが原因だと思います。
確認の程よろしくお願いします。

macOSフレームレスウィンドウ

よくわからない、正しくイベントが発火していない気がする…
framelessであればstyleでネイティブのドラッグ移動が利用可能になるが、macOS以外での表示が絶望的なのでフレームをあまり消したくない… click判定が消失するらしくて無理

TSの再生時にレンダラがスタックすることがある

[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping P slice due to !sync
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP
[mpeg2video @ 0x7fa32b861200] Skipping B slice due to open GOP

macOS HiDPI でメニューが大きすぎる

MirakTest を開発してくれて、いつもありがとうございます。

HiDPI の macOS 環境において、個人的にはメニューがデカすぎるではないかと思います。

もしこれは意図的であれば、この issue を close しても良いと思います。

image

番組表をメインプロセスで管理する

レンダラープロセス側で個別に取得しているのは重すぎるし取り回しづらい
一元的に取得、更新できる何かを用意して、取得クエリをhandleできるようにしたい

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.