日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【记录一个问题】linux+opencv+cuvid解码1080P视频,当使用CUDA核函数的时候,必然崩溃...

發布時間:2025/3/15 linux 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【记录一个问题】linux+opencv+cuvid解码1080P视频,当使用CUDA核函数的时候,必然崩溃... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

崩潰的信息如下:

1 OpenCV(4.1.0-dev) Error: Gpu API call (invalid configuration argument) in videoDecPostProcessFrame, file /home/admin/opencv/opencv_contrib-master/modules/cudacodec/src/cuda/nv12_to_rgb.cu, line 203 2 terminate called after throwing an instance of 'cv::Exception' 3 what(): OpenCV(4.1.0-dev) /home/admin/opencv/opencv_contrib-master/modules/cudacodec/src/cuda/nv12_to_rgb.cu:203: error: (-217:Gpu API call) invalid configuration argument in function 'videoDecPostProcessFrame' 4 5 Aborted (core dumped)

比較奇怪的點如下:
1. 同樣的程序,解碼720P視頻/480P視頻,并調用CUDA核函數做進一步處理,正常;
? ? 但是換1080P視頻就出現以上錯誤。

2.1080P視頻解碼第一幀,并計算,正常;
? ?但是第二幀的時候就發生以上錯誤。

3.寫一個空的核函數,什么也不錯,1080P視頻在解碼第二幀的時候仍然發生錯誤。
? ?如果完全不調用核函數,一切正常。

看起來不是我自己的代碼的鍋,要提交給OPENCV團隊才能解決。

==================================

2019-05-16 15:00 補充,問題已解決

關鍵問題是核函數中線程開太多了。我把代碼修改成了如下:

1 if (rows>500){ 2 _hsv_cacl_hist<<<1, rows/2>>>(data, cols, rows/2, step, channels, (uint32_t*)out->hist); 3 _hsv_cacl_hist<<<1, rows/2>>>(data+step*(rows/2), cols, rows/2, step, channels, (uint32_t*)out->hist); 4 } else { 5 _hsv_cacl_hist<<<1, rows>>>(data, cols, rows, step, channels, (uint32_t*)out->hist); 6 }

(雖然很丑陋)以上代碼解決了崩潰的問題。

但是奇怪的是,為什么不在這個函數里崩潰,而要在視頻解碼里崩潰?

?

轉載于:https://www.cnblogs.com/ahfuzhang/p/10874883.html

總結

以上是生活随笔為你收集整理的【记录一个问题】linux+opencv+cuvid解码1080P视频,当使用CUDA核函数的时候,必然崩溃...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。