您的位置:

关于wmaextradata的信息

本文目录一览:

android中这里的extra_data什么意思?是键怎么理解(我学过点java但在学的过程中对

date不就是你上面声明的String data="Hello SecondActivity"吗?

然后通过intent.putExtra("key",value);这个方法传递参数。

这个key就是传递参数的键,value是参数的值(可以是String、int、boolean等类型)

然后可以在SecondActivity中通过getIntent().getStringExtra("key");获取传递的值(这里的key和上面的intent.putExtra()中的key要一致)

电脑F盘文件全部不见了,而全部都变成了*.chk文件,该怎么恢复原来的文件

视觉效果中,设置为调整为最佳性能→确定即可。

2)“禁用错误汇报”。

3)再点“启动和故障恢复”-“设置”,将“将事件写入系统日志”、“发送管理警报”、“自动重新启动”这三项的勾去掉。再将下面的“写入调试信息”设置为“无”。

4)“我的电脑”-“属性”-“高级”-“性能”-“设置”-“高级”,将虚拟内存值设为物理内存的2.5倍,将初始大小和最大值值设为一样(比如你的内存是256M,你可以设置为640M),并将虚拟内存设置在系统盘外(注意:当移动好后要将原来的文件删除)。

5)将“我的文档”文件夹转到其他分区:右击“我的文档”-“属性“-“移动”,设置到系统盘以外的分区即可。

6)将IE临时文件夹转到其他分区:打开IE浏览器,选择“工具“-“internet选项”-“常规”-“设置”-“移动文件夹”,设置设置到系统盘以外的分区即可。

2、加速XP的开、关机

1)首先,打开“系统属性”点“高级”选项卡,在“启动和故障恢复”区里打开“设置”,去掉“系统启动”区里的两个√,如果是多系统的用户保留“显示操作系统列表的时间”的√。再点“编辑”确定启动项的附加属性为/fastdetect而不要改为/nodetect,先不要加 /noguiboot属性,因为后面还要用到guiboot。

2)接下来这一步很关键,在“系统属性”里打开“硬件”选项卡,打开“设备管理器”,展开“IDE ATA/ATAPI控制器”,双击打开“次要IDE通道”属性,点“高级设置”选项卡,把设备1和2的传送模式改为“DMA(若可用)”,设备类型如果可以选择“无”就选为“无”,点确定完成设置。同样的方法设置“主要IDE通道”。

3)设置预读改善开机速度,打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters,右边窗口将EnablePrefetcher的数值更改为1(0-禁用预读,1-预读应用程序,2-系统启动预读,3-前两者皆预读)。电脑是 PIII 800MHz 以上的可以尝试将数值更改为4或5。

4)顺便把关机也加速一下吧。打开注册表(开始-运行-regedit),单击“我的电脑”打开“编辑”菜单的“查找”,输入AutoEndTasks,点“查找下一个”。双击打开找到的结果修改“数值数据”为1(此项是让系统自动关闭停止响应的程序)。然后在AutoEndTasks的下面找到HungAppTimeout(将其“数值数据”设为2000或者更小,推荐设为200),再找到WaitToKillAppTimeout(将其“数值数据”设为2000或者更小,推荐设为1000)。在这里顺便也把菜单延迟的时间修改一下,在AutoEndTasks的下面找到MenuShowDelay,数值是以毫秒为单位,如果想去掉菜单延迟就设为0。修改后点“编辑”菜单,打开“查找下一个”(快捷键F3),继续查找,把找到的结果都安照上一步的方法修改(注意:数值要对应相同)。

5)用上面的方法找到WaitToKillServiceTimeout并设置数值与WaitToKillAppTimeout相同。

6)享受了极速重启的乐趣后我们再进一步加速一下启动的速度,打开“系统属性”-“高级”-“启动和故障恢复”设置,打开“系统启动”区的编辑,在fastdetect的后面加上/noguiboot,这样在启动的时候就不会再显示滚动条。如果你非常喜欢这个滚动条的显示这一步就不用做了。

7)MsConfig。选择“运行”-“msconfig”。我们要动手脚的是“启动”选项卡,点击它,这个选项卡中显示了Windows启动时运行的所有程序。这里没有一个程序对Windows来说是生死悠关的,所以放心大胆地把不要的去掉。

3、减少开机磁盘扫描等待时间

