[FFmpeg-trac] #5811(avformat:closed): live_start_index option doesn't work.

FFmpeg trac at avcodec.org
Sun Jul 16 04:00:13 EEST 2017


#5811: live_start_index option doesn't work.
------------------------------------+--------------------------------------
             Reporter:  smalukav    |                    Owner:
                 Type:  defect      |                   Status:  closed
             Priority:  critical    |                Component:  avformat
              Version:  git-master  |               Resolution:  worksforme
             Keywords:  hls.c       |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+--------------------------------------
Changes (by Gunnat):

 * keywords:  hls => hls.c
 * priority:  normal => critical


Comment:

 just fixed the funny live_start_index bug.
 At least fix for the server and stream I am interested in.
 Turns out like this in my case

 - pls->start_seq_no,    whatever segment is streamed "now" from stream
 server
 - pls->n_segments,      the max OLD segments the server keeps available,
 FOUR HOURS
 - c->live_start_index,  where ffmpeg puts the command argument I give it,
 1400

 Note, pls->n_segments is given as a positive number although it is kindo
 negative, how much cmaller one can make the segmentcounter.

 THat is, a funny thing, shld i use PLUS 1400 or MINUS 1400?

 Note, when asking for old, smaller number segments!

 (seems the existing code did the same thought-bug in both cases?? always
 did nothing?)

 So I made it accept both but always GO BACKWARDS (earlier), both in time
 and segments
 -----
   /* index If this is a LIVE stream, start live_start_index segments from
 the
          * start or end */

         printf("\n start_seq_no %d n_segments %d live_start_index %d
 \n",pls->start_seq_no,pls->n_segments,c->live_start_index) ;

         if (c->live_start_index < 0) /* user gives neg number, 5th grade
 -/+ math*/
              /*  take max of two negative numbers, hehe*/
              /*             93abcd                     -  1438(4 hours
 back), -1400*/
             seq_gunnar = pls->start_seq_no + FFMAX((- pls->n_segments),
 c->live_start_index);
         else  /*  user gives pos number, kindo simpler, just subtract the
 smaller*/
              /*                                       1400
 1438   */
             seq_gunnar = pls->start_seq_no - FFMIN(c->live_start_index,
 pls->n_segments);

         printf("\n start_seq_no %d n_segments %d live_start_index %d
 gunnar
 %d\n",pls->start_seq_no,pls->n_segments,c->live_start_index,seq_gunnar) ;

         return seq_gunnar;

 -------

 bottom line, the negative of a cpl of negative or not negative numbers is
 funny

--
Ticket URL: <https://trac.ffmpeg.org/ticket/5811#comment:6>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list