Commit a63dd3d2ef101ea6f8b582ddfbbbbce53404c5c9
1 parent
e9099e17
修复recode初始化崩溃问题
Showing
3 changed files
with
18 additions
and
7 deletions
src/decoder/dvpp/FFRecoder.cpp
@@ -122,7 +122,18 @@ bool FFRecoder::init(int w, int h, AVRational time_base, AVCodecContext* avctx, | @@ -122,7 +122,18 @@ bool FFRecoder::init(int w, int h, AVRational time_base, AVCodecContext* avctx, | ||
122 | 122 | ||
123 | bool FFRecoder::init(AVStream* stream, AVCodecContext* avctx, const char* outfile_name) { | 123 | bool FFRecoder::init(AVStream* stream, AVCodecContext* avctx, const char* outfile_name) { |
124 | 124 | ||
125 | - codec_ctx_ = (AVCodecContext*)av_malloc(sizeof(AVCodecContext)); | 125 | + const AVCodec* encoder = avcodec_find_encoder(avctx->codec_id); |
126 | + if (!encoder) { | ||
127 | + LOG_ERROR("Find encoder AV_CODEC_ID_H264 failed!"); | ||
128 | + return false; | ||
129 | + } | ||
130 | + // 获取解码器上下文 | ||
131 | + codec_ctx_ = avcodec_alloc_context3(encoder); | ||
132 | + if (!codec_ctx_) { | ||
133 | + LOG_ERROR("Alloc context for encoder contx failed!"); | ||
134 | + return false; | ||
135 | + } | ||
136 | + | ||
126 | avcodec_copy_context(codec_ctx_, avctx); | 137 | avcodec_copy_context(codec_ctx_, avctx); |
127 | codec_ctx_->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; | 138 | codec_ctx_->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; |
128 | m_inStream = stream; | 139 | m_inStream = stream; |
src/decoder/dvpp/FFRecoderTaskManager.cpp
@@ -400,7 +400,7 @@ void FFRecoderTaskManager::recode_thread2() { | @@ -400,7 +400,7 @@ void FFRecoderTaskManager::recode_thread2() { | ||
400 | // 发送mq消息 | 400 | // 发送mq消息 |
401 | if(mq_publish_func && recoderinfo.mq_info.length() > 0) { | 401 | if(mq_publish_func && recoderinfo.mq_info.length() > 0) { |
402 | mq_publish_func(recoderinfo.mq_info.c_str()); | 402 | mq_publish_func(recoderinfo.mq_info.c_str()); |
403 | - LOG_INFO("record save: {}", recoderinfo.mq_info.c_str()); | 403 | + // LOG_INFO("record save: {}", recoderinfo.mq_info.c_str()); |
404 | } | 404 | } |
405 | 405 | ||
406 | LOG_INFO("record end, total save: {} start_frame_nb: {} end_frame_nb: {} file_path: {}", count, start_frame_nb, end_frame_nb, file_name); | 406 | LOG_INFO("record end, total save: {} start_frame_nb: {} end_frame_nb: {} file_path: {}", count, start_frame_nb, end_frame_nb, file_name); |
src/demo/demo.cpp
@@ -642,10 +642,10 @@ string createTask(void *handle, std::vector<algorithm_type_t> algor_vec, int gi) | @@ -642,10 +642,10 @@ string createTask(void *handle, std::vector<algorithm_type_t> algor_vec, int gi) | ||
642 | tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; | 642 | tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; |
643 | break; | 643 | break; |
644 | case 1: | 644 | case 1: |
645 | - tparam.ipc_url = "/opt/cmhu/data/bayue.mp4"; | 645 | + tparam.ipc_url = "/opt/share/data/bayue.mp4"; |
646 | break; | 646 | break; |
647 | case 2: | 647 | case 2: |
648 | - tparam.ipc_url = "/opt/cmhu/data/Street.uvf"; | 648 | + tparam.ipc_url = "/opt/share/data/Street.uvf"; |
649 | break; | 649 | break; |
650 | case 3: | 650 | case 3: |
651 | tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; | 651 | tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; |
@@ -654,13 +654,13 @@ string createTask(void *handle, std::vector<algorithm_type_t> algor_vec, int gi) | @@ -654,13 +654,13 @@ string createTask(void *handle, std::vector<algorithm_type_t> algor_vec, int gi) | ||
654 | tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; | 654 | tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; |
655 | break; | 655 | break; |
656 | case 5: | 656 | case 5: |
657 | - tparam.ipc_url = "/opt/shzhao/vpt_ascend/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; | 657 | + tparam.ipc_url = "/opt/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; |
658 | break; | 658 | break; |
659 | case 6: | 659 | case 6: |
660 | - tparam.ipc_url = "/opt/shzhao/vpt_ascend/data/不带头盔2.mp4"; | 660 | + tparam.ipc_url = "/opt/share/data/不带头盔2.mp4"; |
661 | break; | 661 | break; |
662 | default: | 662 | default: |
663 | - tparam.ipc_url = "/opt/cmhu/data/Street.uvf"; | 663 | + tparam.ipc_url = "/opt/share/data/Street.uvf"; |
664 | break; | 664 | break; |
665 | } | 665 | } |
666 | 666 |