选择“开始→运行”,在运行对话框中键入“chkntfs /t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs /x c:”命令;如果要恢复对C盘的扫描,可使用“chkntfs /d c:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。

4、关掉调试器Dr. Watson

运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十M的空间。这是出错程序的现场,对我们没用。然后打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug子键分支,双击在它下面的Auto键值名称,将其“数值数据”改为0,最后按F5刷新使设置生效,这样就彻底来取消它的运行了。另外蓝屏时出现的memory.dmp也可删掉。在“我的电脑→属性→高级→设置→写入调试信息→选择无”。

5、关闭“系统还原”

鼠标右健单击桌面上的“我的电脑”,选择“属性”,找到“系统还原”去掉,这样可以节省好多空间。

6、关闭“休眠支持”

休眠功能会占用不少的硬盘空间,如果使用得少不妨将其关闭。打开“控制面板”-“电源选项”-“休眠”选项卡,取消“启用休眠”复选框。

8、不加载DLL文件(卸载无用的动态链接)

找到注册表如下位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer,接下来建立一个名为AlwaysUnloadDLL,值为1的双字节值。如果想要去除这项优化,只需把该键值设为0(也可以干脆把键删掉)。

10、加快窗口显示速度

打开注册表编辑器,找到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics,右边窗口找到MinAniMate键值,把它改为0。

16、删除强加的附件

用记事本修改\winnt\inf\sysoc.inf,用查找/替换功能,在查找框中输入“,hide”(一个英文逗号紧跟hide),将“替换为”框设为空,并全部替换,这样,就把所有的,hide都去掉了;保存退出;运行“添加-删除程序”,就会看见“添加/删除Windows组件”中多出了好几个选项,这样你可以删除些没有用的附件。

17、启动时禁止自动调用"Windows Messenger"

运行注册表编辑器,找到并删除"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\MSMSGS"此键来实现。

20、清除预读文件

定期删除该文件夹内的所有文件,在安装盘的\Windows\prefetch文件夹里。

二、硬件优化设置

1、关掉不用的设备

在设备管理器中,将PCMCIA卡、调制解调器、红外线设备、打印机端口(LPT1)或者串口(COM1)等不常用的设备停用,在要停用设备属性对话框中的“常规”选项卡中选择“不要使用这个设备(停用)”。当需要使用这些设备时再从设备管理器中启用它们。

2、内存性能优化

WindowsXP中有几个选项可以优化内存性能,它们全都在注册表下面位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

1)禁用内存页面调度(Paging Executive)

XP会把内存中的片断写入硬盘,我们可以阻止它这样做,让数据保留在内存中,从而提升系统性能。256M以上内存才使用这个设置。把“DisablePagingExecutive”的值从0改为1就可以禁止内存页面调度了。

2)提升系统缓存

必须有256M以上的内存,才激活它。把LargeSystemCache键值从0改为1,一般来说,这项优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。

3)输入/输出性能

内存大于256M才更改这里的值,这个优化只对server(服务器)用户才有实在意义,它能够提升系统进行大容量文件传输时的性能。建一个DWORD(双字节值)键值,命名为IOPageLockLimit,数值设8M-16M字节之间性能最好,具体设什么值,可试试哪个值可获得最佳性能。这个值是用字节来计算的,比如你要分配12M,就是12×1024×1024,也就是12582912。

3、启动硬盘/光驱DMA模式

“系统属性”-“硬件”-“设备管理器”,在设备列表中选择“IDE ATA/ATAPI控制器”,双击“主要 IDE 通道”或“次要 IDE 通道”,在其属性对话框的“高级设置”选项卡中检查DMA模式是否已启动,一般来说如果设备支持,系统就会自动打开DMA功能,如果没有打开可将“传输模式”设为“DMA(若可用)”(在BIOS里也应该要先设为支持DMA)。

4、关闭自动播放功能

运行“组策略”程序,在组策略窗口左边栏中打开“计算机配置”,选择“管理模板”下的“系统”,然后在右边的配置栏中找到“关闭自动播放”并双击它,会弹出“关闭自动播放属性”对话框,在其中“设置”选项卡中选择“已启用”,“关闭自动播放”下拉列表中选择“所有驱动器”。

5、设置二级缓存容量

