OSD 在wince 小结

2024-01-17 20:18
文章标签 小结 wince osd

本文主要是介绍OSD 在wince 小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在做视频播放器的时候才开始接触这个OSD,有的时候也叫Overlay,原本以为显示就是把数据往显存里面送,根本就没有层的概念,后来才发现一些芯片或者显卡已经把屏幕分层了,我们的操作系统占据一层,然后我们可以使用其他的层作一些自己小要得效果,这些效果主要就是透明处理。我们在播放视频的时候,经常会在视频之上花一些东西,难啊,一种比较笨的方法就是在解压之后的视频数据上面去添加自己的数据,实现起来还是有点小困难的,后来才发现芯片已经有个这个功能,能够用硬件做的东西坚决不用软件去实现,然后就开始看芯片资料。原来6410是支持5层屏幕的,那我们一些透明效果就可以不通过什么RGB ahpla通道算法来做,又烦又慢,但是怎么用呢,看芯片资料,原理是一系列的寄存器,然后,一个缓存之类的,这个要自己写的话还是很难,一想这个bsp里面应该有嘛!然后去看bsp的驱动,果然,同构IOControl,一系列的操作嗾使可行的,然后自己写了一个直接用IOControl的overlay程序,发现可行,不错,那种半透明效果硬件实现真是太简单了。之后,这一块就放置了一段时间,忙其他方面的去了,后来,到用到的时候,发现有时候显示驱动已经把这一层占用了,怎么办,你去调用就会出错,这样直接应用程序调用底层还是有缺陷的,因为当中还隔着一个微软,如果微软的那一套东东已经把你的资源占用了,你就不能用了,最简单的一个例子就是,播放的时候使用全屏之后,发现资源已经被占用,晕死,原来微软的操作系统不只是占用一层的,全频它居然又新建了一层,~!◎#¥%。郁闷了,后来想想也是,这样直接调用底层,很多东西都没有考虑到,还是往微软的一块靠吧,然后又花时间去看微软的显示驱动,饿,原来显示驱动里面已经吧overlay做了,但是我们怎么用呢?GDI很明显是不能用的,慢慢问题的“主角”浮出水面,原来是用ddraw,ddraw原来不只是可以直接访问显存这么简单,一些显示硬件的特殊效果居然也可以集成到里面去,然后又开始看DDraw,看了一段时间,发现这个应该就是“正主”了,但是还远远不够,我们要得是视频,是要基于DShow的,后来才发现还有一个东东要用Overlay Mixer Filter,晕死,隐藏这么深,呵呵,还是被我找出来了。

这篇关于OSD 在wince 小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/617094

相关文章

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

$在R语言中的作用示例小结

《$在R语言中的作用示例小结》在R语言中,$是一个非常重要的操作符,主要用于访问对象的成员或组件,它的用途非常广泛,不仅限于数据框(dataframe),还可以用于列表(list)、环境(enviro... 目录1. 访问数据框(data frame)中的列2. 访问列表(list)中的元素3. 访问jav