1 一个RTSPClientSession对应一个视频传输任务(实时or回放)。
2 一个视频源(实时是共用一个源,回放每个单独一个源)对应一个ServerMediaSession(SMS), ServerMediaSession下可能有多个ServerMediaSubSession(视频流+音频流)。
3 ServerMediaSubSession负责创建Source, sink资源。
4 多个RTSPClientSession看同一个视频源时(实时)会累加对SMS的计数,当RTSPClientSession发出tearDown 或者很长时间没有发心跳包时,RTSPClientSession资源会被释放,A 同时相应的SMS引用计数减一,当计数为0时 会释放SMS资源,同时释放其下的ServerMediaSubSession资源; B 处理streamState,当steamState的引用计数为0时释放该资源(同时处理steamState对应的Source, Sink资源)。
2 一个视频源(实时是共用一个源,回放每个单独一个源)对应一个ServerMediaSession(SMS), ServerMediaSession下可能有多个ServerMediaSubSession(视频流+音频流)。
3 ServerMediaSubSession负责创建Source, sink资源。
4 多个RTSPClientSession看同一个视频源时(实时)会累加对SMS的计数,当RTSPClientSession发出tearDown 或者很长时间没有发心跳包时,RTSPClientSession资源会被释放,A 同时相应的SMS引用计数减一,当计数为0时 会释放SMS资源,同时释放其下的ServerMediaSubSession资源; B 处理streamState,当steamState的引用计数为0时释放该资源(同时处理steamState对应的Source, Sink资源)。