WindowsXP有时无法自动检测处理器的二级缓存容量,需要我们手动设置。运行注册表编辑器,找到HKCU_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management,选择Dword值SecondLevelDataCache(如果没有就新建这个值),修改这个值(填时使用10进制)为你的CPU的二级缓存的大小,比如你的CPU的二级缓存是256KB,就修改Dword值SecondLevelDataCache为10进制的256即可。二级缓存大小介绍AMD系列Duron 64KB K6-3 Thunderbird AthlonXP 256KB K6-2 Athlon 512KB;Intel系列CeleronA Celeron2 128KB P2 Mobile P3E(EB) P4 Willamette 256KB P2 P3(katmai) P4(Northwood) 512KB。使用Winxp的请务必检查一下:打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion将"RegDone"的数值,由0改成1才算完成,这个操作很重要,很多奇怪的小毛病因此而解决。

三、网络优化设置

1、优化网上邻居

2、解决WinXP运行时停顿问题

开始-网络连接-本地连接-选择属性-选择“Internet协议(TCP/IP)”属性,改IP地址:192.168.0.1 子网掩码:255.255.255.0 。

3、让XP自动连网

打开拨号连接属性,把“提示名称、密码、凭证等”的勾去掉,然后把该拨号放到“启动”即完成。

4、释放QoS Packet占用的20%网络带宽

打开“组策略”窗口,在左边栏中展开“计算机配置→管理模板→网络→QoS数据包调度程序”,右边窗口双击“限制可保留带宽”,在其属性对话框中的“设置”选项卡中将“限制可保留带宽”设置为“已启用”,然后在下方“带宽限制”栏将“带宽限制”设置为 0 就行了。

5、优化NTFS文件系统

取消更新最后一次磁盘访问,运行“regedit”在HKEY_LOCAL_MACHINE\SYSTEM\CurrentContolSet\Control\Filesystem中,加DWORD,数值为1。

6、优化防火墙

1)启用或禁用Internet连接防火墙,打开“网络连接”,右击要保护的连接,然后在属性框中选“高级”-“设置”-“启用”;

2)启用或禁用安全日志记录选项,右击启用防火墙的连接,在其属性框中选“高级”-“设置”-“高级”-“安全日志记录设置”,把两项勾去掉即可。

7.提高10/100M网卡传输速率

右键网卡所用的连接,打开“属性”对话框,选择所用网卡“配置”,“高级”栏中选择“Link Speed/Duplex Mode”,紧接着在“设置值”栏中将“Auto Mode”更改为“10 Half Mode”。这样,手工将10/100M自适应网卡的属性强制为10M半双工模式,使网卡之间不进行自动协商,让网卡之间在传输数据时始终以10Mbps的速度进行,大大提高了网络之间的传输效率。此设置只对部分网卡有效。

8、让IE快速启动并支持多线程下载

1)快速启动:右击任务栏上InternetExplorer图标,在“目标”后面加上“-nohome”参数(加参数后如下:"C:\Program Files\Internet Explorer\IEXPLORE.EXE" -nohome),确定即可。2)支持多线程下载:运行注册表编辑器,在“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings”下新建双字节值项“MaxConnectionsPerServer”,它决定了最大同步下载的连线数目,一般设定为5~8个连线数目比较好。

四、系统减肥设置

1、删除系统文件备份 sfc.exe /purgecache(一般用户是不怎么用的)。

2、删除驱动备份 windows\driver cache\i386 目录下的Driver.cab文件(73M)。

3、取消系统还原(建议安装xp的盘使用,其它盘都别用,通过系统清理程序定期删除一些比较早的还原点)。

4、删除帮助文件(使用中文汉化包的文件大小为92兆,刚开始使用xp的同志最好别删)。

5、删掉\WINDOWS\system32\dllcache下文件(这是备用的dll文件,只要你拷贝了安装文件,完全可以这样做)。

6、把我的文档、IE的临时文件夹都转到其他分区。(同时对系统的速度和硬盘都有好处,如果使用的是双系统,最好把两个系统的IE临时文件都放在同一个文件夹,这样既加快速度有节省空间)。

7、把虚拟内存也转到其他盘(就是将这些东西和平时临时下载文件放在一个不大的分区里,这样也方便整理硬盘)。

8、将应用软件装在其他盘(这对重装系统也有好处,可以省很多事)。

9、删除\windows\ime下不用的输入法(日文、韩文、繁体中文输入法,到底哪个是哪个自己研究一下吧)。

10、如用NTFS格式装XP,本身就节省空间。

五、其他优化设置

1、修改Windows XP的登录背景图案

