[vlc-devel] demux: adaptive: fix a zero-divid bug.

Zhao Zhili quinkblack at foxmail.com
Sat Nov 24 07:04:48 CET 2018



> On Nov 24, 2018, at 11:55 AM, Xie Zhigang <zighouse at hotmail.com> wrote:
> 
> Hi Zhao,
> I found it at vlc-3.0.0 on Windows-7. This bug is not easy to repeat but I encountered it twice at night automatic testing loop of play-stop-sequence for an unstable hls stream via wifi. The hls stream is created by a shell script which building a gstreamer pipeline. If the pipeline is down, restart the script automatically.

The last released version of vlc on Windows is 3.0.4 (https://www.videolan.org/). Could you share more information about the version?
If you build it from source code, what's the git sha-1?

> 
> The pipeline scipt is something like:
> 
> gst-launch-1.0 mpegtsmux name=m ! \
>   hlssink target-duration=2 max-files=15 playlist-length=5 location=media/s%05d.ts \
>   playlist-location=media/playlist.m3u8 \
> udpsrc port=$aport ! \
>   application/x-rtp, media=audio, playload=0, clock-rate=8000, rate=8000 ! \
>   rptpcmudepay ! mulawdec ! \
>   audioconvert ! audioresample ! audio/x-raw, rate=44100 ! \
>   queue ! voaacenc bitrate=96000 hard-resync=true ! queue ! \
>   m. \
> udpsrc port=$vport ! \
>   application/x-rtp, payload=106, clock-rate=90000 ! \
>   rtpjitterbuffer latency=100 ! \
>   rtph264depay ! h264parse ! avdec_h264 ! \
>   videoconvert ! videorate ! video/x-raw, framerate=15/1 ! queue ! \
>  x264enc bframes=0 ! queue ! \
>  h264parse config-interval=1 ! m.
> 
> And, I use tcpreplay to replay a pcap in a loop-way to inject audio- and video- element streams into udp ports constantly.
> 发件人: vlc-devel <vlc-devel-bounces at videolan.org> 代表 Zhao Zhili <quinkblack at foxmail.com>
> 发送时间: 2018年11月22日 11:00
> 收件人: vlc-devel at videolan.org
> 主题: Re: [vlc-devel] demux: adaptive: fix a zero-divid bug.
>  
> Hi Xie,
> What's the version of VLC has this bug?
> If NearOptimalAdaptationLogic has this problem, then other 
> AdaptationLogics have this problem too, so this patch is not complete.
> On the other hand, modules/demux/adaptive/http/Chunk.cpp doesn't call 
> updateDownloadRate if time is zero. I don't know how this can happen.
> 
> On 2018/11/15 下午6:49, Xie Zhigang wrote:
> > fixes crashs on some cases with zero update download rates.
> > ---
> >   modules/demux/adaptive/logic/NearOptimalAdaptationLogic.cpp | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/modules/demux/adaptive/logic/NearOptimalAdaptationLogic.cpp b/modules/demux/adaptive/logic/NearOptimalAdaptationLogic.cpp
> > index 1c99538..32bb863 100644
> > --- a/modules/demux/adaptive/logic/NearOptimalAdaptationLogic.cpp
> > +++ b/modules/demux/adaptive/logic/NearOptimalAdaptationLogic.cpp
> > @@ -179,6 +179,9 @@ unsigned NearOptimalAdaptationLogic::getMaxCurrentBw() const
> >   
> >   void NearOptimalAdaptationLogic::updateDownloadRate(const ID &id, size_t dlsize, vlc_tick_t time)
> >   {
> > +    if (time <= 0)
> > +        return;
> > +
> >       vlc_mutex_lock(&lock);
> >       std::map<ID, NearOptimalContext>::iterator it = streams.find(id);
> >       if(it != streams.end())
> 
> 
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel





More information about the vlc-devel mailing list