qt opengl 渲染 yuv 在arm上显示时,出现如下错误,怎么回事,有大神解答一下吗

OpenGLShader::compile(Fragment): 0:2(24): error: attribute' variables may not be declared in the fragment shader
0:2(24): error: illegal type for a varying variable
0:2(50): error:
attribute' variables may not be declared in the fragment shader
0:2(50): error: illegal type for a varying variable
0:2(107): error: `gl_Position' undeclared
0:2(117): error: type mismatch
0:2(141): error: type mismatch

*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp
#line 1
attribute vec4 vertexIn; attribute vec2 textureIn; varying vec2 textureOut; void main(void) { gl_Position = vertexIn; textureOut = textureIn; }


QOpenGLShader::compile(Vertex): 0:2(334): error: `gl_FragColor' undeclared
0:2(334): error: value of type vec4 cannot be assigned to variable of type error

*** Problematic Vertex shader source code ***
#define lowp
#define mediump
#define highp
#line 1
varying vec2 textureOut; uniform sampler2D tex_y; uniform sampler2D tex_uv; void main(void) { vec3 yuv; vec3 rgb; yuv.x = texture2D(tex_y, textureOut).r; yuv.y = texture2D(tex_uv, textureOut).r - 0.5; yuv.z = texture2D(tex_uv, textureOut).a - 0.5; rgb = mat3( 1, 1, 1, 0, -0.39465, 2.03211, 1.13983, -0.58060, 0) * yuv; gl_FragColor = vec4(rgb, 1); }


