日別アーカイブ: 2014/01/26

Gst step

Y901x 1.1.0 を公開。
多重起動防止は行わないけど GtkApplicationWindow 化。
アプリケーションメニューに About を移動、新しいウインドウ追加。

つまり今の GNOME アプリっぽくしたかっただけ。
次でメニューバーを取っ払う予定、どうにでもなれ。

おまけでポーズ時のみ左右矢印キーでコマ送りできるように。
しかし Gst.Event.new_step() 関数ではゼロ以下の指定ができない。
ようするにコマ送りはできるけどコマ戻しはできない。

self.player.seek() の第一引数をマイナスにすると逆転再生できる。
実はその状態でコマ送りするとコマ戻しになる、なんとも変な感じだけど。

なので一度逆転させて送った後に元に戻せばイケるはず。
なんだけどちっとも上手く動作してくれないんだな、これが。

tinbergen/tinbergen.py at master ? biogeo/tinbergen ? GitHub

PyGtk の頃から同じだったみたい。
やっぱりみんな最初はそうしようとするよね。

しかたがないのでフレームレートから自力計算でシーク処理。
したんだけど上手く動くファイルがほとんどないや。
GstSeekFlags をどう変更しても変わらないってどうよ。

二秒送りとかなら少しはマシだけどソレさえ綺麗に動かない場合がある。
Avidemux くらいの細かいコマ戻しが理想なんだけど、どうすれば…

ちなみに上記をまんま PyGI 化してもフレームレートは取得できない。

framerate = 0

vsink = self.player.props.video_sink
if vsink:
    for pad in vsink.pads:
        caps = pad.get_current_caps()
        success, num, denom = caps.get_structure(0).get_fraction('framerate')
        framerate = num

こんな方法を使ったけどもっとイイ方法があるかも。