MCPcopy Create free account
hub / github.com/PHZ76/RtspServer / SendFrameThread

Function SendFrameThread

example/rtsp_h264_file.cpp:90–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

88}
89
90void SendFrameThread(xop::RtspServer* rtsp_server, xop::MediaSessionId session_id, H264File* h264_file)
91{
92 int buf_size = 2000000;
93 std::unique_ptr<uint8_t> frame_buf(new uint8_t[buf_size]);
94
95 while(1) {
96 bool end_of_frame = false;
97 int frame_size = h264_file->ReadFrame((char*)frame_buf.get(), buf_size, &end_of_frame);
98 if(frame_size > 0) {
99 xop::AVFrame videoFrame = {0};
100 videoFrame.type = 0;
101 videoFrame.size = frame_size;
102 videoFrame.timestamp = xop::H264Source::GetTimestamp();
103 videoFrame.buffer.reset(new uint8_t[videoFrame.size]);
104 memcpy(videoFrame.buffer.get(), frame_buf.get(), videoFrame.size);
105 rtsp_server->PushFrame(session_id, xop::channel_0, videoFrame);
106 }
107 else {
108 break;
109 }
110
111 xop::Timer::Sleep(40);
112 };
113}
114
115H264File::H264File(int buf_size)
116 : m_buf_size(buf_size)

Callers

nothing calls this directly

Calls 2

ReadFrameMethod · 0.80
PushFrameMethod · 0.45

Tested by

no test coverage detected