【发布时间】:2014-12-01 22:12:30
【问题描述】:
我有一个以 WinCE 6.0 作为操作系统的嵌入式设备。制造商为其提供了用于 3rd 方开发的 IDE。 IDE 几乎只允许
- .NET 3.5 Compact Framework 脚本,从主应用程序的各种事件中调用
- 向设备添加文件。
包含的媒体播放器似乎正在使用 DirectShow,并且操作系统具有仅用于 mpeg-1 编码视频播放的媒体编解码器。 我的目标是能够在该主应用程序中播放使用其他编解码器编码的媒体。
我已经设法使用 DirectShowNETCF(.NET Compact Framework 的 DirectShow 包装器)并成功播放 mpeg-1 编码的视频。
我对这些东西完全陌生,我有很多(愚蠢的)问题。我会尽量缩小范围:
操作系统基于 WinCE,但据我了解,它实际上始终是它的某个定制版本(通过 Platform Builder)。之后为其开发任何东西的唯一“正确方法”是使用制造商通常提供的SDK。正确的?就我而言,SDK 非常有限,并且如上所述紧密集成到 IDE 中。但是,.NET CF 3.5 能够进行互操作,因此可以调用本机库 - 只要它们针对正确的平台进行编译。
编译后的代码几乎只是处理器的指令(汇编代码),编译器会根据目标处理器设置选择正确的指令。还有一个 PE-header 定义了程序要在哪个平台上运行。如果我将我的“helloworld.exe”(除了返回特定的退出代码什么都不做)定位到 x86 并用 VC 编译它,它应该工作吗?
如果 PE-header 确实是问题所在,是否可以在没有 SDK 的情况下设置 WINCE?我真的需要整个 SDK 来创建仅使用基本类型的简单可执行文件吗?我正在使用 VS2010,它甚至不再支持智能设备开发,我不想仅仅出于测试目的而降级。
以上问题是我实际想法的前传:为 WinCE 移植 ffmpeg/ffdshow。这实际上已经是exists,但不是针对英特尔凌动的,也不是为英特尔凌动构建的。评论?
如果本机实现是不可能的,我最终会用 C# 实现一些特定的编解码器......那么这可能是一项相当艰巨的任务。但是必须选择 C# 而不是原生,我会遇到编解码器性能问题吗?我的意思是.. C# 有那么慢吗?
谢谢。
【问题讨论】:
标签: visual-studio ffmpeg windows-ce cross-compiling codec