打开注册表编辑器,找到HKEY_USERS\.DEFAULT\Control Panel\Desktop子键分支,双击wallpaper,键入你选择好的图片的路径,点击“确定”,然后找到Tilewallpaper,双击它输入键值“1”。

2、修改登录时的背景色

打开注册表编辑器,找到HKEY_USERS\.DEFAULT\Control Panel\Colors子键分支,双击Background键值名,出现“编辑字符串”对话框,在“数值数据”文本框中输入代表颜色的键值(比如黑色的RGB值为000,白色的RGB值为255 255 255,系统默认值是58 110 165),点击“确定”按钮即可。

3、设置启动信息或增加警告信息

打开注册表编辑器,找到HKEY_LOCAL_MACHINE_SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon子键分支,双击在它下面的LegalNoticeCaption健值名称,打开“编辑字符串”窗口,在“数值数据”文本框中输入信息对话框的标题,比如“你好,欢迎使用本机器”,然后双击LegalNoticeText,在随后出现的“编辑字符串”窗口中输入想要显示的警告信息,比如“请不要随意修改本级的设置,谢谢!”,单击“确定”按钮。

4、定制按钮文字颜色

打开注册表编辑器,找到HKEY_CURRENT_USER\Control Panel\Colors子键分支,双击Bottontext,将其键值改为你想要颜色的值,如红色255 0 0,单击“确定”按钮,重启即可看到效果了,此时按钮上的文字颜色将变成红色,此外你还可以修改按钮的宽度和高度及背景等参数。

5、修改鼠标右键菜单

这里以在鼠标右键菜单上添加“用DOS窗口在这里浏览”为例。1)打开注册表编辑器,找到HKEY_CLASSES_ROOT\Directory\shell,然后选中它,点击鼠标右键,新建一个主键,取名为“DOS”,然后选中新建的主键,在右边双击默认字符串值,在弹出的对话框中输入“用DOS窗口在这里浏览”,然后选中新建的主键,再建立一个主键,取名为“command”,选中“command”主键,修改默认值为“cmd.exe /k "cd %L"”即可。

6、修改系统ID号(ID号在WinXP里面很重要)

在系统属性里面的常规标签下我们可以看到一串数字就是ID号。正版的WinXP每一套的ID号是不相同的,修改它要打开注册表编辑器,ID号主要放在这几个键值下:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration的字符串ProductId

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\User information的字符串产品标识 /*如果没有使用向微软注册的话,这里不会出现*/

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion的字符串ProductId

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的字符串ProductId

以上4个地方就是在注册表中存放ID的键值,要同时修改,修改完以后再看系统属性里面的常规标签,以免修改失败,导致ID还原。

7、修改系统版本号

在关于Windows里面有一个内部版本号(正式版的是:2600.xpclient.010817-1148),这个版本号也是存放在注册表中的,位置在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion,它用一个字符串来记录,修改这个名字叫做BuildLab的字符串就可以修改你的XP的版本号。

8、音乐目录图片随意设

Windows XP在以往的Windows操作系统之上提供了很多更高级的管理功能,其中包括图片册生成器,该图片册生成器可以将唱片封面图片自动放置到用户对应保存的音乐文件夹内(这些音乐文件一般是微软的WMA格式文件)。虽然这项功能非常方便,但也存在一些问题。例如如果有些用户以前已经把一些音乐CD光盘转录成MP3格式并保存在硬盘上,虽然用户能够从一些音乐网站如""和""下载该CD光盘的唱片封面页,但用户只能手工一个一个地将这些封面页添加至每个音乐文件夹中。这将花费较长时间,而且一旦用户重新安装操作系统,就只好重复上述复杂的操作。如何解决这一难题呢?其实并不复杂,当用户下载音乐唱片封面图片时,请将该图片文件名保存为"folder.jpg"并放至相应的音乐文件夹内,这样Windows XP系统会自动将其默认为该文件夹的缩略图片,而且如果用户使用Media Player for Windows XP(MPXP)播放器来播放音乐文件时,系统还会自动显示出该唱片封面图片。这样操作之后即使用户以后重新安装操作系统也没有问题。此外,如果用户有需求,还可以在保存上述提及的"folder.jpg"文件时再保存一个名为"albumartsmall.jpg"的较小的图片文件,这样做的好处是如果用户使用MPXP播放器播放音乐文件,但播放器的窗口小于200 X 200像素,该播放器便可以直接显示这幅较小的图片,否则播放器需要对"folder.jpg"进行处理,调整其大小,以便显示在较小的窗口,而这自然会对文件调用的速度产生一定影响。

