Commit 6042f34b2b21e9eac2ce8588c5758b6f1e7f788b

Authored by Hu Chunming
1 parent 42424bf2

代码优化

src/demo/main_dvpp.cpp
... ... @@ -287,6 +287,7 @@ int main(int argc, char* argv[]){
287 287 int i = 0;
288 288  
289 289 createDvppDecoder(i, gpuid, 0);
  290 + i++;
290 291  
291 292 while (true)
292 293 {
... ...
src/dvpp/DvppDec.cpp
... ... @@ -129,21 +129,14 @@ static void *ReportThd(void *arg)
129 129 }
130 130  
131 131 void DvppDec::doProcessReport(){
132   - // aclrtContext thdContext = nullptr;
133   - // CHECK_AND_RETURN_NOVALUE(aclrtCreateContext(&thdContext, m_dvpp_deviceId), "aclrtCreateContext failed");
134 132  
135 133 CHECK_AND_RETURN_NOVALUE(aclrtSetCurrentContext(m_context), "aclrtSetCurrentContext failed");
136 134 // 阻塞等待vdec线程开始
137 135  
138 136 int ret;
139 137 while (!m_bExitReportThd) {
140   - ret = aclrtProcessReport(1000);
141   - if (ret != ACL_ERROR_NONE) {
142   - cout << "device: " << m_dvpp_deviceId << ", chn: " << m_dvpp_channel << ", aclrtProcessReport failed, ret: " << ret << endl;
143   - }
  138 + aclrtProcessReport(1000);
144 139 }
145   -
146   - // CHECK_AND_RETURN_NOVALUE(aclrtDestroyContext(thdContext), "aclrtDestroyContext failed");
147 140 }
148 141  
149 142 static int count_frame = 0;
... ... @@ -192,7 +185,7 @@ void DvppDec::doVdppVdecCallBack(acldvppStreamDesc *input, acldvppPicDesc *outpu
192 185 // 保存vdec结果
193 186 if(count_frame > 45 && count_frame < 50)
194 187 {
195   - string file_name = "./yuv_pic/vdec_out"+ m_dec_name +".rgb" ;
  188 + string file_name = "./yuv_pic/vdec_out_"+ m_dec_name +".rgb" ;
196 189 FILE *outputFile = fopen(file_name.c_str(), "a");
197 190 if(outputFile){
198 191 fwrite(vdecHostAddr, data_size, sizeof(char), outputFile);
... ... @@ -398,23 +391,24 @@ int DvppDec::sentFrame(aclvdecChannelDesc *vdecChannelDesc, uint64_t frame_count
398 391 // user_data->startTime = startTime;
399 392 user_data->sendTime = UtilTools::get_cur_time_ms();
400 393 user_data->self = this;
401   - // user_data->inBufNode = bufNode;
402   - cout << "send frame" << endl;
403   - CHECK_NOT_RETURN(aclvdecSendFrame(vdecChannelDesc, input_stream_desc, output_pic_desc, nullptr, reinterpret_cast<void *>(user_data)),
404   - "aclvdecSendFrame failed");
  394 +
  395 + ret = aclvdecSendFrame(vdecChannelDesc, input_stream_desc, output_pic_desc, nullptr, reinterpret_cast<void *>(user_data));
  396 + if(ret != ACL_ERROR_NONE){
  397 + cout << "aclvdecSendFrame failed" << endl;
  398 + m_pktQueueptr->addHead();
  399 + av_packet_unref(pkt);
  400 + break;
  401 + }
405 402  
406 403 m_vdecQueue.addTail();
407 404  
408   - m_pktQueueptr->addHead();
409   - av_packet_unref(pkt);
410   -
411 405 return 0;
412 406 }while (0);
413 407  
414 408 if(input_stream_desc){
415 409 CHECK_NOT_RETURN(acldvppDestroyStreamDesc(input_stream_desc), "acldvppDestroyStreamDesc failed");
416 410 }
417   - if(output_pic_desc){
  411 + if(output_pic_desc){
418 412 CHECK_NOT_RETURN(acldvppDestroyPicDesc(output_pic_desc), "acldvppDestroyPicDesc failed");
419 413 }
420 414  
... ...