2016-09-11 14 views
0

Linuxプラットフォームでは、ハードウェアベースのJpegデコードプラグインを開発しました。これはjpegdec(ソフトウェアベースのデコード)に置き換わり、xxxhwjpegdecランクを最高257に調整しました。xxxhwjpegdec pulginはjpegヘッダーを解析する必要があります。 私が使用:強制的にGstreamerプレイビンにjpegparseプラグインを使用させるには?

"gst-launch-1.0 -v filesrc location="/tmp/MJPEG.AVI" ! avidemux name=t t.video_0 ! jpegparse ! xxxhwjpegdec ! waylandsink" 

それがスムーズに/tmp/MJPEG.AVIを再生することができます。 私のターゲットは"gst-launch-1.0 playbin uri=file:///tmp/MJPEG.AVI"を使用して、私のハードウェアデコードでスムーズにファイルを再生しています。

しかし、私は"gst-launch-1.0 playbin uri=file:///tmp/MJPEG.AVI"を使用します。これはjpegdecプラグインを使用しています。これは、デコードするソフトウェアに基づいているため、/tmp/MJPEG.AVIがスムーズに再生されません。私はplaybinパイプライン "jpegparse"が使用されていないことを確認しました。 私は"gst-launch-1.0 playbin uri=file:///tmp/MJPEG.AVI"を使用し、その後、

をJPEGDECプラグインを削除した場合、それは /tmp/MJPEG.AVIを淡いすることはできません。キーパイプラインが"filesink--avidemux--xxxhwjpegdec--waylandsink"であり、jpegparseが挿入されていないことを確認しました。

私はplaybinフォームに上記の情報による2つの異なるパイプラインを判断し、 1は "filesink - avidemux - xxxhwjpegdec - waylandsink(再生することはできません)" である、 別の あります「filesink-- avidemux-jpegdec - waylandsink(再生できる) "。 私のxxxhwjpegdecはそれをサポートするためにjpegparseプラグインが必要です。 playbinによって挿入されたjpegparseはありません。playbinは最初に優先度の高いハードウェアパイプラインを選択することができませんので、代わりに2番目に優先度の低いソフトウェアパイプラインを選択する必要があります。
私は根本的な原因がjpegparseプラグインが自動的にプレイビンで選択できないと思います。

Gstreamerプレイビンにjpegparseプラグインを強制的に使用させる方法は誰にも分かりますか? または他のソリューションは大歓迎です!おかげさまで

+0

私は 'playbin'が自動的にパイプラインを構築し、現在はその選択肢を無効にする方法がないと確信しています。その変更まで独自のパイプラインを構築することに固執する必要があります –

+0

それは奇妙です。あなたのhwデコーダのランクがjpegdecより大きい場合、それはあなたのデコーダを選ぶべきです。あなたのhwデコーダーの上限に間違っているかもしれませんか? – soupybionics

+0

@ soupybionics はい、私は上記の情報で2つの異なるパイプラインを判断します.1つは "filesink - avidemux - xxxhwjpegdec - waylandsink(再生できません)"、もう1つはfilesink - avidemux-jpegdec- playbinはjpegparseを挿入していないので、playbinは最初に優先度の高いハードウェアパイプラインを選択することができませんので、優先順位の低い2番目のソフトウェアパイプラインを選択します。 – debugger

答えて

0

jpegparse出力:

Pad Templates: 
    SRC template: 'src' 
    Availability: Always 
    Capabilities: 
     image/jpeg 
       format: { I420, Y41B, UYVY, YV12 } 
        width: [ 0, 2147483647 ] 
       height: [ 0, 2147483647 ] 
       framerate: [ 0/1, 2147483647/1 ] 
       parsed: true 

多分あなたはあなたが解析されたJPEGバッファを必要とすることを示すためにparsed: trueをinlcudeするためにあなたのjpegdecoderのシンク・キャップを変更することができます。

+0

ありがとう、私は試してみます。 – debugger

関連する問題