On Mon, Apr 04, 2011 at 09:38:32PM +0100, Måns Rullgård wrote:
> Anton Khirnov <[email protected]> writes:
> 
> > ---
> >  libavformat/matroskaenc.c |    9 ++++++---
> >  1 files changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> > index e28ac42..c0427f9 100644
> > --- a/libavformat/matroskaenc.c
> > +++ b/libavformat/matroskaenc.c
> > @@ -1140,10 +1140,13 @@ static int mkv_write_trailer(AVFormatContext *s)
> >      }
> >  
> >      if (pb->seekable) {
> > -        cuespos = mkv_write_cues(pb, mkv->cues, s->nb_streams);
> > +        if (mkv->cues->num_entries) {
> > +            cuespos = mkv_write_cues(pb, mkv->cues, s->nb_streams);
> > +
> > +            ret = mkv_add_seekhead_entry(mkv->main_seekhead, 
> > MATROSKA_ID_CUES, cuespos);
> > +            if (ret < 0) return ret;
> > +        }
> >  
> > -        ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CUES  
> >   , cuespos);
> > -        if (ret < 0) return ret;
> >          mkv_write_seekhead(pb, mkv->main_seekhead);
> >  
> >          // update the duration
> > -- 
> > 1.7.4.1
> 
> Looks OK.  Do I infer correctly from the lack of checksum updates that
> this does not affect the regression tests?
> 

No, that was an evil subversive attempt to break FATE on my way to world
domination. Unfortunately you saw right through it, so I have no choice,
but to attach a proper patch.

-- 
Anton Khirnov
From 7fca0a6dfb1293d5796c525b5525fd614c6e1288 Mon Sep 17 00:00:00 2001
From: Anton Khirnov <[email protected]>
Date: Mon, 4 Apr 2011 22:29:21 +0200
Subject: [PATCH] matroskaenc: don't write an empty Cues element.

---
 libavformat/matroskaenc.c |    9 ++++++---
 tests/ref/acodec/pcm      |    8 ++++----
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index e28ac42..c0427f9 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1140,10 +1140,13 @@ static int mkv_write_trailer(AVFormatContext *s)
     }
 
     if (pb->seekable) {
-        cuespos = mkv_write_cues(pb, mkv->cues, s->nb_streams);
+        if (mkv->cues->num_entries) {
+            cuespos = mkv_write_cues(pb, mkv->cues, s->nb_streams);
+
+            ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CUES, cuespos);
+            if (ret < 0) return ret;
+        }
 
-        ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CUES    , cuespos);
-        if (ret < 0) return ret;
         mkv_write_seekhead(pb, mkv->main_seekhead);
 
         // update the duration
diff --git a/tests/ref/acodec/pcm b/tests/ref/acodec/pcm
index 1d876e4..033f8bc 100644
--- a/tests/ref/acodec/pcm
+++ b/tests/ref/acodec/pcm
@@ -22,12 +22,12 @@ stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  1058400/  1058400
 1058444 ./tests/data/acodec/pcm_s16le.wav
 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
 stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  1058400/  1058400
-352a6bcf51d0f3ca4bf27c423a3d4d14 *./tests/data/acodec/pcm_s16be.mkv
- 1060650 ./tests/data/acodec/pcm_s16be.mkv
+af717ca95eaca310772eb1238c745d1b *./tests/data/acodec/pcm_s16be.mkv
+1060638 ./tests/data/acodec/pcm_s16be.mkv
 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
 stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  1058400/  1058400
-2c089d83b2699c02c9358415e00a9707 *./tests/data/acodec/pcm_s16le.mkv
- 1060650 ./tests/data/acodec/pcm_s16le.mkv
+c4f51bf32fad2f7af8ea5beedb56168b *./tests/data/acodec/pcm_s16le.mkv
+1060638 ./tests/data/acodec/pcm_s16le.mkv
 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
 stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  1058400/  1058400
 07ffe7ffb78f3648b6524debdde5aec1 *./tests/data/acodec/pcm_s24be.mov
-- 
1.7.4.1

Attachment: signature.asc
Description: Digital signature

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to