----- Original Message ----- 
From: עופר בר 
To: This list is about using libavcodec, libavformat, libavutil,libavdevice and 
libavfilter. 
Sent: Tuesday, December 31, 2013 6:32 AM
Subject: Re: [Libav-user] any way to interrupt avcodec_decode_video2 ?


>I think it's also possible to multi-thread decoding by changing some 
>parameters codec context structure like thread_count and thread_type. 
>You do need a multi-threaded ffmpeg build for that I believe.
>Maybe in this way you can reduce the decoding time, assuming you have few 
>cores.

Possibly ffmpeg multi-thread decoding would help some, but I am leary about 
that. More things to go wrong and more for me to figue out what went wrong :) 
Also I may have numerous threads open since there may be more than 10 av files 
open and playing at same time so try to be careful about being too thread heavy.

Conceptually it's a pretty easy thing to implement an interrupt callback for 
AVCodecContext. It may take awhile though for it to filter thru everywhere, 
hitting the problem areas first and ignored by others while waiting.

Mostly its not too bad but depends on machine and video of course. I don;t 
think most will have much interest but timeline apps and editing apps could 
benefit the most.

You also have to ask why an intense process like decoding is not interruptible.
  ----- Original Message ----- 
  From: עופר בר 
  To: This list is about using libavcodec, libavformat, libavutil,libavdevice 
and libavfilter. 
  Sent: Tuesday, December 31, 2013 6:32 AM
  Subject: Re: [Libav-user] any way to interrupt avcodec_decode_video2 ?


  I think it's also possible to multi-thread decoding by changing some 
parameters codec context structure like thread_count and thread_type.
  You do need a multi-threaded ffmpeg build for that I believe.
  Maybe in this way you can reduce the decoding time, assuming you have few 
cores.





  On Mon, Dec 16, 2013 at 8:17 AM, Don Moir <[email protected]> wrote:

    From: עופר בר 
    To: This list is about using libavcodec, libavformat, libavutil,libavdevice 
and libavfilter. 
    Sent: Tuesday, December 31, 2013 5:24 AM
    Subject: Re: [Libav-user] any way to interrupt avcodec_decode_video2 ?


    >What do you mean by "waiting"? 
    >If you're calling this api on a different thread, why can't you terminate 
the thread?
    >If you're calling it from your main thread, there's nothing your app can 
do until the function returns, unless they implement some callbacks in the 
middle of the execution.


    >Best of luck!

    I allow for proper cleanup and no telling what state ffmpeg would be in if 
I just up and terminated the thread. It's in the mist of decoding and waiting 
for return allows me to free packet its decoding etc.

    Another thread waits on it normally waiting to seek or exit.

    Best thing would be interrupt callback.

    ---- Original Message ----- 
      From: עופר בר 
      To: This list is about using libavcodec, libavformat, 
libavutil,libavdevice and libavfilter. 
      Sent: Tuesday, December 31, 2013 5:24 AM
      Subject: Re: [Libav-user] any way to interrupt avcodec_decode_video2 ?


      What do you mean by "waiting"? 
      If you're calling this api on a different thread, why can't you terminate 
the thread?
      If you're calling it from your main thread, there's nothing your app can 
do until the function returns, unless they implement some callbacks in the 
middle of the execution.


      Best of luck!



      On Mon, Dec 16, 2013 at 8:48 AM, Don Moir <[email protected]> wrote:


        ----- Original Message ----- From: "Carl Eugen Hoyos" <[email protected]>
        To: <[email protected]>
        Sent: Tuesday, December 31, 2013 4:08 AM 

        Subject: Re: [Libav-user]any way to interrupt avcodec_decode_video2 ?



          Don Moir <donmoir@...> writes:


            Since app is timeline oriented, trying to keep seek time
            down to minimum and if avcodec_decode_video2 has been
            called, seems there is no way out until its finished
            and this decoding time can delay a new seek attempt.


          Are you looking for CODEC_FLAG2_SHOW_ALL?

          Carl Eugen



        No. I can easily check between calls to avcodec_decode_video2 but once 
its called you are stuck until it returns. Would be nice to be able to 
interrupt it for quicker seeking and to end 'the' video more quickly. Doesn't 
matter too much for a simple player app, but I have things on timelines and 
also video coming and going quicky. Things are time corrected to a timeline but 
the more I can reduce impact from things like this the better off we are.

        A simple seek to zero is quick, but if I have to wait on 
avcodec_decode_video2 to return, then its slower and can be quite slow. I don't 
mean finish as in the flag (gotframe) to avcodec_decode_video2, but just 
waiting on it to return period. 


        _______________________________________________
        Libav-user mailing list
        [email protected]
        http://ffmpeg.org/mailman/listinfo/libav-user





--------------------------------------------------------------------------


      _______________________________________________
      Libav-user mailing list
      [email protected]
      http://ffmpeg.org/mailman/listinfo/libav-user



    _______________________________________________
    Libav-user mailing list
    [email protected]
    http://ffmpeg.org/mailman/listinfo/libav-user






------------------------------------------------------------------------------


  _______________________________________________
  Libav-user mailing list
  [email protected]
  http://ffmpeg.org/mailman/listinfo/libav-user
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to