9、便捷地硬盘碎片整理

电脑使用一段时间后硬盘会产生大量文件碎片,用户需要定期调用磁盘碎片整理程序进行清理。为此,这里向你提供一个可以让你更加便捷地调用整理硬盘碎片程序的方法。使用“记事本”编辑一个名为"context_defrag.inf"的注册表导入文件,并在该文件中输入下列内容:

; context_defrag.INF

; Adds Defrag to the right click context menu in Windows XP

[version]

signature="$CHICAGO$"

[DefaultInstall]

AddReg=AddMe

[AddMe]

HKCR,"Drive\Shell\Defrag\command",,,"DEFRAG.EXE %1"

编辑完毕后用鼠标右击该文件并选择“安装”,安装后即在Windows XP操作系统内添加了一个文本菜单。用户需要整理硬盘时,打开“我的电脑”,用鼠标右击选中需要进行整理的硬盘盘符,从弹出的文本菜单中选择"defrag"项,这时系统就会自动调用内置的"defrag.exe"程序整理硬盘。如果用户需要将上述安装到系统注册表的信息删除,可使用regedit.exe注册表编辑器进行编辑修改,具体操作为寻找"HKEY_CLASSES_ROOT\Drive\shell\"目录项,删除其中的"defrag"文件夹即可。

10、清除共享文件夹

WindowsXP操作系统一个比较不友好的用户界面是在“我的电脑”窗口上半部分显示所有共享的文件夹,如果用户设置的共享文件夹较多,每当打开“我的电脑”窗口时,就会列有很多共享文件夹信息。如何删除这些信息显示呢?使用注册表编辑器,找到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\My Computer\NameSpace\DelegateFolders",在该主键下有一个名为的副键,删除该副键便可清除那些共享文件夹信息。

11、显示共享设置标签

具体的修改方法如下:打开“我的电脑”中的“工具”,选择“文件夹属性”,调出“查看”标签,在“高级设置”部分滚动至最底部将"Use simple file sharing (Recommended)"前面的选择取消,另外如果选项栏里还有"Mickey Mouse"项也将其选择取消。这样修改后用户就可以象使用Windows2000一样对文件夹属性进行方便修改了。

12、调用系统声音方案

WindowsXP提供了更加优秀的声音方案,但系统默认却没有调用该方案。为激活该方案,我们需操作:打开“控制面板”,选择“声音、语音、音频设备”项,从中找到“修改声音方案”的任务栏,在打开的对话框中选择“Windows默认”,此时系统会提示用户是否保存以前的声音方案设置,用户可以选择“否”并点击“确认”。

13、让欢迎窗口更清晰

打开注册表编辑器找到这两个主键"(default user)HKEY_USERS\.Default\Control Panel\Desktop\FontSmoothing(String Value)"和"HKEY_USERS\.Default\Control Panel\Desktop\FontSmoothingType(Hexadecimal DWORD Value)",将键值修改为“2”,便可以实现清晰显示效果了。

14、激活显示

运行栏中输入:oobe/msoobe /a 如果出现“Windows 产品启用”,表明Windows已经启用。

15、制做dos启动盘

右键点击“3.5软盘”,选格式化,再选“建立一个MS-DOS开机磁盘”。

16、解决任务栏假死(权威的消除QQ、IE等引起任务栏假死)

“控制面板”-“区域和语言选项”-“语言”-“详细信息”,在弹出的“设置窗口”中选择“首选项”的“语言栏”,关闭“在桌面上显示语言栏”,在第三项“在通知区域显示其他语言栏图标”复选框上打上勾。如果不需要手写识别、语音识别的话,也可以再勾选最后一项“关闭高级文字服务”。

17、解决某些软件与WindowsXP不兼容问题

将那些不能安装的软件的安装文件或是已安装但不兼容的软件拖拽到WindowsXP桌面上,然后用鼠标右键单击文件图标,选择“属性”选项,并选择需要的作系统兼容模式,这样就可以正常安装或使用软件了。

18、双操作系统,卸载XP

先用启动盘启动,然后键入“a:\sys c:”,再从硬盘重新启动,然后删去 boot.ini, bootsect.dos, ntdetect.com, ntldr ,然后把XP的windows, program files, Documents and Settings等目录直接删去,或格式化WinXP的硬盘(如果你的XP和Win98不在一个分区上的话)。

