草庐IT

with_ffmpeg

全部标签

c++ - 每个显示器 DPI 感知 : black window glitch with NVIDIA Optimus

我想制作一个Per-MonitorDPI-AwareDirect2D应用程序。我已经扩展了Microsoft的"FirstDirect2DProgram"处理WM_DPICHANGED的示例,如KennyKerr'sMSDNarticle中所述.这在两个显示器都使用一个视频卡时有效,但在使用我的笔记本电脑的NVIDIAOptimus设置时出现故障。我可以通过运行Per-MonitorAwareWPFSample重现相同的故障通过以下步骤:每台显示器上的不同DPI比例因子。启用Optimus(集成显卡上的笔记本电脑显示屏,Quadro卡上的外接显示器)应用程序在主显示器上启动-右侧的外部

c++ - 使用 ffmpeg 和分离的 AVCodecContext 解码 h264 rtsp

我需要一些解码rtsp视频流的帮助。我从AXISIP摄像机获得它。我为此使用ffmpeg库。需要单独创建AVCodecContext,而不是从AVFormatContext->streams[...]->codec;所以我创建了AVCodec、AVCOdecContext并尝试初始化它们。AVCodec*codec=avcodec_find_decoder(codec_id);if(!codec){qDebug()}AVCodecContext*context=avcodec_alloc_context3(codec);if(!context){qDebug()}avcodec_ope

c++ - LLVM IR : Identifying Variables with Metadata Nodes

目前我正在开发一种工具,该工具可以识别对任意程序的全局变量和字段变量的加载和存储访问。此外,访问的变量应该由它们的源级别名称/标识符来标识。为了完成这个,我将被诊断程序的源代码编译成带有调试信息的LLVMIR。到目前为止一切顺利,生成的元数据节点包含所需的源级别标识符。但是,我无法将某些LLVMIR标识符和元数据中的信息联系起来。例如,考虑一个类的静态成员:classTestClass{public:staticintNumber;};相应的LLVMIR如下所示:@_ZN12TestClass6NumberE=externalglobali32,align4...!15=!DIDeri

c++ - FFMPEG Seeking 带来音频伪像

我正在使用ffmpeg实现音频解码器。虽然读取音频甚至搜索已经有效,但我想不出一种在搜索后清除缓冲区的方法,因此当应用程序在搜索后立即开始读取音频时,我没有任何伪影。avcodec_flush_buffers似乎对内部缓冲区没有任何影响。所有解码器(mp3、aac、wma等)都会出现此问题,但PCM/WAV(由于音频未压缩,因此不使用内部缓冲区来保存要解码的数据)。代码片段很简单:av_seek_frame(audioFilePack->avContext,audioFilePack->stream,posInTimeFrame,AVSEEK_FLAG_ANY);avcodec_flu

c++ - avcodec_open2 方法中的 ffmpeg 内存泄漏

我开发了一个处理实时视频流的应用程序。问题是它应该作为服务运行,随着时间的推移,我注意到一些内存增加了。当我使用valgrind检查应用程序时-它没有发现任何与泄漏相关的问题。所以我用谷歌配置文件工具检查了它。这是运行大约6小时后的结果(从最新的转储中减去第一个转储):30.035.7%35.7%30.035.7%av_malloc28.934.4%70.2%28.934.4%av_reallocp24.529.2%99.4%24.529.2%x264_malloc当我检查图表上的内存时,我发现这些分配与avcodec_open2相关。客户端代码为:`g_EncoderMutex.lo

c++ - boost 梅森扭曲器 : how to seed with more than one value?

我正在使用boostmt19937实现进行模拟。模拟需要可重现,这意味着存储RNG种子并可能在以后重复使用。我正在使用windowscryptoapi生成种子值,因为我需要种子的外部来源,而不是因为任何特定的随机性保证。任何模拟运行的输出都会有一个注释,包括RNG种子-所以种子需要相当短。另一方面,作为模拟分析的一部分,我将比较几次运行——但为了确保这些运行实际上不同,我需要使用不同的种子——所以种子需要足够长以避免意外碰撞。我已经确定64位的播种应该足够了;在大约2^32次运行后发生碰撞的可能性将达到50%——这个概率足够低,以至于由它引起的平均错误对我来说可以忽略不计。仅使用32位

c++ - omp for with collapse 子句未编译

我正在使用OpenMP中的并行for结构进行并行处理。在OpenMP规范中,我可以看到:voidsub(float*a){inti,j,k;#pragmaompforcollapse(2)private(i,k,j)for(k=kl;k我写的代码我觉得很相似,但不能编译:unexpectedtokenaftercollapseclause#pragmaompforcollapse(2)for(inti=0;i为什么它不起作用? 最佳答案 collapse是一个OpenMP3.0pragma。您收到的错误消息通常是由于编译器仅实现了O

c++ - OpenCV/FFMpeg图像捕捉问题

我正在尝试从IP摄像机实时捕捉图像。该流在VLC中运行良好,但OpenCV的cvQueryFrame()似乎将传入的图像弄乱并损坏到无法识别的程度。同样,从文件中捕获工作正常,但不是实时流。以防万一,我使用的是rtsp连接URL;我也用两种不同的相机型号(不同品牌)尝试过,但问题仍然存在。此外,(我假设)编解码器正在输出以下几种错误:MB错误:1746和隐藏6000DC、6000AC、6000MV错误。我能做什么?更新:序列中的第一个错误总是cannotparallelizedeblockingtype1,decodingsuchframesinsequentialorder更新2:好

c++ - g++ : can't link with a main executable file

我正在开发一个使用统计攻击来破解wepkey的应用程序。当我用我的makefile编译时(如上)我得到这个错误:ld:can'tlinkwithamainexecutablefile'execStatAttack'forarchitecturex86_64clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)make:*[statAttack]Error1我的项目包含那些文件:statAttack.cpp:包含主要功能,使用上面的文件rc4.h+rc4.cpp:具有那些功能#include#include#i

c++ - lambda 如何在 MSVC2017 15.9.3 with/std :c++17? 中使用静态本地错误返回值

下面的示例代码打印来自lambda函数的值,该函数简单地递增并返回静态局部计数器变量的值。它打印0,1和2,3正如预期的那样,gcc和C++17的clang。但在VisualStudioCommunity201715.9.3中没有/std:c++17设置-它打印0,0和2,3相反。#includeintmain(){autof=[]{staticinti=0;returni++;};constintv1=f();//Expectv1=0constintv2=f();//Expectv2=1//Printsthewrongvalues(MSVC15.9.3with/std:c++17)s