SDL2显示YUV图像
来源:互联网 发布:建筑业 知乎 编辑:程序博客网 时间:2024/05/22 01:48
#include <stdio.h>#include <SDL/SDL.h>#include <Windows.h>#pragma comment(lib, "SDL2.lib")#pragma comment(lib, "SDL2main.lib")/* Prepare a dummy image. */static void FillYuvImage(BYTE* pYuv, int nWidth, int nHeight, int nIndex){int x, y, i;i = nIndex;BYTE* pY = pYuv;BYTE* pU = pYuv + nWidth * nHeight;BYTE* pV = pYuv + nWidth * nHeight * 5 / 4;/* Y */for (y = 0; y < nHeight; y++){for (x = 0; x < nWidth; x++){pY[y * nWidth + x] = x + y + i * 3;}}/* Cb and Cr */for (y = 0; y < nHeight / 2; y++){for (x = 0; x < nWidth / 2; x++){pU[y * (nWidth/2) + x] = 128 + y + i * 2;pV[y * (nWidth/2) + x] = 64 + x + i * 5;}}}int main(int argc, char* argv[]){if (SDL_Init(SDL_INIT_VIDEO)){printf("Could not initialize SDL - %s\n", SDL_GetError());return -1;}// 提升图像质量,否则默认缩放质量会有毛剌SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "1");SDL_Window* window = SDL_CreateWindowFrom(::GetConsoleWindow());SDL_Renderer* render = SDL_CreateRenderer(window, -1, 0);const int W = 1920;const int H = 1080;SDL_Texture* texture = SDL_CreateTexture(render, SDL_PIXELFORMAT_YV12, SDL_TEXTUREACCESS_STREAMING, W, H);static BYTE Yuv[W*H * 2];BYTE* pY = Yuv;BYTE* pU = Yuv + W*H;BYTE* pV = Yuv + W*H * 5 / 4;int index = 0;while (true){FillYuvImage(Yuv, W, H, index++);int e = SDL_UpdateYUVTexture(texture, NULL,pY, W,pU, W / 2,pV, W / 2);//SDL_RenderClear(render);SDL_RenderCopy(render, texture, NULL, NULL);SDL_RenderPresent(render);Sleep(40);}return 0;}
阅读全文
0 0
- SDL2显示YUV图像
- 使用SDL2.0进行YUV显示
- D3D显示YUV图像
- 如何显示YUV图像
- SDL2.0在mfc窗口中显示yuv 数据
- SDL2.0 播放YUV
- 如何在Android用FFmpeg+SDL2.0解码显示图像
- 【转载】SDL2.0在mfc窗口中显示yuv的一种方法
- SDL2.0在mfc窗口中显示yuv的一种方法
- SDL2.0在mfc窗口中显示yuv的一种方法
- SDL2.0在mfc窗口中显示yuv的一种方法
- SDL2.0在mfc窗口中显示yuv的一种方法
- SDL2.0在mfc窗口中显示yuv的一种方法
- 转 SDL2.0在mfc窗口中显示yuv的一种方法
- SDL2.0在mfc窗口中显示yuv的一种方法
- IOS 上YUV图像显示相关参考
- Qt之显示yuv数据图像
- Qt之显示yuv数据图像
- Kafka入门经典教程
- java网站开发相关概念
- kaggle上近一段时间数据挖掘竞赛的获奖队伍的源代码
- java实用类详解--待整理
- ie引入css文件不起作用问题
- SDL2显示YUV图像
- 机器学习(二) 如何做到Kaggle排名前2%
- poj 3006(水题)
- 图像分割之分水岭算法
- caffe神经网络构建、参数设置
- 2440移植Linux Kernel笔记(二)------安装busybox
- 超越时空的调试器-qira
- 网站优化一般怎么去做?这几个环节至关重要
- 在win7和Linux环境,使用mysql进行数据库的备份和恢复