19、如何判断XP是不是中文正式版

打开看安装文件夹i386,找到SETUPP.INI,用记事本打开,如果内容为:

如果和下面一样,那就是用英文版 corpfiles patch 的。

[Pid]

ExtraData=796674736977656D7A622E385892A4

Pid=55274270

目前流出的中文企业版SETUPP.INI 内容是

[Pid]

ExtraData=766E74737A7B787061627428828710

Pid=55394270

我的惠普打印机打印PDF文件老是打出Error:Extradata等英文, 打印word等文件就没事,请问是什么原因,谢谢

应该是PDF浏览器的问题,换个PDF浏览器试试,比如说

Foxit Reader 试试。

如果你换了浏览器还是不行,估计就是源文件的问题了!

求ffmpeg音频压缩代码(wav压缩成wma)

这个简单。大致的思路是

1.打开wav文件

2.打开要输出的wma文件

3.不停的读取数据帧

4.读取以后解码并写入wma

5.关闭wav文件

6.关闭wma文件

重新写例子太麻烦贴点代码吧

#include "Debug.h"

#include "FFMpegAVFileReader.h"

#include "FFMpegAVFileReaderFactory.h"

#include sstream

#include "yk_convert.h"

static char h264_head[4] = {(char)0x00,(char)0x00,(char)0x00,(char)0x01};

namespace YK