QOpenGLShader::link: "error: linking with uncompiled shadererror: linking with uncompiled shader"
QOpenGLShader::link: "error: linking with uncompiled shadererror: linking with uncompiled shader"
QOpenGLShaderProgram::uniformLocation( tex_y ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( tex_uv ): shader program is not linked

0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt 调用第三方库渲染视频造成闪烁的解决方法
前段时间自己在视频直播项目中遇到的关于使用第三方渲染库造成界面闪烁的问题,现在写下来希望能帮助到遇到类似问题的小伙伴。nn产生闪烁的主要原因是由于Qt自身的渲染引擎和第三方库渲染冲突造成,只要屏蔽掉Qt自身渲染引擎即可解决问题,方法如下:nn重写自己要被第三方库渲染的控件,在其构造函数中添加如下代码:n nsetAttribute(Qt::WA_PaintOnScreen,true);n n 重新...
qt采用opengl显示yuv视频数据
作者:  使徒保罗rn邮箱:  297329588szh@163.comrn声明:  欢迎交流学习,如有任何疑问,请通过邮箱联系本人rn应用场景:qt opengl渲染yuv420p数据rn开发环境:win7 64位 qt-opensource-windows-x86-msvc2010-5.5.1.exe(即qt5.5.1 32位版本)rn功能:      下面的核心代码都有详细注释,学术名词不清
qt 使用opengl显示yuv实时视频流
    我使用的是ffmpeg拉取实时流,并解码为yuv420p。然后用opengl转成rgb32渲染到qt中显示。用ffmpeg解码实时流和网上一样。参考:https://blog.csdn.net/su_vast/article/details/52214642 进行修改和增加。 av_register_all();n avformat_network_init();n AV...
OpenGL播放yuv数据流(着色器SHADER)-windows(一)
OpenGL播放yuv数据流(着色器SHADER)nnn在写这篇文章之前首先要感谢老雷,http://blog.csdn.net/leixiaohua1020/article/details/40379845这篇文章,可以老雷英年早逝,在此致敬...nnn下面是代码,具体看注释n//Lvs_OpenGl_Interface.hn/** Copyright (c/c++) n* F
利用Qt + OpenGL 渲染 YUV数据,播放视频 mac版
最近利用Qt渲染YUV数据,折腾了很久,最开始使用FFmpeg将YUV数据转换成RGB数据后在用qt绘制,很快得到了成功,但是cpu占用率太大,最后放弃了。rn在这先感谢来自文章http://blog.csdn.net/su_vast/article/details/52214642的作者,使用他的代码我实现了Windows上的YUV数据渲染。但是移植到mac上渲染不出来,经过折腾及对OpenGL
ios opengl 渲染yuv 模糊问题
是因为苹果是高分辨率屏幕 需要设置 scale 系数 nn GLsizei _viewScale;n self.contentScaleFactor = [UIScreen mainScreen].scale;n _viewScale = [UIScreen mainScreen].scale;n CGSize size =...
OpenGL渲染(YUV数据格式)
#include "GLRender.h"nn#define LOGI printf("GLRender: "); printfn#define LOGE printf("GLRender: "); printfn#define eglGetError glGetErrornn#import "ScreenParam.h"n#import n#import nntypedef
android 采用opengl显示yuv数据
Android 平台上采用纯JAVA 在opengl上显示YUV数据;bin目录下包含了编译好的APK;工程可以导入Eclipse直接编译调试;包含测试用的的yuv图片,在raw文件中;代码完整,无缺失;感谢代码的原始提供者,本人使用前人的代码调试完成该测试APP。 (使用shader转换YUV数据,GPU完成计算)
qt5_qml_opengl_shader显示yuv
通过qt5 qml opengl shader来进行yuv的渲染(其实是通过shader调用gpu转码) 吧testyuv.yuv放置在d盘根目录,若果用别的yuv数据的话需要在程序改变分辨率
Android opengl渲染yuv420例子
Android下使用OpenGL渲染yuv420p图像并显示。例子中提供了两种类型,一种使用GLSurfaceView在onDrawframe中调用native方法绘制,另外一种使用EGL,直接在native层完成渲染和显示功能。
OpenGL学习笔记--渲染yuv纹理
一般ffmpeg解码后的数据类型都是I420,即YUV420P,OpenGL没有提供直接渲染yuv的接口,我们可以通过可编程渲染管线,利用多重纹理将Y、U、V纹理分别传入,在片元着色器GL_FRAGMENT_SHADER中将yuv进行矩阵转化成RGB,然后进行渲染。GLSL简单介绍OpenGL渲染管线的知识可以参考博客http://www.cnblogs.com/yyxt/p/4056417.htm
Qt 播放Yuv420p视频
环境:    vs2015;Qt5.8;opencv3.4;从文件读取一帧的数据后从yuv转到rgb,用rgb构造一个IplImage,再把IplImage 转成QImage,显示。yuv420转rgb:void YUV420_2_RGB(unsigned char* pYUV, unsigned char* pRGB, int width, int height)n{n //找到Y、U、V在内存...
YUV420在qt5下显示
yuv420在qt5下的使用opengl显示方法,在ubuntu16下测试通过。
Android Opengl ES2.0 -实现RGB-YUV互转并显示到屏幕
本示例实使用OpenGL ES2.0实现了 如下三个功能:1.RGB转YUV420P n2.YUV420P转RGB n3.显示rgb到屏幕
Qt之显示yuv数据图像
Qt之显示yuv数据图像nn本文对在QT中实时显示yuv数据提供一个解决方案,再次特别非常感谢http://blog.yundiantech.com/中的博文,也是借鉴其中的播放YUV文件的demo实现实时播放yuv视频数据,废话不多说,就直接介绍显示效果最好的方法吧nnnqt中利用FFmpeg将yuv转RGB32nqt中将rbg显示到label上nnnqt中利用FFmpeg将yuv转RGB32
Qt播放YUV420P文件
零开始学习音视频编程技术(十五) YUV420P转RGB32 在转换的基础加上了Qt显示的界面。实现了Qt播放YUV420P文件 这是Qt的工程,建议使用Qt Creator 打开 Qt的版本是4.8.4,当然是用Qt5也是没有影响的,不过编译器记得使用Mingw。 FFMPEG的版本是2.5.2 记得将ffmpeg/bin目录下的dll文件拷贝到编译生成的exe所在的目录下,否则会无法运行。 关于代码的解释 请参考: http://blog.yundiantech.com/?log=blog&id=19
OpenGL播放yuv数据流(着色器SHADER)-android(一)
OpenGL播放yuv数据流(着色器SHADER)-android(一)rn可以参考:http://blog.csdn.net/ueryueryuery/article/details/17608185这篇文章很有帮助。rnrnrn这个和windows还有ios略有不同,下面将步骤整理一下以做记录:rn1:在avtivity_main.xml中添加用于显示的GLsurfaceViewrn <
基于QT&OpenGl的yuv文件播放实例
源码路径:nn
ffmpeg opengl 硬解视频并使用opengl在qt中显示nv12
  之前做过用ffmpeg解码视频然后在qt中用opengl来显示yuv数据,这次介绍一下ffmpeg硬解的方法。在网上找的资料大多数是ffmpeg软解的,而且解码后的格式都是yuv;我们知道nvidia显示视频解码后的格式是NV12的,那么怎么在代码中实现呢?    在后来看见别人使用ffplay工具播放视频的时候发现可以指明decoder来解码视频,于是通过在360搜索中找到了ffmpeg中查...
qt opengl 渲染 yv12
qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12
Android GLSurfaceView 显示YUV数据的坑,图像偏蓝色
前几天学习使用 GLSurfaceView 显示摄像头获取到的YUV数据,发现画面偏蓝色。经过反复的查找,原来是采集的数据排列顺序的问题, nparams.setPictureFormat(ImageFormat.NV21); n本来以为数据排列是 n n 按照这个数据顺序,显示出来的图像有问题(偏蓝色),一个偶然的机会,突然想到是不是UV数据出错了。结果查看了帮助文档: n n居然是 YCrC
Android OpenGL处理YUV数据(I420、NV12、NV21)
Android OpenGL 针对YUV格式(I420,NV12,NV21)数据渲染
又一种Qt + OpenGL 的离屏渲染方法
前面的博客《Qt + OpenGL + 离屏渲染》介绍了一种离屏渲染的办法:先在framebuffer里面绘制,然后把绘制的结果转化为QImage。但是这样做涉及到从显存(framebuffer)到内存QImage的传递,降低效率。本博客介绍一种新办法,从显存到显存,不必经由内存。n本文受了nhttp://www.cppblog.com/init/archive/2012/02/16/1657
android ndk 快速渲染yuv数据
因项目需要,要实现pc/windows传屏到android端显示,项目已经采用ffmpeg编码解码,现在碰到了如何将解码得到的yuv数据渲染到android surfaceview 上的问题。如果将yuv转换成rgb,软件实现的方法倒是简单,但是项目要求实时性,这种效率肯定是极低的。rn下面是我整理的一些方法:rn这篇文章给出了大致的方案参考 rn这篇举例yuv转rgb的一些方式rn至于通过yuv
使用OpenGL ES对YUV图片进行显示
使用OpenGL ES对YUV图片进行显示,流程为先提取YUV数据中的Y,U,V分量,在通过纹理贴图的方式,这样就可以达到显示图片的效果
使用FFMpeg解码,opengl渲染,转为图片显示两种方式
使用FFMPeg解码rtsp协议的视屏流,并使用openGL渲染,nn1.之前有使用VLC解码但是不能满足需求,后来直接使用FFmpeg解码openGL渲染 n2.使用FFMpeg解码这里解决了,解码后不能拿到视屏流多出显示的问题 n3.解决了打开首帧视屏比较慢的问题,现在1-2内既能打开视屏 n4.解决了找不到pps报警告的问题 n5.多线程优化,解码的同时不影响UI的操作更新 n解码显示可以转...
Android Native层使用opengl es渲染yuv420
Android Native层使用opengl es渲染yuv420,通过egl绑定android的surface,直接在native层进行渲染 具体使用见http://blog.csdn.net/lidec/article/details/73732369#comments
SDL2显示YUV图像
SDL2显示YUV图像简单例子
qml实现离屏渲染视频(多线程渲染)
    先看一个效果吧,由于这个抓图软件只有7.5fps,所以看其来很卡,但真实的程序运行起来比这个流畅多了。不能上传mp4,所以就弄了gif    我用的是Nvidia的硬解码SDK,并在其中加入了ffmpeg拉流或视频。解码出来的图片格式是nv12,这里我在shader里面实现的nv12转rgb的纹理,公式也是网上找的了。    看一下工程结构吧    要封装成qml的接口,要有opengl渲...
qt视频渲染画面闪烁
问题: n用第三方库给qt窗口渲染时候,当移动窗口更改大小时候,画面出现闪烁现象。原因: nwidget属性updatesEnabled默认是true,这个时候按照qt文档说法就是 nAn updates enabled widget receives paint events and has a system background n这个widget会有默认的背景以及接受paintevent事件,
OpenGLES渲染YUV数据
n n n OpenGL标准并不支持YUV数据,ES扩展也只是多了一些跨线程共享Surface、绑定物理视窗的特性,也不支持YUV数据。nstackoverflow上有人已经给出了方法:nhttps://stackoverflow.com/questions/22456884/how-to-render-androids-yuv-nv21-camera-image-o...
QOPenGLWidget与QPainter混合编程--绘制文本
前言:QOPenGLWidget取代了之前的QGLWidget类,用以在Qt中提供Opengl的编程接口。在QGLWidget类中,我们可以通过方法drawTexture来绘制文本。但是在QOPenGLWidget类的时候,这个方法没有提供了。官方文档给出的建议是混合QPainter使用。本文档就是介绍怎么用QPainter来在OPengl窗口上绘制2D文本nQt使用QOpenglWidget构建一
openGL显示yuv代码
把之前项目里的一些代码扒出来,可以让手机直接显示前置摄像头yuv数据,已经清理的很干净了,moto XS亲测好用~
qt中用opengl播放yuv420视频流
windows中,Qt渲染YUV数据,把yuv_420格式的视频流通过opengl进行实时的显示
通过FFmpeg解码和OpenGL的YUV转RGB实现Android视频播放
前言nn在我的博文 https://blog.csdn.net/ericbar/article/details/80506390 中,我们在Android平台上,实现了通过FFmpeg在native(C/C++)层进行视频解码,并通过OpenGL实现了硬件渲染工作,减少CPU的消耗,提高整个视频播放的性能。 n但是,FFmpeg解码后的YUV视频数据,仍然是通过软件方式转成RGB565的,效率极其...
【Qt OpenGL教程】17:2D图像文字
这次教程中,我们将学会如何使用四边形纹理贴图把文字显示在屏幕上。我们将把256个不同的文字从一个256×256的纹理图像中一个个提取出来,接着创建一个输出函数来创建任意我们希望的文字。
opengl es2.0 -YUV-RGB互转+显示到手机屏幕 DEMO
opengl es2.0 读取位图 先用opengl转换成yuv然后再转回rgb最后输出到显示屏上
Android OpenGL YUV 旋转花屏解决、Camera获取图像
一个自拍app,如何获取我们的surface view的截屏?在Camera的onPreviewFrame回调中(继承的PreviewCallback接口)。我们可以获取到data数组,里面存放着就是实时的图片data数组转文件为null,且转bitmap也为null怎么办?data数组里确实存放的是图片,但是格式不对,是YUV420格式。需要进行一个转换。所以采用open gl包下的YuvIma...
基于QOpenGLWidget类的图片贴图自适应显示编译环境Qt5.6.3
一直想用OpenGL来显示图像或者做视频播放器的窗口,网上找了很久,都没有Qt这方面最新的靠谱的例子,大部分都是3D模型上贴图,要不就是各种报错,或者Qt的OpenGL版本不对,自己摸索了好久,终于搞定了,是在QT5.6.3MinGW下编译的,可自适应窗口大小
使用Unity直接渲染YUV420格式
n n n 最近好久没来写些字了。n工作中发现YUV420格式转为RGB格式,最后也还是要渲染的,n所以考虑直接渲染,节约了CPU工作量,GPU做这种粗活非常擅长的。n话不多说,开始编码。n先说一下开发环境,使用的是,Windows10 + Unity5.3.6n其实用什么版本的Unity没关系,(最新的Unity2018.2最好,这个版本非常强大)n我写的是普通顶点...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 有大数据培训吗 有python培训吗