小编CD8*_*D83的帖子

执行失败:0x80070057,使用dxva2通过ffmpeg解码视频时

我已经使用ffmpeg成功实现了一个视频播放器.我现在正在尝试使用硬件解码,但我面临一些问题.我发现了一篇帖子,我将其作为起点:http://comments.gmane.org/gmane.comp.video.ffmpeg.libav.user/13523

我已经更新了为解码器设置必要内容的代码.更新后的代码可以在这里找到:https://drive.google.com/file/d/0B5ufHdoDzA4ieVk5UVpxcDNzRHc/view?usp=sharing

这就是我用它来初始化解码器的方法:

// Prepare the decoding context
AVCodec *codec = nullptr;
_codecContext = _avFormatContext->streams[_streamIndex]->codec;
if ((codec = avcodec_find_decoder(_codecContext->codec_id)) == 0)
{
    std::cout << "Unsupported video codec!" << std::endl;
    return false;
}

_codecContext->thread_count = 1;  // Multithreading is apparently not compatible with hardware decoding
InputStream *ist = new InputStream();
ist->hwaccel_id = HWACCEL_AUTO;
ist->hwaccel_device = "dxva2";
ist->dec = codec;
ist->dec_ctx = _codecContext;
_codecContext->coded_width = _width;
_codecContext->coded_height = _height;

_codecContext->opaque = ist;
dxva2_init(_codecContext);

_codecContext->get_buffer2 = ist->hwaccel_get_buffer;
_codecContext->get_format = …
Run Code Online (Sandbox Code Playgroud)

hardware ffmpeg decoding

11
推荐指数
1
解决办法
6372
查看次数

尽管“不要在提交通知上触发构建”,但 Jenkins 构建仍被触发

我有一个管道作业,用于签出 git 存储库(我们称之为“repoA”)并将其传递给其他一些下游作业以进行进一步处理。上游作业的脚本存储在不同的 git 存储库中(我们称之为“repoB”)。该作业配置有“轮询 SCM”选项,以便对 repoA 的任何更改都会触发它。在管道部分中,我选择了“来自 SCM 的管道脚本”选项并将其配置为从 repoB 的 master 分支获取管道脚本。我还添加了选项“不要触发提交通知上的构建”。我期望的行为是推送到 repoA 的任何更改都会触发该作业,而对 repoB 的任何更改都不会触发该作业。然而,当我将更改推送到 repoB 时,就会触发该作业。

我不知道这是一个错误,还是我遗漏了一些东西。

我正在运行 Jenkins 2.7.4。我的主 Jenkins 运行在 Ubuntu 服务器 16.04.1 LTS 上。我的所有 Jenkins 插件都是最新的。

git jenkins jenkins-pipeline

5
推荐指数
1
解决办法
6147
查看次数

标签 统计

decoding ×1

ffmpeg ×1

git ×1

hardware ×1

jenkins ×1

jenkins-pipeline ×1