崩溃的信息如下:

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 }

(虽然很丑陋)以上代码解决了崩溃的问题。

但是奇怪的是,为什么不在这个函数里崩溃,而要在视频解码里崩溃?

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

  1. linux + opencv + cuvid中使用cv::cuda::GpuMat类的一些坑

    1.我最终成功实现了opencv中利用cuvid实现GPU视频解码:核心代码是: 1 cv::cuda::GpuMat d_frame; 2 cv::Ptr<cv::cudacodec::Vid ...

  2. 【记录一个问题】opencv + cuda编译release版本后,链接出现奇怪的符号

    链接出现以下信息: 1 /home/admin/opencv/20190610_cuda_release/lib64/libopencv_core.a(ocl.cpp.o): In function ...

  3. 【记录一个问题】opencv中 cv::dft()与cv::ocl_dft()计算的结果相差较大

    以一个跟踪算法来测试: 使用cv::dft(), 矩阵未按照2次幂对齐,最终跟踪平均准确率 84.3% 使用cv::dft(),矩阵使用cv::copyMakeBorder对齐,最终跟踪平均准确率 8 ...

  4. 【记录一个问题】opencv官网的opencv android sdk使用opencl并未用到GPU

    UMat u_mat;mat.copyTo(u_mat);cv::cvtColor(u_mat, cv::BGR2GARY);这样的代码反复执行,并未发现GPU占用提升.执行时间与不使用UMat相当. ...

  5. 【记录一个问题】opencv中使用UMat类,在析构的时候出现refcount == 0的断言错误

    发生coredump时的错误信息如下: terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4. ...

  6. 【记录一个问题】linux + opencv + gpu视频解码,好不容易编译通过,运行又coredump了

    1.首先编译了opencv + cuda   编译选项中使用了以下关于cuvid库的内容: //"nvcuvid" libraryCUDA_nvcuvid_LIBRARY:FILE ...

  7. 【视频解码性能对比】opencv + cuvid + gpu vs. ffmpeg + cpu

    视频大小:1168856 字节画面尺寸:480*848帧数:275opencv + cuvid + tesla P4, 解码性能:1426.84 fps ffmpeg 4.0 API + [Intel ...

  8. 第三章 用SDK编译出第一个在Linux下的软件界面

    第三章 用SDK编译出第一个在Linux下的软件界面 先创建一个工程目录“mkdir project1”,进入目录,创建main.cpp文件,编写代码如下: 代码内容暂时可以先不理解,先让程序跑起来再 ...

  9. 记录一个bootstrap惨痛的错误

    记录一个bootstrap的错误,这个错误因为我删除了一个class就导致了页面上显示的错误,这是一个惨痛的教训,特此记录,提醒自己在做前端的修改时,一定要慎之又慎.如果真的要做改动,改完之后也要测一 ...

随机推荐

  1. java 图形化小工具Abstract Window Toolit 菜单项

    AWT 中的菜单由如下几个类组合而成 MenuBar: 菜单条,菜单的容器. Menu: 菜单组件,菜单项的容器,它也是Menultem的子类,所以可作为菜单项使用. PopupMenu: 上下文菜单 ...

  2. Intellij IDEA中Springboot启动报Command line is too long错误

    启动报错:Error running 'CmsFrontApplication': Command line is too long. Shorten command line for CmsFron ...

  3. 年底了是时候学新技术了「GitHub 热点速览 v.21.52」

    作者:HelloGitHub-小鱼干 年底了,又有新技术冒出来需要你来 Pick 了,第一个先要被 Pick 的是即将到来的元旦英文版:Happy New Year,再来的话就是这周非常火的新一代爬虫 ...

  4. 【LeetCode】01 Matrix 解题报告

    [LeetCode]01 Matrix 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/01-matrix/#/descripti ...

  5. 【LeetCode】23. Merge k Sorted Lists 合并K个升序链表

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:合并,链表,单链表,题解,leetcode, 力扣,Py ...

  6. Beautiful Walls

    [1553] Beautiful Walls 时间限制: 1000 ms 内存限制: 65535 K 问题描述 To simplify the building process, XadillaX b ...

  7. 《机器学习实战》kNN算法及约会网站代码详解

    使用kNN算法进行分类的原理是:从训练集中选出离待分类点最近的kkk个点,在这kkk个点中所占比重最大的分类即为该点所在的分类.通常kkk不超过202020 kNN算法步骤: 计算数据集中的点与待分类 ...

  8. 牛客练习赛39 B:选点(二叉树遍历+LIS)

    链接: https://ac.nowcoder.com/acm/contest/368/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262 ...

  9. Proximal Algorithms 6 Evaluating Proximal Operators

    目录 一般方法 二次函数 平滑函数 标量函数 一般的标量函数 多边形 对偶 仿射集合 半平面 Box Simplex Cones 二阶锥 半正定锥 指数锥 Pointwise maximum and ...

  10. 编写Java程序,创建Dota游戏中的防御塔类,通过两个坐属性显示防御塔所在的位置

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的防御塔类 通过两个坐属性显示防御塔所在的位置 实现思路: 创建防御塔(TowerDefense)类 在该类中定义了两个属性,分别是int类型横 ...