伙计们,
我想知道是否有人可以向我解释视频解码的输出究竟是什么.假设它是MP4容器中的H.264流.
通过在屏幕上显示内容,我猜解码器可以提供两种不同类型的输出:
还有时间戳问题.
您能否请教我或指出解码器生成的内容以及视频客户端如何使用此信息在屏幕上显示内容的正确链接?
我打算下载VideoLAN源并检查它,但一些解释会有所帮助.
预先感谢您的帮助.
问候,彼得
我一直在ListView对象上使用ArrayListAdapter.我想知道是否有一种简单的方法可以将每个listview项目的额外数据存储为标记对象.
我试图确保我的应用程序中没有内存泄漏.我将泄漏范围缩小到以下简单的SDL应用程序:
int main(int argc, char* argv[]) {
if( SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER) != 0) {
printf("Could not initialize SDL - %s\n", SDL_GetError());
return -1;
}
int flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL|SDL_FULLSCREEN;
SDL_Surface* screen = SDL_SetVideoMode(0, 0, 0, flags);
SDL_Quit();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我在这个应用程序上运行valgrind时,它报告了一堆内存泄漏,如本消息末尾所列.
请注意,根据SDL_SetVideoMode上的文档,SDL_SetVideoMode返回的表面由SDL_Quit释放,并且不能被调用者释放.
http://sdl.beuc.net/sdl.wiki/SDL_SetVideoMode
如果有人能告诉我我错过了什么,我将不胜感激.
预先感谢您的帮助.
==651== Memcheck, a memory error detector
==651== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==651== Using Valgrind-3.6.1-Debian and LibVEX; rerun with -h for copyright info
==651== Command: ./main
==651==
==651== …Run Code Online (Sandbox Code Playgroud) 伙计们,
我正在使用Eclipse开发Java应用程序.Maven用于创建最终的jar文件.
在应用程序中,我使用了一些图像图标作为按钮.按照Internet上的一些说明,我通过单击项目创建了一个"源"目录.我将源目录命名为"res",并将我的图像移动到此目录.
public static ImageIcon getIcon() {
if (isThisJarfile()) {
URL url = this.class.getResources("/res/myicon.png");
return new ImageIcon(url);
}else {
return new ImageIcon("/res/myicon.png");
}
}
Run Code Online (Sandbox Code Playgroud)
当应用程序未打包为jar文件(非常适合调试)时,这可以正常工作.但是,当maven打包它时,我看到图像被放在jar文件的根目录中.以下呼叫有效:
URL url = this.class.getResource("/myicon.png");
我想知道是否有一些我忽略的步骤.
请注意,我没有必要对pom.xml执行任何特殊操作.Maven会自动拾取它们(除非它将它们放在错误的位置).
预先感谢您的帮助.
问候,彼得
我需要Windows和Ubuntu之间的跨平台压缩/解压缩.据我所知,从.NET 4.5开始,类DeflateStream使用zlib作为压缩库.我编写了两个小的测试程序来压缩数据,一个在C#上运行在Windows上,另一个在'C'上运行在Ubuntu上..NET平台是4.5.2.
C#代码正在使用CompressionLevel.Optimal
C代码使用Z_BEST_COMPRESSION
结果如下:
Input bytes: {9, 12, 13}
C# output: {227, 228, 225, 5, 0};
C output: {120, 218, 227, 228, 225, 5, 0, 0, 67, 0, 35}
Run Code Online (Sandbox Code Playgroud)
如您所见,C#中压缩数据的长度为5个字节,其中C为11个字节.似乎'C'zlib在页眉中添加2个额外字节,在页脚中添加4个额外字节.
如果需要,我可以共享代码.但是,它取自您在网上看到的标准示例,并且代码没有任何特殊之处.
我错过了什么吗?有办法解决吗?如果页眉和页脚总是保持不变,也许我总是可以添加额外的字节.问候.
我正在将一些旧的ASP.NET代码移植到.NET 4.5.我习惯用老式的方式使用SqlConnection/SqlCommand/SqlDataReader.现在我正在寻找使用异步原语以期获得更好的性能.
这是我打开连接的旧代码:
static DBWrapper Open(string connKey) {
string connStr = WebConfigurationManager.ConnectionStrings[connKey].ConnectionString;
SqlConnection c = new SqlConnection(connStr);
c.Open();
DBWrapper retVal = new DBWrapper();
retVal._c = c;
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
类DBWrapper只是SqlConnection的一个瘦包装器,它有一些我需要的额外方法.
以下是我如何转换为新的异步样式:
static async Task<DBWrapper> Open(string connKey) {
string connStr = WebConfigurationManager.ConnectionStrings[connKey].ConnectionString;
SqlConnection c = new SqlConnection(connStr);
var v = c.OpenAsync();
DBWrapper retVal = new DBWrapper();
await v;
retVal._c = c;
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
基本上,在打开连接时,我可以同时创建一个新的DBWrapper对象.
我感到困惑的是,这个功能真的表现得更好还是更差.创建任务和等待它的开销可能远远超过创建新DBWrapper对象所需的时间.无论我是否使用异步,我最终都会返回一个完全构建的连接对象.
这是一个从数据库返回用户列表的方法:
List<MyUsers> getUsers() {
using(SqlCommand cmd ...) {
using(SqlDataReader reader ...) {
while(reader.Read() {
... …Run Code Online (Sandbox Code Playgroud) 我有两个 SSL 证书文件。第一个标记为“OU=Certificate Authority”,第二个标记为“OU=Root Certificate”。我们的 C++ 应用程序加载这两个证书以进行正确的客户端/服务器握手。
我现在需要在我的 Android 代码中使用这些证书。我已经能够使用CertificateFactory.generateCertificate()方法成功读取这些证书。
接下来,我需要将这些证书存储在密钥库中。这是我找到的示例代码:
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
Run Code Online (Sandbox Code Playgroud)
我对如何存储根证书感到困惑。我是否只需setCertificateEntry()再次调用第二个证书并传入一些随机别名?
我在 KeyStore 上看到了另一种名为setEntry. 我应该改用这种方法吗?问候。
这是一个简单的例子:
class A {
public:
A() {
printf("%p C1\n", this);
}
A(const char* p) {
printf("%p C2\n", this);
}
};
int main(int argc, char *argv[]) {
A a;
a = "abc";
}
Run Code Online (Sandbox Code Playgroud)
在代码中,虽然A只声明了一次,但有两个A创建实例.构造函数被调用两次.我可以在VS 2013和gnu C++中重现这一点.
想知道这种行为是错误还是规范的一部分.
链接https://developer.android.com/ndk/guides/abis.html表示,许多(但不是全部)基于x86的Android设备可以运行armeabi-v7a和armeabi NDK二进制文件。是否有API可以识别基于x86的设备是否支持armeabi-v7a二进制文件?或者,是否有adb方法来检查此支持?问候。
我之前问过类似的问题:ASP.NET core 2.0 MVC 项目。wwwroot 是否应该被排除在源代码管理之外?并被指出https://github.com/github/gitignore/blob/master/VisualStudio.gitignore.gitignore上的一个文件正在不断更新。
当你创建一个新的 ASP.NET Core 项目(在我的例子中是 Razor)时,文件夹下会自动生成一堆文件wwwroot。根据文件中的注释.gitignore,由于wwwroot文件夹包含静态文件,因此可以安全地将其从源代码管理签入中排除。但是,我在该文件夹下看到一堆bower.json文件:
./wwwroot/lib/jquery-validation-unobtrusive/.bower.json
./wwwroot/lib/bootstrap/.bower.json
./wwwroot/lib/jquery/.bower.json
./wwwroot/lib/jquery-validation/.bower.json
Run Code Online (Sandbox Code Playgroud)
我的问题是,即使我排除文件夹,我们是否不需要签入这些 Bower 文件以在新计算机上wwwroot重新构建文件夹?wwwroot
android ×3
.net ×2
java ×2
android-ndk ×1
asp.net-core ×1
c ×1
c++ ×1
codec ×1
compression ×1
eclipse ×1
maven ×1
sdl ×1
ssl ×1
zlib ×1