[FFmpeg-devel] [PATCH] avformat/concatdec: Handle NOPTS start_time

2014-12-15 Thread Michael Niedermayer
Fixes Ticket3598

Signed-off-by: Michael Niedermayer michae...@gmx.at
---
 libavformat/concatdec.c |   11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
index a2584d7..253951a 100644
--- a/libavformat/concatdec.c
+++ b/libavformat/concatdec.c
@@ -512,9 +512,14 @@ static int concat_read_packet(AVFormatContext *avf, 
AVPacket *pkt)
av_ts2str(pkt-pts), av_ts2timestr(pkt-pts, st-time_base),
av_ts2str(pkt-dts), av_ts2timestr(pkt-dts, st-time_base));
 
-delta = av_rescale_q(cat-cur_file-start_time - cat-avf-start_time,
- AV_TIME_BASE_Q,
- cat-avf-streams[pkt-stream_index]-time_base);
+if (cat-avf-start_time == AV_NOPTS_VALUE)
+delta = av_rescale_q(cat-cur_file-start_time,
+ AV_TIME_BASE_Q,
+ cat-avf-streams[pkt-stream_index]-time_base);
+else
+delta = av_rescale_q(cat-cur_file-start_time - cat-avf-start_time,
+ AV_TIME_BASE_Q,
+ cat-avf-streams[pkt-stream_index]-time_base);
 if (pkt-pts != AV_NOPTS_VALUE)
 pkt-pts += delta;
 if (pkt-dts != AV_NOPTS_VALUE)
-- 
1.7.9.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avformat/concatdec: Handle NOPTS start_time

2014-12-15 Thread Nicolas George
Le quintidi 25 frimaire, an CCXXIII, Michael Niedermayer a écrit :
 Lines: 36
 
 Fixes Ticket3598
 
 Signed-off-by: Michael Niedermayer michae...@gmx.at
 ---
  libavformat/concatdec.c |   11 ---
  1 file changed, 8 insertions(+), 3 deletions(-)
 
 diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
 index a2584d7..253951a 100644
 --- a/libavformat/concatdec.c
 +++ b/libavformat/concatdec.c
 @@ -512,9 +512,14 @@ static int concat_read_packet(AVFormatContext *avf, 
 AVPacket *pkt)
 av_ts2str(pkt-pts), av_ts2timestr(pkt-pts, st-time_base),
 av_ts2str(pkt-dts), av_ts2timestr(pkt-dts, st-time_base));
  
 -delta = av_rescale_q(cat-cur_file-start_time - cat-avf-start_time,
 - AV_TIME_BASE_Q,
 - cat-avf-streams[pkt-stream_index]-time_base);
 +if (cat-avf-start_time == AV_NOPTS_VALUE)
 +delta = av_rescale_q(cat-cur_file-start_time,
 + AV_TIME_BASE_Q,
 + 
 cat-avf-streams[pkt-stream_index]-time_base);
 +else
 +delta = av_rescale_q(cat-cur_file-start_time - 
 cat-avf-start_time,
 + AV_TIME_BASE_Q,
 + 
 cat-avf-streams[pkt-stream_index]-time_base);
  if (pkt-pts != AV_NOPTS_VALUE)
  pkt-pts += delta;
  if (pkt-dts != AV_NOPTS_VALUE)

I am ok in principle, but I like it better written like [PATCH 1/2]: less
code duplication, less changed lines.

Also, I wonder if there is any disadvantage in [PATCH 2/2], which would fix
this particular problem too.

Please feel free to apply your version or any of my patches without waiting
for me, but beware, neither was tested beyond a run of FATE, as I have
little time right now.

Regards,

-- 
  Nicolas George
From 5379ff7c282b79dc455cf75f650655cf2da2d469 Mon Sep 17 00:00:00 2001
From: Nicolas George geo...@nsup.org
Date: Mon, 15 Dec 2014 18:42:41 +0100
Subject: [PATCH 1/2] lavf/concatdec: handle NOPTS start_time.

Fix trac ticket #3598.

Signed-off-by: Nicolas George geo...@nsup.org
---
 libavformat/concatdec.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
