Fedora 38 mpv

Fedora 38 にしてから動画のハードウエアアクセラレーションが効かない。
それどころか純正の Totem で何も再生できない、なんだこれ。
何度かアップデートしたけど改善しない、バグってことじゃないみたい。
ということでそろそろ本気で原因追求を。

Intel Graphics – Best practices and settings for hardware acceleration?

libva-intel-driver と libva-intel-hybrid-driver は?
書いていないけど Intel グラの人はコレいります、NVidia とかは知らん。

intel-media-driver が入っていなかったので dnf で導入。
LIBVA_DRIVER_NAME 定義は多分 GStreamer しか関係ないと思うけど一応。

それだけで Totem 再生が可能に、アクセラレーションもバッチリ。
mpv は何も変わりません、なんじゃそれ!
Totem ならアクセラレーションが動くんだから mpv だけの問題か。

mpv – ArchWiki

改めて設定を弄くってみたけど改善しない。
下のほうに書いていた -v オプションで長いログとにらめっこする。

mpv -v 4Kvideo.mp4
...
...
...
[vd] Codec list:
[vd]     libopenh264 (h264) - OpenH264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[vd] Opening decoder libopenh264
[vd] No hardware decoding available for this codec.
[vd] Using software decoding.
...
...

H.264 デコーダーが libopenh264 しか見つからない、ということみたい。
でもってコイツはハードウエアデコード未対応、原因はコレか。
というかそもそも ffmpeg 純正デコーダーは入っていない、ということを発見。

Fedora 38 Install | Paepoi Blog

ffmpeg-free が省いたのは wmv だけじゃなかったのね。
使い物にならねぇパッケージ作るなら最初から「自分で入れろ」でいいよ。
ということで普通の ffmpeg に上書きします。

sudo dnf install --allowerasing ffmpeg

mpv でアクセラレーションが動くようになりました。
ついでにやはり wmv が再生及びサムネイル可能になりました。
今後 Fedora アップグレード毎にこれやらなきゃいけないんだろうな多分。

Deny Flatpak

我が自作アプリ Comipoli のアイコンが反映されなかった件。
Fedora 38 のアップデートを掛けたら普通に反映されました。
なんだ初期不具合だったのか、よかったよかった。

ということでそのまま公開することに。
って cbz 観覧アプリが必要な人少ないし GTK+ 4.10 の参考にでも。
サムネイルダイアログも GtkDialog のままだったので変更。

ところで。
アーカイブを作ろうと file-roller を gnome-softwere から入れる時。
またしても FlatPak 指定のままインストールボタンを押してしまった。
バグなのか仕様なのかキャンセルできない、遅すぎてイライラするだけ。
このゴミクソ機能なんとかならんか!

rpm

dconf-editor で探したらこんな設定があったわ。
rpm だけ残して摘要、これでデフォルトが rpm になるじゃん。
てかアプリの仮想化なんてデフォルトにする必要あるか?
必要な時には選べますにすればいいじゃない、と思うけど。

Gtk.FileDialog

Gtk.FileDialog

GtkDialog 関連が廃止予定なので GTK+ 4.8 の間に置き換え。
と早めにしようとしたら GtkFileDialog が 4.10 にならないと用意されない。
ということでのんびり 4.10 を待っていたのは筆者だけではないと思う。

FileChooserDialog は GtkDialog ベース。
GtkDialog は GtkWindow ベース、更に GtkWidget ベース更に…
継承の仕組みとはいえ限られた用途な部品とは思えない作りだった。
GtkFileDialog は GObject からの単一継承と解りやすくなった。

いやそんな細かいことはどうでもいいですよね。
とっととサンプルコード。

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw, Gio

WRITE_TEXT = 'Python 文字列は UTF-8 に変換する'.encode('utf8')

class Win(Gtk.ApplicationWindow):
    '''
        GtkFileDialog: Sample Code
    '''
    def __init__(self, a):
        # Set Adwaita Style
        manager = Adw.StyleManager.get_default()
        manager.set_color_scheme(Adw.ColorScheme.DEFAULT)
        # init
        Gtk.ApplicationWindow.__init__(self, application=a)
        # Button
        button_open = Gtk.Button(label='_Open', use_underline=True)
        button_open.connect('clicked', self.on_button_open_clicked)
        button_save = Gtk.Button(label='_Save', use_underline=True)
        button_save.connect('clicked', self.on_button_save_clicked)
        button_old = Gtk.Button(label='_GtkFileChooserDialog', use_underline=True)
        button_old.connect('clicked', self.on_button_old_clicked)
        # box
        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        vbox.append(button_open)
        vbox.append(button_save)
        vbox.append(button_old)
        self.set_child(vbox)

    def on_button_open_clicked(self, button):
        dlg = Gtk.FileDialog()
        dlg.open(self, None, self.on_open_dlg_callback)

    def on_open_dlg_callback(self, dlg, res):
        try:
            f = dlg.open_finish(res)
            print(f.get_path())
        except Exception as e:
            print('Cancel')

    def on_button_save_clicked(self, button):
        dlg = Gtk.FileDialog()
        dlg.save(self, None, self.on_save_dlg_callback)

    def on_save_dlg_callback(self, dlg, res):
        try:
            f = dlg.save_finish(res)
            stream = f.replace(None, False, Gio.FileCreateFlags.NONE)
            stream.write(WRITE_TEXT)
            stream.close()
        except Exception as e:
            print('Cancel')

    def on_button_old_clicked(self, button):
        dlg = Gtk.FileChooserDialog(title='Open', action=Gtk.FileChooserAction.OPEN, modal=True)
        dlg.add_buttons('_Cancel', Gtk.ResponseType.CANCEL, '_Open', Gtk.ResponseType.ACCEPT)
        dlg.set_transient_for(self)
        dlg.connect('response', self.on_open_dlg_response)
        # CSS CLASS
        dlg.get_widget_for_response(Gtk.ResponseType.ACCEPT).add_css_class('suggested-action')
        # Gtk.Widget.show() is deprecated
        dlg.set_visible(True)

    def on_open_dlg_response(self, dlg, response_id):
        if response_id == Gtk.ResponseType.ACCEPT:
            f = dlg.get_file()
            print(f.get_path())
        dlg.destroy()

app = Gtk.Application()
app.connect('activate', lambda a: Win(a).present())
app.run()

filedialog

GtkFileChooserDialog は GTK+ 4.10 でもエラーにはなりません。
AppKit|UIKit 同様に廃止予定にして頃合で削除するみたい。

open と save の振り分けはプロパティではなく関数になりました。
複数選択の指定も関数になったけど説明はいらないよね。
シグナルではなくコールバック関数にて処理だけどあまり変わらない。
GtkDialog とは違い自前で破棄する必要は無くなったようです。

open file

ACCEPT ボタンは CSS 指定せずとも勝手に青くなります。
GtkFileFilter は default-filter プロパティで指定可能。
後は公式を見れば使い方は解ると思う。

ついでに気がつく、Gtk.Widget.show|hide も廃止なんだね。
visible プロパティと被っていたし整理したのかな。

ところで WordPress のアップロードがこの FileDialog になった。
複数選択ができないんですけど、一個づつアップロードするのメンドイ。

ということで我が Comipoli も更新しようと思ったのですが。
svg アイコンが摘要されない、128×128 強制になったのだろうか?
現在 Boxy SVG というアプリと格闘中、ということで。

kiji

昨日今日と夏鳥を求めて歩き回って成果はゼロ。
キジなら何故か簡単に見つかってこんなカッコイイ写真が撮れるのに。
筆者は今年も夏鳥とは相性が悪いのか。。。。。

Fedora 38 Install

Fedora 38 への更新通知が出た、早すぎてビックリ。
今回は面倒くさいけどクリーンインストール。
レンダラ廃止等 GTK+ の改訂が何かに影響しそうなので様子見。

Fedora Workstation | The Fedora Project

現状の $HOME 以下をバックアップ。
x86_64 の iso を落とす、USB メモリをパソコンに差す。
iso のコンテキストメニューから「Open With…」を選択。

writer

「ディスクイメージライター」を選択し USB メモリに書き込む。
差したままパソコンの電源 OFF、SSD を取り替える。
再起動時に BIOS にて起動順序を USB メモリ優先に変更。
後は指示に従う、ほんの数分でクリーンインストール完了。

さてデフォルト状態でに確認だ。
フォントがちょっぴり綺麗になった以外は何も変化が無いように見える。
いや、Anthy の PageDown が最初から動作するように改善されていた。

Nautilus のリネームで入力メソッド切り替え初回が無視されるのは同じ。
Nautilus のブックマークが ~/.config/gtk-3.0/bookmarks と変なのも同じ。
てゆーか gnome-terminal のままなのか、kgx への移行はいつなのか。
gnome-texteditor は外部ツール付けて、コレじゃ Gedit から移行できない。

avif や heif にはまだ対応していない、ずるつもりがないのかも。
デバイス名変更でドメイン指定できるようにしてほしいないいかげんに。
gnome-softwere は Flatpak がデフォルトなのをヤメてくれないか?
RPM に毎回変更するの面倒、てか間違えたらキャンセルできないんだがバグ?

ffmpeg

ffmpeg は ffmpeg-free というパッケージで最初から入っていた。
動画の回転等はコレで普通にできたのでこれのままで問題は無いかと。
ただその影響なのか、またしても wmv の再生ができなくなっている。
なんと mpv にも弾かれた、プロプライエタリ排除なんだろうか。

Fedora Tips – Paepoi

fedora

何も変わっていなかった、書き換えするネタが欲しいくらいに。
え?まだ SkyLake のままだよ、RAW 現像とかは M1 Mac でヤルし問題ない。

まて 4k 動画がガクガクだ、ハードウエアアクセラレーションが動いていない。
バグなのか他に何か入れなきゃなのか今はワカラン、しばらく様子見。

GTK4 の変更点とかは次回。

Ken

今日はキジポイントに通りかかると早々にキジの鳴き声が。

kiji

キジの鳴き声って「ケーン」とよく表現されているけど。
キジとは?鳴き声はケーンと聞こえる?性別と鳴き方の種類を解説!
全然そう聞こえないよね。
しかし「ケーン」ってパチスロ北斗の拳かよ(古い!

kiji

去年はここらにコチドリが、ってまたキジだよ。
すっかりキジ専属カメラマンに、いやなっていないが。

kogamo

今年はツグミを全然見ない、代わりにコガモがいまだに残っている。
おいおい桜も終わったよ、てかなんで片足上げて寝ているの?

諸事情で今日はここまで、そろそろ夏鳥を見たいな。