Commit 6fc86385103936523a5daa2bf07ec544f038efbd
1 parent
7e9074f2
代码优化
Showing
2 changed files
with
14 additions
and
12 deletions
src/FFNvDecoder.cpp
... | ... | @@ -233,13 +233,13 @@ void FFNvDecoder::decode_thread() |
233 | 233 | if (stream_index == pkt->stream_index){ |
234 | 234 | result = avcodec_send_packet(avctx, pkt); |
235 | 235 | if (result < 0){ |
236 | - av_log(nullptr, AV_LOG_ERROR, "Failed to send pkt: %d \n",result); | |
236 | + av_log(nullptr, AV_LOG_ERROR, "%s - Failed to send pkt: %d \n",name,result); | |
237 | 237 | continue; |
238 | 238 | } |
239 | 239 | |
240 | 240 | result = avcodec_receive_frame(avctx, gpuFrame); |
241 | 241 | if ((result == AVERROR(EAGAIN) || result == AVERROR_EOF) || result < 0){ |
242 | - av_log(nullptr, AV_LOG_ERROR, "Failed to receive frame: %d \n",result); | |
242 | + av_log(nullptr, AV_LOG_ERROR, "%s - Failed to receive frame: %d \n",name,result); | |
243 | 243 | continue; |
244 | 244 | } |
245 | 245 | |
... | ... | @@ -271,7 +271,7 @@ void FFNvDecoder::decode_thread() |
271 | 271 | |
272 | 272 | decode_finished(); |
273 | 273 | |
274 | - av_log(nullptr, AV_LOG_INFO, "decode thread exited. \n"); | |
274 | + av_log(nullptr, AV_LOG_INFO, "%s - decode thread exited. \n",name); | |
275 | 275 | } |
276 | 276 | |
277 | 277 | void FFNvDecoder::decode_finished() | ... | ... |
src/main.cpp
... | ... | @@ -94,14 +94,10 @@ int count_std = 100; |
94 | 94 | |
95 | 95 | static long long get_cur_time(){ |
96 | 96 | // 获取操作系统当前时间点(精确到微秒) |
97 | - chrono::time_point<chrono::system_clock, chrono::microseconds> tpMicro | |
98 | - = chrono::time_point_cast<chrono::microseconds>(chrono::system_clock::now()); | |
97 | + chrono::time_point<chrono::system_clock, chrono::milliseconds> tpMicro | |
98 | + = chrono::time_point_cast<chrono::milliseconds>(chrono::system_clock::now()); | |
99 | 99 | // (微秒精度的)时间点 => (微秒精度的)时间戳 |
100 | - time_t totalMicroSeconds = tpMicro.time_since_epoch().count(); | |
101 | - | |
102 | - long long currentTime = ((long long)totalMicroSeconds)/1000; | |
103 | - | |
104 | - return currentTime; | |
100 | + return tpMicro.time_since_epoch().count(); | |
105 | 101 | } |
106 | 102 | |
107 | 103 | static int sum = 0; |
... | ... | @@ -160,6 +156,10 @@ void postDecoded0(const void * userPtr, AVFrame * gpuFrame){ |
160 | 156 | } |
161 | 157 | } |
162 | 158 | |
159 | +void decode_finished_cbk(const void* userPtr){ | |
160 | + cout << "decode_finish timestamp: " << get_cur_time() << endl; | |
161 | +} | |
162 | + | |
163 | 163 | // string test_uri = "rtmp://192.168.10.56:1935/objecteye/1"; |
164 | 164 | // string test_uri = "/home/cmhu/data/output_800x480.mp4"; |
165 | 165 | // string test_uri = "/home/cmhu/data/output_1920x1080.mp4"; |
... | ... | @@ -173,15 +173,16 @@ void createDecode(int index){ |
173 | 173 | config.name = "dec" + to_string(index); |
174 | 174 | config.cfg.uri = test_uri; |
175 | 175 | config.cfg.post_decoded_cbk = postDecoded; |
176 | + config.cfg.decode_finished_cbk = decode_finished_cbk; | |
176 | 177 | config.cfg.force_tcp = true; |
177 | 178 | |
178 | 179 | if (index % 2 == 0) |
179 | 180 | { |
180 | - config.cfg.gpuid = "2"; | |
181 | + config.cfg.gpuid = "0"; | |
181 | 182 | } |
182 | 183 | else |
183 | 184 | { |
184 | - config.cfg.gpuid = "1"; | |
185 | + config.cfg.gpuid = "0"; | |
185 | 186 | } |
186 | 187 | |
187 | 188 | FFNvDecoder* decoder = pDecManager->createDecoder(config); |
... | ... | @@ -253,6 +254,7 @@ int main(){ |
253 | 254 | config.name = "dec"; |
254 | 255 | config.cfg.uri = test_uri; |
255 | 256 | config.cfg.post_decoded_cbk = postDecoded0; |
257 | + config.cfg.decode_finished_cbk = decode_finished_cbk; | |
256 | 258 | config.cfg.force_tcp = true; |
257 | 259 | config.cfg.gpuid = "0"; |
258 | 260 | FFNvDecoder* dec2 = pDecManager->createDecoder(config); | ... | ... |