摘要:源代码下载在PC机上,对于YUV格式的视频如YV12,YUY2等的显示方法,一般是采用DIRECTDRAW,使用显卡的OVERLAY表面显示。OVERLAY技术主要是为了解决在PC上播放VCD而在显卡上实现的一个基于硬件的技术。OVERLAY的出现,很好的解决了在PC上播放VCD所遇到的困难。早期P...
阅读全文
随笔分类 - DirectX
摘要:前言最近研究了一下Windows平台下的视音频播放的技术。在Windows平台下的视频播放技术主要有以下三种:GDI,Direct3D和OpenGL;音频播放技术主要是DirectSound。这些技术属于比较底层的技术,因此使用起来相对来说还是比较复杂的。我在学习的过程中也发现这一领域一直缺少比较简...
阅读全文
摘要:本文记录SDL播放音频的技术。在这里使用的版本是SDL2。实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API。在Windows平台下,SDL封装了Direct3D这类的API用于播放视频;封装了DirectSound这类的API用于播放音频。因为SDL的编写目的就是简化视音...
阅读全文
摘要:本文记录DirectSound播放音频的技术。DirectSound是Windows下最常见的音频播放技术。目前大部分的音频播放应用都是通过DirectSound来播放的。本文记录一个使用DirectSound播放PCM的例子。注:一位仁兄已经提醒我DirectSound已经计划被XAudio2取代...
阅读全文
摘要:本文记录SDL播放视频的技术。在这里使用的版本是SDL2。实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API。在Windows平台下,SDL封装了Direct3D这类的API用于播放视频;封装了DirectSound这类的API用于播放音频。因为SDL的编写目的就是简化视音...
阅读全文
摘要:本文记录OpenGL播放视频的技术。上一篇文章中,介绍了一种简单的使用OpenGL显示视频的方式。但是那还不是OpenGL显示视频技术的精髓。和Direct3D一样,OpenGL更好的显示视频的方式也是通过纹理(Texture)。本文介绍OpenGL通过纹理的方式显示视频的技术。OpenGL中坐标和...
阅读全文
摘要:本文记录OpenGL播放视频的技术。OpenGL是一个和Direct3D同一层面的技术。相比于Direct3D,OpenGL具有跨平台的优势。尽管在游戏领域,DirectX的影响力已渐渐超越OpenGL并被大多数PC游戏开发商所采用,但在专业高端绘图领域,OpenGL因为色彩准确,仍然是不能被取代的...
阅读全文
摘要:本文接着上一篇文章继续记录Direct3D(简称D3D)播放视频的技术。上一篇文章中已经记录了使用Direct3D中的Surface渲染视频的技术。本文记录一种稍微复杂但是更加灵活的渲染视频的方式:使用Direct3D中的Texture(纹理)渲染视频。纹理有关的基础知识在记录使用Direct3D的...
阅读全文
摘要:上一篇文章记录了GDI播放视频的技术。打算接下来写两篇文章记录Direct3D(简称D3D)播放视频的技术。Direct3D应该Windows下最常用的播放视频的技术。实际上视频播放只是Direct3D的“副业”,它主要用于3D游戏制作。当前主流的游戏几乎都是使用Direct3D制作的,例如《地下城...
阅读全文
摘要:前一篇文章对“Simplest Media Play”工程作了概括性介绍。后续几篇文章打算详细介绍每个子工程中的几种技术。在记录Direct3D,OpenGL这两种相对复杂的技术之前,打算先记录一种和它们属于同一层面的的简单的技术——GDI作为热身。GDI简介下面这段文字摘自维基百科:图形设备接口(...
阅读全文
摘要:原因是:DDrawSurface 丢失, DDraw表面在很多情况下都会丢失(如:启动其他全屏独占程序,屏保,或锁屏时), 表面丢失其实就是表面所使用的内存或显存被DirectDraw系统释放, 分配给其他程序. 如果表面丢失, 对此表面的操作都会返回 DDERR_SURFACELOST , 此时应...
阅读全文
摘要:我们如果是在在RGB视频上画图(直线,矩形等),一般采用双缓冲区继续,使用内存MemoryDC,来实现画的图形在视频上显示不闪烁的功能,但是我们知道用RGB显示视频都是使用GDI进行渲染,这样很耗CPU,那么我们能不能在YUV上进行视频渲染呢,答案是肯定的,使用ddraw直接显示yuv就ok了,可以...
阅读全文
摘要:对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译。一开始我也为此费了很大的功夫,比如说修改代码、修改编译选项使其编译通过。因为大家 Visual Studio 的版本与 DirectShow 的版本各不相同,导致问题...
阅读全文
摘要:DirectShow提供了用应用程序从适当的硬件中捕捉和预览音/视频的能力。数据源包括:VCR,camera,TVtuner,microphone,或其他的数据源。一个应用程序可以立刻显示捕捉的数据(预览),或是保存到一个文件中。在这个例子中,ICaptureGraphBuilder接口是处理捕捉工...
阅读全文
摘要:流媒体的处理,以其复杂性和技术性,一向广受工业界的关注。特别伴随着因特网的普及,流媒体在网络上的广泛应用,怎样使流媒体的处理变得简单而富有成效逐渐成为了焦点问题。选择一种合适的应用方案,事半功倍。此时,微软的DirectShow,给了我们一个不错的选择。 DirectShow是微软公司提供的一套在...
阅读全文
摘要:// showpicDlg.cpp : 实现文件//#include "stdafx.h"#include "showpic.h"#include "showpicDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAbo...
阅读全文