umezawatakeshi / utvideo

Ut Video Codec Suite - fast lossless video codec
http://umezawatakeshi.github.io/utvideo/
GNU General Public License v2.0
288 stars 12 forks source link

Macで共有ライブラリは作れますか? #1

Closed s172262 closed 8 years ago

s172262 commented 8 years ago

はじめまして。ffmpegをインストールしようとしたところ、 --enable-libutvideo というフラグがあったのでこちらにたどり着きました。 こちらのソースを利用させていただいて、Homebrewでlibutvideo.dylibを作ろうとしているのですが (https://github.com/Homebrew/homebrew-core/pull/729) 、アセンブリコードの部分の取り扱いが分からないため、スタティクしか作れていません。 そもそもはQuickTimeのplug-in向けなので、共有ライブラリ向けに書かれていない可能性もあると思うのですが、当方はスクリプト専門なので、何がどうならbundleではなく共有ライブラリに出来るのかすらわかっていません。すいません。 ffmpegの人達がやっていると思われる libutvideoをbuildするプロジェクトのMakefile(https://github.com/qyot27/libutvideo/blob/buildsystem/GNUmakefile) では、共有ライブラリを作るときにはアセンブリコードのファイルを除外するようにしているようなのですが、ということはやはり、アセンブリコードの部分は共有ライブラリ向けに書かれていないということなのでしょうか?

作者からすると目的外の話ですいませんが、ご回答いただければ幸いです。

umezawatakeshi commented 8 years ago

私は元々 Mac は守備範囲外で、他の QuickTime コーデックコンポーネントのプロジェクトを参考にして作ったため、ちょっと外れたことは残念ながらサッパリ分かりません。

アセンブリコードを除外するようになっているのは、Linux/Mac の 64bit では動かないものが出来上がるからだと思われます。動かないものが出来上がることは認識していますが、Ut Video Codec Suite というプロダクトとしては「それで問題ない」での放置しています。ただし、近い将来に動くように修正する可能性は高いです。

あと、FFmpeg の --enable-libutvideo は近いうちに廃止される雰囲気があります。廃止される理由の一つが上に書いてある「Linux/Mac の 64bit では動かないものが出来上がる」なんですけど。 参考: https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2016-February/189014.html

s172262 commented 8 years ago

ご回答有り難うございました。 梅澤さんが配布されているMac用バイナリが32bit版だけなのはそういうことだったのですか。 アセンブリは一旦諦めます。

s172262 commented 8 years ago

ffmpegのソースを見てきたのですが、ffmpegはUNFCCという型を利用してました。 で、そのUNFCCの宣言が utvideo 15.4.0 から、utvideo.hからFormat.hに移動されたことを ffmpeg側が認識していないようなので、さっきバグレポートを挙げてきました。 しかし、彼らがFormat.hの必要性に気付いても、UNFCCは現在は windef.h内の変数型で宣言されており、unix環境でUNFCCを利用するのは困難でしょう。

ということで、QuickTime用は16.1.0のバイナリ版を、ffmpeg用には14.2.1を利用させていただくことにします。