]> git.sesse.net Git - ffmpeg/commitdiff
Merge commit '73084391588b0f150737990038829cac5013dd68'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Sep 2013 10:16:55 +0000 (12:16 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Sep 2013 10:16:55 +0000 (12:16 +0200)
* commit '73084391588b0f150737990038829cac5013dd68':
  lavf: Don't explicitly flush after each written packet in muxers

Conflicts:
libavformat/assenc.c
libavformat/yuv4mpeg.c

See: 8de9bb6e5e527e2bcc8b2cff2da4107ecef23421

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/assenc.c

index f2e904a59e58154970dbc9ad86ee6f1d805d123e,751485dfb5862851075bd8119aef81562219c0a1..9fb9f232d9d26657334c4ea03c5a33e9d8eecbd6
@@@ -62,31 -57,7 +62,32 @@@ static int write_header(AVFormatContex
  
  static int write_packet(AVFormatContext *s, AVPacket *pkt)
  {
 -    avio_write(s->pb, pkt->data, pkt->size);
 +    ASSContext *ass = s->priv_data;
 +
 +    if (ass->write_ts) {
 +        long int layer;
 +        char *p;
 +        int64_t start = pkt->pts;
 +        int64_t end   = start + pkt->duration;
 +        int hh1, mm1, ss1, ms1;
 +        int hh2, mm2, ss2, ms2;
 +
 +        p = pkt->data + strcspn(pkt->data, ",") + 1; // skip ReadOrder
 +        layer = strtol(p, &p, 10);
 +        if (*p == ',')
 +            p++;
 +        hh1 = (int)(start / 360000);    mm1 = (int)(start / 6000) % 60;
 +        hh2 = (int)(end   / 360000);    mm2 = (int)(end   / 6000) % 60;
 +        ss1 = (int)(start / 100) % 60;  ms1 = (int)(start % 100);
 +        ss2 = (int)(end   / 100) % 60;  ms2 = (int)(end   % 100);
 +        if (hh1 > 9) hh1 = 9, mm1 = 59, ss1 = 59, ms1 = 99;
 +        if (hh2 > 9) hh2 = 9, mm2 = 59, ss2 = 59, ms2 = 99;
 +        avio_printf(s->pb, "Dialogue: %ld,%d:%02d:%02d.%02d,%d:%02d:%02d.%02d,%s\r\n",
 +                    layer, hh1, mm1, ss1, ms1, hh2, mm2, ss2, ms2, p);
 +    } else {
 +        avio_write(s->pb, pkt->data, pkt->size);
 +    }
++
      return 0;
  }