libvlc_media_player_set_position 向后查找时失败

libvlc_media_player_set_position fails when seeking backward

我正在使用 libvlc 3.0.0(我也尝试过 2.2.0)从 Windows 7 上的 h264 编码的 mp4 文件(不包括声音,仅视频帧)捕获帧Visual Studio 2012年,我可以播放,暂停,停止和前进,没有任何问题。但是当我尝试向后查找时,我 运行 遇到了问题:

  1. 场景:如果我只调用libvlc_media_player_set_position(或者libvlc_media_player_set_time),好像就到位了。但是 vlc 停止发送帧接收回调(换句话说,播放器冻结),直到它到达调用 libvlc_media_player_set_position 函数之前的相同(或下一个)帧。

    counter = 0;
    while (true)
    {
        sleep(40); // 25 hz
        ++counter;
        if(counter % 100 = 0)
        {
            // assuming current_position > 0.1f
            libvlc_media_player_set_position(p_mi, 0.1f);
        }
    }
    
  2. 场景:只有先停止播放器,然后从头开始播放,我才能让它工作。

    counter = 0;
    while (true)
    {
        sleep(40); // 25 hz
        ++counter;
        if(counter % 100 = 0)
        {
            // assuming current_position > 0.1f
            libvlc_media_player_stop(p_mi);
            libvlc_media_player_play(p_mi);
            libvlc_media_player_set_position(p_mi, 0.1f);
        }
    }
    

    这个场景的问题是,如果我保持向后定位一段时间,就会出现错误(vlc 将错误打印到命令行) core decoder error: cannot continue streaming due to errors。在这个错误之后它停止播放(再次冻结),下次我尝试寻找时,我得到一个 "Access violation" 错误: Unhandled exception at 0x... (libavcodec_plugin.dll) in vlctest.exe: 0xC0000005: Access violation reading location 0x00000040

求的先重启视频播放感觉不对。我错过了什么吗?

提前致谢!

我不知道我之前在哪里搞砸了,但我下载了当前的夜间构建 vlc-3.0.0-git-20151221-0002-win32-debug.zip videolan nightly builds,现在可以使用了。