とりあえずsvn最新に入っていた謎のdccpコードを開放して、色々と補足。
[00000316] stream_out_standard private debug: creating `dccp/ts://(null)’
[00000316] stream_out_standard private debug: using `dccp/ts://(null)’
[00000318] main private debug: looking for sout access module: 0 candidate
と、stream_outputのstandard.cがdccpを見つけられなくて繋げない状況に陥ったり。モジュールのリストを管理している仕組みがどこかにあるんだろうと探索しても見つからず。
よく見ると、モジュールのエントリーのコードでそれを行っていることに気がつく。udp.cの中にrtpのコードが入っており、もちろんstandardのaccess=rtpで指定できる。そもそもrtpはどうやってVLCに認知されてんだー、と調べてみたら、
vlc_module_begin();
…
add_shortcut( “rtp” ); // Will work only with ts muxer
…
vlc_module_end();
と、このように指定していた。つまり、モジュールはモジュールとして作って中に置いて、Makefile.amを変更しておくだけでVLCに認知される、と。
んで、
add_shortcut( “dccp” )
追加して、コンパイルして実行すると以下の通り。
[00000318] main private error: cannot create socket: Protocol not supported
[00000318] access_output_udp private error: failed to create DCCP socket
dccpはカーネル実装なんで、それがない、と怒られてしまった。
さて、次はdccpを有効化したLinuxカーネルを用意せねばならぬ。
送信側も受信側もdccpを用意しなければならないのだが、そんなもん、誰が使うんだろーか。素直にUDP上でdccpに似たようなの実装すりゃよかったのに…(そんなことを言い始めるとTCPもUDP上で実装すればいいのか、とか言われちゃうな)