AMF0とAMF3のReaderとWriterを追加した

RTMPサーバを作るためにAMF0とAMF3の読み書きが必要になるので、
AMF0Reader、AMF0Writer、AMF3Reader、AMF3Writerの各クラスを追加した。
AMF0とAMF3のReaderとWriterを追加した

RTMPサーバを作るためにAMF0とAMF3の読み書きが必要になるので、
AMF0Reader、AMF0Writer、AMF3Reader、AMF3Writerの各クラスを追加した。
SourceConnectionBaseをISourceConnectionに変更した

SourceStreamBaseで作成して使う、SourceConnectionBaseをISourceConnectionに変更し、SourceConnectionBaseがISourceConnectionを実装するようにした。
これはRTMPサーバを実装するにあたって、SourceStreamBaseは使いたいものの、SourceConnectionBaseは使わずに別な実装をしたかったため、インターフェースだけ括り出して別な実装を作れるようにした。
Merge branch 'broadcast_with_rtmp' of github.com:kumaryu/peercaststation into broadcast_with_rtmp
AMF3ReaderがIDisposableを実装していなかったのを修正した

AMF3ReaderがDisposeを実装していたにもかかわらずIDisposableを実装していなかったのを修正した。
AMFValue.IsNull()を追加した

nullとAMFValueTypeがNullのAMFValueを同一視したいことがあるため、指定した値がnullかNullを保持するAMFValueだった場合にtrueを返すAMFValue.IsNullを追加した。
AMFxWriterのメンバをいくらかprivateにした

AMFxWriterの外部から呼ぶべきでないメンバがいくらかpublicになっていたのでprivateにした。
AMFxWriter.WriteValueにnullを渡した場合はNullを書き込むようにした

AMFxWriter.WriteValueにnullを渡すと落ちるようになっていたが、Nullを書き出す方が便利なのでそのようにした。
AMF関係のクラスをPeerCastStation.FLV.AMF名前空間に移した

AMF関係のクラスが結構多いのともう少し増えそうなので、PeerCastStation.FLV.AMF名前空間にまとめるようにした。
AMFxReaderのベースクラスとしてAMFReaderクラスを追加した

AMF3ReaderとAMF0Readerクラスは使い方が同じだが関連のないクラスになっており両方使う場合は2パターンのコードを書かないといけなかったので、まとめてAMFReaderクラスから派生するようにした。
AMFxWriterのベースクラスとしてAMFWriterクラスを追加した

AMF3WriterとAMF0Writerクラスは使い方が同じだが関連のないクラスになっており両方使う場合は2パターンのコードを書かないといけなかったので、まとめてAMFWriterクラスから派生するようにした。
RTMPのエンコーダから配信できるRTMPSourceStreamを追加した

配信時のソースとしてRTMPサーバとして振る舞うRTMPSourceStreamを追加してOBSなどのRTMPサーバへPush配信するエンコーダから配信できるようにした。
サーバとして接続の待ち受けは0.0.0.0:1935固定になっているので、改善の余地あり。
GUI変更はしていないため配信コンテナフォーマットの選択はあるものの、何を選んでもFLVでの配信になる。
RTMP対応は配信のみで視聴は未対応。
Merge remote-tracking branch 'remotes/origin/broadcast_with_rtmp'