- 博客(9)
- 收藏
- 关注
原创 YUV格式详解
一、YUV:4:4:4 U、V分量全部采样,同RGB大小一致 原像素点:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3] 采样码流:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3 映射像素:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]二、YUV:4:2:2 U、V分量会间隔采样,映射为像素点时第一个和第二个像素点共用了U0、V1分量,
2021-04-15 00:09:20
694
原创 1-5、多线程控制帧率渲染
xvideo_view.h#pragma once#include <mutex>/// <summary>/// 视频渲染接口/// 1、隐藏SDL实现/// 2、渲染方式可替代/// 3、线程安全/// </summary>struct AVFrame;void MSleep(unsigned int ms);class XVideoView {public: enum Format { RGBA = 0,
2021-04-14 23:51:14
601
原创 1-4、封装SDL
用简单工厂模式封装SDL1、隐藏SDL的实现2、渲染方式可替代3、线程安全xvideo_view.h#pragma once#include <mutex>/// <summary>/// 视频渲染接口/// 1、隐藏SDL实现/// 2、渲染方式可替代/// 3、线程安全/// </summary>class XVideoView {public: enum Format { RGBA = 0, A
2021-04-14 23:38:32
1057
原创 1-3、渲染播放YUV数据
#include "sdlqtrgb.h"#include <sdl/SDL.h>#include <fstream>#include <QMessageBox>#pragma comment(lib, "SDL2.lib")using namespace std;static SDL_Window* sdl_win = NULL;static SDL_Renderer* sdl_render = NULL;static SDL_Texture* s
2021-04-03 22:52:50
310
原创 1-2、合并图像渲染后保存
#include "sdlqtrgb.h"#include <sdl/SDL.h>#include <QMessageBox>#pragma comment(lib, "SDL2.lib")static SDL_Window* sdl_win = NULL;static SDL_Renderer* sdl_render = NULL;static SDL_Texture* sdl_texture = NULL;static int sdl_width = 0;s
2021-04-03 22:51:59
231
原创 1-1、OpenGL渲染RGB图像步骤
1、初始化SDL接口if (SDL_Init(SDL_INIT_VIDEO)) { cout << SDL_GetError() << endl; return -1;}static int sdl_width = ui.label->width();static int sdl_height = ui.label->height();2、初始化窗口auto screen = SDL_CreateWindowFrom((void*)ui.la
2021-04-03 22:47:01
1981
1
原创 4、对象的构造 - 拷贝构造函数(数组类部分未完成)
3. 拷贝构造函数C++中三种情况下需要调用拷贝构造函数:对象以值传递的方式传入函数参数对象以值传递的方式从函数返回一个对象用于初始化另一个对象1.值传递给函数时会产生临时变量作为拷贝构造函数的实参#include <iostream>#include <string>using namespace std;class CExample{pri...
2019-07-17 16:00:24
426
原创 3、对象的构造 - 构造函数
三、对象的构造1.构造函数构造函数的左右是对对象进行初始化,每个类都有构造函数,如果不自己写,编译器会自动生成一个默认的无参构造函数在栈和堆空间上创建对象时,成员变量初始值为随机值#include <iostream>#include <string>using namespace std;class Test{private: int i;...
2019-07-16 23:27:19
695
原创 2、面向对象 - 概念介绍
0、多态 封装 继承多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果多态的三个条件:继承的存在子类重写父类的方法父类引用变量指向子类对象封装:封装的意义在于保护或者防止代码(数据)被我们无意中破坏。继承:继承主要实现重用代码,节省开发时间// 面向对象的五大基本原则单一职责原则(SRP)开放封闭原则(OCP)里氏替换原则(LSP)依赖倒置原则(DIP...
2018-10-07 15:29:14
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