index a2584d7..e109524 100644
--- a/libavformat/concatdec.c
+++ b/libavformat/concatdec.c
@@ -478,7 +478,7 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt)
 {
 ConcatContext *cat = avf-priv_data;
 int ret;
-int64_t delta;
+int64_t file_start_time, delta;
 ConcatStream *cs;
 AVStream *st;
 
@@ -512,7 +512,10 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt)
av_ts2str(pkt-pts), av_ts2timestr(pkt-pts, st-time_base),
av_ts2str(pkt-dts), av_ts2timestr(pkt-dts, st-time_base));
 
-delta = av_rescale_q(cat-cur_file-start_time - cat-avf-start_time,
+file_start_time = cat-avf-start_time;
+if (file_start_time == AV_NOPTS_VALUE)
+file_start_time = 0;
+delta = av_rescale_q(cat-cur_file-start_time - file_start_time,
  AV_TIME_BASE_Q,
  cat-avf-streams[pkt-stream_index]-time_base);
 if (pkt-pts != AV_NOPTS_VALUE)
-- 
2.1.3

From 4d06c29ea18a7a7d43a7b13f370cdec3e90724d6 Mon Sep 17 00:00:00 2001
From: Nicolas George geo...@nsup.org
Date: Mon, 15 Dec 2014 18:45:44 +0100
Subject: [PATCH 2/2] lavf/wavdec: set start_time to 0.

Signed-off-by: Nicolas George geo...@nsup.org
---
 libavformat/wavdec.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index 9c4e2df..f775ca9 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -136,6 +136,7 @@ static int wav_parse_fmt_tag(AVFormatContext *s, int64_t size, AVStream **st)
 (*st)-need_parsing = AVSTREAM_PARSE_FULL_RAW;
 
 avpriv_set_pts_info(*st, 64, 1, (*st)-codec-sample_rate);
+(*st)-start_time = 0;
 
 return 0;
 }
-- 
2.1.3



signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avformat/concatdec: Handle NOPTS start_time

2014-12-15 Thread Michael Niedermayer
On Mon, Dec 15, 2014 at 06:53:19PM +0100, Nicolas George wrote:
 Le quintidi 25 frimaire, an CCXXIII, Michael Niedermayer a écrit :
  Lines: 36
  
  Fixes Ticket3598
  
  Signed-off-by: Michael Niedermayer michae...@gmx.at
  ---
   libavformat/concatdec.c |   11 ---
   1 file changed, 8 insertions(+), 3 deletions(-)
  
  diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
  index a2584d7..253951a 100644
  --- a/libavformat/concatdec.c
  +++ b/libavformat/concatdec.c
  @@ -512,9 +512,14 @@ static int concat_read_packet(AVFormatContext *avf, 
  AVPacket *pkt)
  av_ts2str(pkt-pts), av_ts2timestr(pkt-pts, st-time_base),
  av_ts2str(pkt-dts), av_ts2timestr(pkt-dts, st-time_base));
   
  -delta = av_rescale_q(cat-cur_file-start_time - cat-avf-start_time,
  - AV_TIME_BASE_Q,
  - cat-avf-streams[pkt-stream_index]-time_base);
  +if (cat-avf-start_time == AV_NOPTS_VALUE)
  +delta = av_rescale_q(cat-cur_file-start_time,
  + AV_TIME_BASE_Q,
  + 
  cat-avf-streams[pkt-stream_index]-time_base);
  +else
  +delta = av_rescale_q(cat-cur_file-start_time - 
  cat-avf-start_time,
  + AV_TIME_BASE_Q,
  + 
  cat-avf-streams[pkt-stream_index]-time_base);
   if (pkt-pts != AV_NOPTS_VALUE)
   pkt-pts += delta;
   if (pkt-dts != AV_NOPTS_VALUE)
 

 I am ok in principle, but I like it better written like [PATCH 1/2]: less
 code duplication, less changed lines.

applied


 
 Also, I wonder if there is any disadvantage in [PATCH 2/2], which would fix
 this particular problem too.

dunno

thx

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When you are offended at any man's fault, turn to yourself and study your
own failings. Then you will forget your anger. -- Epictetus


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel