APIHostのテストが動くように修正した
StreamConnectionを閉じる時にはエラーを記録しないようにした

StreamConnection.Closeを実行中にエラーを記録すると、基のストリームを閉じる以上ほぼ確実にエラーが記録されてしまうので、Close実行中のエラーは無視して記録しないようにした。
SourceStreamの実装を接続毎に内部的に接続管理オブジェクトを作りなおすようにした

SourceStreamBaseの実装が一つのオブジェクトで何度もの接続を管理するようになっていたが、
再接続との競合が問題になったため接続毎に作り直すSourceConnectionBaseクラスを作るようにした。
PCPSourceStreamとHTTPSourceStreamを合わせて作り直した。
PCPSourceStreamが送信時のエラーチェックをしていなかったのを修正した
SourceStreamBase.csが大きくなったので分割した

SourceStreamBase.csにSourceConnectionBaseクラスも入れた結果大きくなりすぎたので、SourceConnectionBaseを別ファイルに分割した。
Channelのメンバ等を整理した

Channel.SourceStreamがなぜか設定可能になっていたが、Channel.Startで設定するのでプロパティでは設定はできないようにした。
OutputStreamCollectionはいらなかったのでListに置き換えた。
Channel.csに入っていたChannelInfoとChannelTrackをChannelInfo.csに分割した。
Channelの持つSourceStreamを外から指定していたのを中で作るようにした

Channel.StartはSourceStreamを指定されるようになっていたが、接続先のUriからSourceStreamを作るのはChannel.Startの中でもできるので、Uriだけ受け取るインターフェースに変更した。
Channel.Reconnet(Uri)は単純化のため指定したUriでSourceStreamを作り直すようにし、Channel.Startと同じ動作になるようにした。
ChannelのUptime計測にStopwatchを使うようにした

ChannelのUptime計測にTickCountを使っていたのが綺麗でないのでStopwatchに置き換えた。
Channelの各種メンバをロックするようにした

Channelの操作メソッドが同時アクセスされるといろいろやばそうなので適当にロックするようにしてみた。
PCPSourceStreamのConnectionInfoがHTTP Sourceを返していたのを修正した
接続終了後のチャンネルに対してUriを指定しない再接続を要求したときに無視されるのを修正した

接続終了後のチャンネルに対してUriを指定しない再接続を要求したときに無視されていたので、以前と同じUriでSourceStreamを作り直すようにした。
ただし自分で配信してる時の再接続は未実装。
Channelをリレーか配信かによってRelayChannelとBroadcastChannelに分割した

Channel.Startの引数によってリレーか配信か分かれていたが、途中からそれらが変わることはないのと、再接続の時にどちらのチャンネルかによってStartを呼び分けないといけないため、Startは一つとしてクラスによって分岐するようにした。
また、Channel.BroadcastIDは配信チャンネルかどうかの判別にしか使ってなかったのでより直接的なIsBroadcastingに置き換えた。
PCPのバージョンについての記述をPCPVersionにまとめた

PCPのバージョンについての記述があちこちに分散していたのでPCPVersionクラスにまとめた。
またEXバージョンとしてST150を出力するようにしてみた。