{

FFMpegAVFileReader::FFMpegAVFileReader()

{

ffmpeg_avcodec_init();

ffmpeg_av_register_all();

av_log_set_callback(ffmpeg_log_callback);

m_format_context = 0;

m_input_format = 0;

m_format_parameters = 0;

m_packet = (AVPacket*)av_mallocz(sizeof(AVPacket));

}

FFMpegAVFileReader::~FFMpegAVFileReader()

{

Close();

av_free(m_packet);

}

avfile_reader_param_t* FFMpegAVFileReader::GetParam()

{

//YK::AutoLock l(m_lock);

return m_param;

}

void FFMpegAVFileReader::Seek(int pts)

{

YK::AutoLock l(m_lock);

int ret = av_seek_frame(m_format_context,-1,(YK::int64_t)pts * (YK::int64_t)1000,AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_ANY);

//if(ret = 0)

//{

// for(int i = 0; i m_format_context-nb_streams; i++)

// {

// avcodec_flush_buffers( m_format_context-streams[i]-codec );

// }

//}

//std::stringstream ss;

//ss "pts = " pts

// " ret = " ret std::endl;

//OutputDebugString(ss.str().data());

}

void FFMpegAVFileReader::GetDuration(double start,double end)

{

//YK::AutoLock l(m_lock);

start = (double)(m_start_time / 1000000);

end = start + (double)(m_duration / 1000000);

}

service_error_t FFMpegAVFileReader::Open(int time_out)

{

YK::AutoLock l(m_lock);

service_error_t service_error;

// 打开文件

if (av_open_input_file(m_format_context,TToANSI(m_param.input_file_path).data(),m_input_format,0,m_format_parameters) 0)

{

service_error.init(service_error_type_failed,"av_open_input_file failed");

return service_error;

}

// 查询流信息

if(av_find_stream_info(m_format_context) 0)

{

service_error.init(service_error_type_failed,"av_find_stream_info failed");

return service_error;

}

m_start_time = m_format_context-start_time;

m_duration = m_format_context-duration;

#ifdef _DEBUG

pFile = fopen("D:/1.out","w+b");

#endif

// 保存流信息

av_stream_info_t av_stream_info;

for(unsigned int i = 0; i m_format_context-nb_streams; i++)

{

AVStream *st = m_format_context-streams[i];

AVCodecContext *enc = st-codec;

if(enc-codec_type == AVMEDIA_TYPE_AUDIO)

{

// 音频

av_stream_info.av_stream_info_type = av_stream_info_type_audio;

av_stream_info.codec_id = codec_id_none;

//channel_layout = enc-channel_layout;

av_stream_info.audio_channels = enc-channels;

av_stream_info.audio_samplepersec = enc-sample_rate;

av_stream_info.audio_bitpersample = yk_sample_format(enc-sample_fmt);

//audio_sample_fmt = enc-sample_fmt;

//input_codecs[nb_icodecs++] = avcodec_find_decoder_by_name(audio_codec_name);

av_stream_info.codec_id = yk_code_id(enc-codec_id);

av_stream_info.extradata_size = enc-extradata_size;

if(av_stream_info.extradata_size)

memcpy(av_stream_info.extradata,enc-extradata,enc-extradata_size);

if(av_stream_info.codec_id == codec_id_mp3)

{

av_stream_info.extradata_size = sizeof(mpeg1_waveformat_extradata);

mpeg1_waveformat_extradata* pMpeg1WaveFormat = (mpeg1_waveformat_extradata*)av_stream_info.extradata;

pMpeg1WaveFormat-dwHeadBitrate = enc-bit_rate;

pMpeg1WaveFormat-dwPTSHigh = 0;

pMpeg1WaveFormat-dwPTSLow = 0;

pMpeg1WaveFormat-fwHeadFlags = 25;

pMpeg1WaveFormat-fwHeadLayer = ACM_MPEG_LAYER3;

pMpeg1WaveFormat-fwHeadMode = ACM_MPEG_STEREO;

pMpeg1WaveFormat-fwHeadModeExt = 1;

pMpeg1WaveFormat-wHeadEmphasis = 1;

}

AddStreamInfo(av_stream_info);

m_stream_audio_index = i;

}

else if(enc-codec_type == AVMEDIA_TYPE_VIDEO)

{

// 视频

av_stream_info.av_stream_info_type = av_stream_info_type_video;

av_stream_info.codec_id = codec_id_none;

av_stream_info.video_width = enc-width;

av_stream_info.video_height = enc-height;

av_stream_info.video_profile = enc-profile;

av_stream_info.video_level = enc-level;

if(av_stream_info.video_profile 0)

{

av_stream_info.video_profile = 77;

}

if(av_stream_info.video_level 0)

{

av_stream_info.video_level = 30;

}

av_stream_info.extradata_size =

关于wmaextradata的信息

2023-01-04
关于basenamephp的信息

2022-11-25
关于urijava的信息

2023-01-08
关于gvmgolang的信息

本文目录一览: 1、如何为Linux安装Go语言 2、如何配置go语言开发环境 3、如何在linux上安装go语言 4、golang 怎么在mac下生成ubuntu 如何为Linux安装Go语言 1.

2023-12-08
关于gvmgolang的信息

本文目录一览: 1、如何为Linux安装Go语言 2、如何配置go语言开发环境 3、如何在linux上安装go语言 4、golang 怎么在mac下生成ubuntu 如何为Linux安装Go语言 1.

2023-12-08
关于golangxcode的信息

2022-11-27
关于ipideadaili的信息

2023-01-08
关于java网的信息

2023-01-08
关于key_cache_block_size的信息

2023-01-06
关于mysqlphpapachewin的信息

2022-11-09
关于chjsjsbvc的信息

本文目录一览: 1、jsb文件是什么文件格式 jsb文件是什么文件格式 使用办公之星控件(),客户端无须安装office软件名称:办公之星控件(OStarOCX)软件版本:V1.02更新日期:2003

2023-12-08
关于cjscmssy的信息

本文目录一览: 1、大金cms系列RZP400SY1和RZP450SY1,哪一款更好!有能提供两款的具体参数对比的吗 2、我的电脑CMS设了密码,现在忘了,如何破除!!!!! 3、rs.MoveNex

2023-12-08
关于javamicrosoftazure的信息

2023-01-06
java相关信息,java资讯

2022-11-23
关于golangdevop的信息

2022-11-27
关于javah5的信息

2022-12-02
关于phpsessionregist的信息

2022-11-25
关于cjson.dll下载的信息

本文目录一览: 1、开机提示没有找到json.dll因此这个程序未能启动 2、jsonv6.dll 怎么修复 3、System.Net.Json.dll文件下载 4、jsonfx.json.dll应该

2023-12-08
关于cisjsbsnd网站的信息

本文目录一览: 1、铁路信号微机联锁接口电路中的JSDPC-1000型动态继电器,可以用什么型号的继电器代替?十分感谢您的回答。 铁路信号微机联锁接口电路中的JSDPC-1000型动态继电器,可以用什

2023-12-08
关于cvsjson的信息

本文目录一览: 1、Python 常用的标准库以及第三方库有哪些 2、怎么能知道从期货api获取来的数据都是什么格式?怎么把获取来的数据存在本机,以便研究数据结构。 3、Python中如何将json或

2023-12-08