gitextract_v87mtvnp/ ├── .github/ │ └── workflows/ │ └── dotnetcore.yml ├── .gitignore ├── Harmonic/ │ ├── Buffers/ │ │ └── ByteBuffer.cs │ ├── Controllers/ │ │ ├── Living/ │ │ │ ├── LivingController.cs │ │ │ └── LivingStream.cs │ │ ├── NeverRegisterAttribute.cs │ │ ├── Record/ │ │ │ ├── RecordController.cs │ │ │ └── RecordStream.cs │ │ ├── RtmpController.cs │ │ ├── WebSocketController.cs │ │ └── WebSocketPlayController.cs │ ├── Harmonic.csproj │ ├── Hosting/ │ │ ├── IStartup.cs │ │ ├── RtmpServer.cs │ │ ├── RtmpServerBuilder.cs │ │ ├── RtmpServerOptions.cs │ │ └── WebSocketOptions.cs │ ├── Networking/ │ │ ├── Amf/ │ │ │ ├── Common/ │ │ │ │ ├── Amf3Object.cs │ │ │ │ ├── TypeRegisterState.cs │ │ │ │ ├── Undefined.cs │ │ │ │ └── Unsupported.cs │ │ │ ├── Data/ │ │ │ │ ├── IDynamicObject.cs │ │ │ │ ├── IExternalizable.cs │ │ │ │ └── Message.cs │ │ │ └── Serialization/ │ │ │ ├── Amf0/ │ │ │ │ ├── Amf0CommonValues.cs │ │ │ │ ├── Amf0Reader.cs │ │ │ │ ├── Amf0Type.cs │ │ │ │ ├── Amf0Writer.cs │ │ │ │ └── SerializationContext.cs │ │ │ ├── Amf3/ │ │ │ │ ├── Amf3Array.cs │ │ │ │ ├── Amf3ClassTraits.cs │ │ │ │ ├── Amf3CommonValues.cs │ │ │ │ ├── Amf3Dictionary.cs │ │ │ │ ├── Amf3Reader.cs │ │ │ │ ├── Amf3Type.cs │ │ │ │ ├── Amf3Writer.cs │ │ │ │ ├── Amf3Xml.cs │ │ │ │ ├── SerializationContext.cs │ │ │ │ └── Vector.cs │ │ │ └── Attributes/ │ │ │ ├── ClassFieldAttribute.cs │ │ │ └── TypedObjectAttribute.cs │ │ ├── ConnectionInformation.cs │ │ ├── Flv/ │ │ │ ├── Data/ │ │ │ │ ├── AacPacketType.cs │ │ │ │ ├── AudioData.cs │ │ │ │ ├── CodecId.cs │ │ │ │ ├── FlvAudioData.cs │ │ │ │ ├── FlvVideoData.cs │ │ │ │ ├── FrameType.cs │ │ │ │ ├── SoundFormat.cs │ │ │ │ ├── SoundRate.cs │ │ │ │ ├── SoundSize.cs │ │ │ │ └── SoundType.cs │ │ │ ├── FlvDemuxer.cs │ │ │ └── FlvMuxer.cs │ │ ├── Rtmp/ │ │ │ ├── ChunkStreamContext.cs │ │ │ ├── Data/ │ │ │ │ ├── ChunkBasicHeader.cs │ │ │ │ ├── ChunkHeader.cs │ │ │ │ ├── ChunkHeaderType.cs │ │ │ │ ├── Message.cs │ │ │ │ ├── MessageHeader.cs │ │ │ │ ├── MessageType.cs │ │ │ │ ├── SharedObjectMessage.cs │ │ │ │ └── UserControlMessageEvents.cs │ │ │ ├── Exceptions/ │ │ │ │ └── UnknownMessageReceivedException.cs │ │ │ ├── HandshakeContext.cs │ │ │ ├── IOPipeLine.cs │ │ │ ├── MessageReadingState.cs │ │ │ ├── Messages/ │ │ │ │ ├── AbortMessage.cs │ │ │ │ ├── AcknowledgementMessage.cs │ │ │ │ ├── AggregateMessage.cs │ │ │ │ ├── AmfEncodingVersion.cs │ │ │ │ ├── AudioMessage.cs │ │ │ │ ├── Commands/ │ │ │ │ │ ├── CallCommandMessage.cs │ │ │ │ │ ├── CommandMessage.cs │ │ │ │ │ ├── CommandMessageFactory.cs │ │ │ │ │ ├── ConnectCommandMessage.cs │ │ │ │ │ ├── CreateStreamCommandMessage.cs │ │ │ │ │ ├── DeleteStreamCommandMessage.cs │ │ │ │ │ ├── OnStatusCommandMessage.cs │ │ │ │ │ ├── PauseCommandMessage.cs │ │ │ │ │ ├── Play2CommandMessage.cs │ │ │ │ │ ├── PlayCommandMessage.cs │ │ │ │ │ ├── PublishCommandMessage.cs │ │ │ │ │ ├── ReceiveAudioCommandMessage.cs │ │ │ │ │ ├── ReceiveVideoCommandMessage.cs │ │ │ │ │ ├── ReturnResultCommandMessage.cs │ │ │ │ │ └── SeekCommandMessage.cs │ │ │ │ ├── ControlMessage.cs │ │ │ │ ├── DataMessage.cs │ │ │ │ ├── SetChunkSizeMessage.cs │ │ │ │ ├── SetPeerBandwidthMessage.cs │ │ │ │ ├── UserControlMessages/ │ │ │ │ │ ├── PingRequestMessage.cs │ │ │ │ │ ├── PingResponseMessage.cs │ │ │ │ │ ├── SetBufferLengthMessage.cs │ │ │ │ │ ├── StreamBeginMessage.cs │ │ │ │ │ ├── StreamDryMessage.cs │ │ │ │ │ ├── StreamEofMessage.cs │ │ │ │ │ ├── StreamIsRecordedMessage.cs │ │ │ │ │ ├── UserControlMessage.cs │ │ │ │ │ └── UserControlMessageFactory.cs │ │ │ │ ├── VideoMessage.cs │ │ │ │ └── WindowAcknowledgementSizeMessage.cs │ │ │ ├── NetConnection.cs │ │ │ ├── NetStream.cs │ │ │ ├── RtmpChunkStream.cs │ │ │ ├── RtmpControlChunkStream.cs │ │ │ ├── RtmpControlMessageStream.cs │ │ │ ├── RtmpMessageStream.cs │ │ │ ├── RtmpSession.cs │ │ │ ├── Serialization/ │ │ │ │ ├── OptionalArgumentAttribute.cs │ │ │ │ ├── RtmpCommandAttribute.cs │ │ │ │ ├── RtmpMessageAttribute.cs │ │ │ │ ├── SerializationContext.cs │ │ │ │ └── UserControlMessageAttribute.cs │ │ │ ├── Streaming/ │ │ │ │ ├── PublishingType.cs │ │ │ │ └── PublishingTypeNameAttribute.cs │ │ │ ├── Supervisor.cs │ │ │ └── WriteState.cs │ │ ├── Utils/ │ │ │ ├── NetworkBitConverter.cs │ │ │ └── StreamHelper.cs │ │ └── WebSocket/ │ │ └── WebSocketSession.cs │ ├── Rpc/ │ │ ├── CommandObjectAttribute.cs │ │ ├── FromCommandObjectAttribute.cs │ │ ├── FromOptionalArgumentAttribute.cs │ │ ├── RpcMethodAttribute.cs │ │ └── RpcService.cs │ └── Service/ │ ├── PublisherSessionService.cs │ ├── RecordService.cs │ └── RecordServiceConfiguration.cs ├── Harmonic.sln ├── LICENSE ├── README.md ├── RoadMap.md ├── UnitTest/ │ ├── TestAmf0Reader.cs │ ├── TestAmf0Writer.cs │ ├── TestAmf3Reader.cs │ ├── TestAmf3Writer.cs │ ├── TestUnlimitedBuffer.cs │ └── UnitTest.csproj ├── demo/ │ ├── MyLivingController.cs │ ├── MyLivingStream.cs │ ├── Program.cs │ ├── StartUp.cs │ └── demo.csproj ├── docs/ │ ├── README.md │ ├── api.md │ └── rpc.md └── samples/ ├── amf0/ │ ├── boolean/ │ │ ├── false.amf0 │ │ └── true.amf0 │ ├── misc/ │ │ ├── array.amf0 │ │ ├── date.amf0 │ │ ├── ecmaarray.amf0 │ │ ├── longstring.amf0 │ │ ├── null.amf0 │ │ ├── object.amf0 │ │ ├── packet.amf0 │ │ ├── undefined.amf0 │ │ └── xml.amf0 │ ├── number/ │ │ ├── 1.1261843717924092.amf0 │ │ ├── 2.3763213699559538.amf0 │ │ ├── 3.498957015368982.amf0 │ │ ├── 3.9231228517554273.amf0 │ │ ├── 4.141123418573091.amf0 │ │ ├── 4.485998361678176.amf0 │ │ ├── 5.442560101247932.amf0 │ │ ├── 7.560779119365773.amf0 │ │ ├── 9.719564819564491.amf0 │ │ └── 9.844079468164518.amf0 │ └── string/ │ ├── fkqudskxxb.amf0 │ ├── grkogrokmq.amf0 │ ├── gymtsavnng.amf0 │ ├── karxrlzavl.amf0 │ ├── lbwkjydfuv.amf0 │ ├── qsqwosrxcl.amf0 │ ├── rpwhhjwary.amf0 │ ├── sjceuhcjfa.amf0 │ ├── vrouinfvzr.amf0 │ └── vsyrigrfbn.amf0 └── amf3/ ├── boolean/ │ ├── false.amf3 │ └── true.amf3 ├── intenger/ │ ├── 56.amf3 │ ├── 57.amf3 │ ├── 60.amf3 │ ├── 67.amf3 │ ├── 72.amf3 │ ├── 73.amf3 │ ├── 75.amf3 │ ├── 78.amf3 │ ├── 82.amf3 │ └── 98.amf3 ├── misc/ │ ├── array.amf3 │ ├── bytearray.amf3 │ ├── date.amf3 │ ├── dictionary.amf3 │ ├── externalizable.amf3 │ ├── null.amf3 │ ├── object.amf3 │ ├── packet.amf3 │ ├── undefined.amf3 │ ├── vector_any_object.amf3 │ ├── vector_double.amf3 │ ├── vector_int.amf3 │ ├── vector_typted_object.amf3 │ ├── vector_uint.amf3 │ ├── xml.amf3 │ └── xml_document.amf3 ├── number/ │ ├── 0.05806697191443333.amf3 │ ├── 3.962148410082559.amf3 │ ├── 4.465764800567858.amf3 │ ├── 6.863435764713296.amf3 │ ├── 7.645173446829178.amf3 │ ├── 8.451623695104308.amf3 │ ├── 8.518697602984554.amf3 │ ├── 8.85002823631796.amf3 │ ├── 9.838871036292584.amf3 │ └── 9.98509389093438.amf3 └── string/ ├── aoxqmkvbxa.amf3 ├── bghnwadduz.amf3 ├── cmaljzrwgc.amf3 ├── cuyerozwyf.amf3 ├── dfjfucqvpr.amf3 ├── fxxcsjosdu.amf3 ├── korbgwizge.amf3 ├── psvigwvvpx.amf3 ├── ubteltbaku.amf3 └── vqayztgtuf.amf3