[FFmpeg-cvslog] ffserver: Do not add or rescale AV_NOPTS_VALUE from the demuxer

Michael Niedermayer git at videolan.org
Wed Nov 11 17:59:57 CET 2015


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Sun Nov  1 13:44:59 2015 +0100| [64e220beb5fb7f32800c1eed1e9e903022e41d19] | committer: Michael Niedermayer

ffserver: Do not add or rescale AV_NOPTS_VALUE from the demuxer

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=64e220beb5fb7f32800c1eed1e9e903022e41d19
---

 ffserver.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/ffserver.c b/ffserver.c
index 577ca6f..a32ba08 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -2276,7 +2276,7 @@ static int http_prepare_data(HTTPContext *c)
             } else {
                 int source_index = pkt.stream_index;
                 /* update first pts if needed */
-                if (c->first_pts == AV_NOPTS_VALUE) {
+                if (c->first_pts == AV_NOPTS_VALUE && pkt.dts != AV_NOPTS_VALUE) {
                     c->first_pts = av_rescale_q(pkt.dts, c->fmt_in->streams[pkt.stream_index]->time_base, AV_TIME_BASE_Q);
                     c->start_time = cur_time;
                 }
@@ -2315,8 +2315,10 @@ static int http_prepare_data(HTTPContext *c)
                      * XXX: need more abstract handling */
                     if (c->is_packetized) {
                         /* compute send time and duration */
-                        c->cur_pts = av_rescale_q(pkt.dts, ist->time_base, AV_TIME_BASE_Q);
-                        c->cur_pts -= c->first_pts;
+                        if (pkt.dts != AV_NOPTS_VALUE) {
+                            c->cur_pts = av_rescale_q(pkt.dts, ist->time_base, AV_TIME_BASE_Q);
+                            c->cur_pts -= c->first_pts;
+                        }
                         c->cur_frame_duration = av_rescale_q(pkt.duration, ist->time_base, AV_TIME_BASE_Q);
                         /* find RTP context */
                         c->packet_stream_index = pkt.stream_index;



More information about the ffmpeg-cvslog mailing list