Merge commit '5d3953a5dcfd5f71391b7f34908517eb6f7e5146'
authorJames Almer <jamrial@gmail.com>
Mon, 2 Oct 2017 18:26:56 +0000 (15:26 -0300)
committerJames Almer <jamrial@gmail.com>
Mon, 2 Oct 2017 18:26:56 +0000 (15:26 -0300)
* commit '5d3953a5dcfd5f71391b7f34908517eb6f7e5146':
  matroskaenc: factor ts_offset into block timecode computation

Merged-by: James Almer <jamrial@gmail.com>
1  2 
libavformat/matroskaenc.c

@@@ -2105,18 -1458,14 +2105,20 @@@ static void mkv_write_block(AVFormatCon
  {
      MatroskaMuxContext *mkv = s->priv_data;
      AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar;
 -    uint8_t *data = NULL;
 -    int offset = 0, size = pkt->size;
 +    uint8_t *data = NULL, *side_data = NULL;
 +    int offset = 0, size = pkt->size, side_data_size = 0;
      int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
 +    uint64_t additional_id = 0;
 +    int64_t discard_padding = 0;
 +    uint8_t track_number = (mkv->is_dash ? mkv->dash_track_number : (pkt->stream_index + 1));
 +    ebml_master block_group, block_additions, block_more;
 +
+     ts += mkv->tracks[pkt->stream_index].ts_offset;
      av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, "
 -           "pts %" PRId64 ", dts %" PRId64 ", duration %" PRId64 ", flags %d\n",
 -           avio_tell(pb), pkt->size, pkt->pts, pkt->dts, pkt->duration, flags);
 +           "pts %" PRId64 ", dts %" PRId64 ", duration %" PRId64 ", keyframe %d\n",
 +           avio_tell(pb), pkt->size, pkt->pts, pkt->dts, pkt->duration,
 +           keyframe != 0);
      if (par->codec_id == AV_CODEC_ID_H264 && par->extradata_size > 0 &&
          (AV_RB24(par->extradata) == 1 || AV_RB32(par->extradata) == 1))
          ff_avc_parse_nal_units_buf(pkt->data, &data, &size);