libvlc_media_player_set_position fails when seeking backward
Asked Answered
F

1

6

I'm using libvlc 3.0.0 (I've also tried 2.2.0) to capture frames from a h264 encoded mp4 file (does not include sound, only video frames) on Windows 7 with Visual Studio 2012. I can play, pause, stop and seek forward without any problem. But when I try to seek backwards, I run into problems:

  1. Scenario: If I only call libvlc_media_player_set_position (or libvlc_media_player_set_time), it seems like it goes to the position. But vlc stops sending frame received callbacks(in other words, the player freezes) until it reaches the same (or next) frame before the libvlc_media_player_set_position function called.

    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. Scenario: I can make it work only if I first stop the player, then start playing from the beginning.

    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);
        }
    }
    

    The problem with this scenario is, if I keep backward positioning for a while, I get the error (vlc prints the error to the command line) core decoder error: cannot continue streaming due to errors. After this error it stops playing(freezes again), and the next time I try to seek, I get an "Access violation" error: Unhandled exception at 0x... (libavcodec_plugin.dll) in vlctest.exe: 0xC0000005: Access violation reading location 0x00000040

It feels wrong to first restart the video playback for seeking. Am I missing something?

Thanks in advance!

Firstfoot answered 14/12, 2015 at 8:10 Comment(1)
I've started using opencv instead of vlc for now. But i still would like to know the solution.Firstfoot
F
1

I don't know where did i mess it up before, but i downloaded the current nightly build vlc-3.0.0-git-20151221-0002-win32-debug.zip videolan nightly builds and it works now.

Firstfoot answered 29/12, 2015 at 12:12 Comment(3)
hiii , i am having same kind of problem , the link you provided is not working , can you please explain how did u used nightly buildLeyes
i fixed the link. but i can't give you details. i broke my wrist and can't go to work for a month :( the solution is in my pc at work :(Firstfoot
oh , get well soon, btw I am attaching the link of my ques, #41181051Leyes

© 2022 - 2024 — McMap. All rights reserved.