Commit dc62016c authored by Matthieu Bouron's avatar Matthieu Bouron

Merge commit '71852a1b'

* commit '71852a1b':
  matroskaenc: Provide output bytestream markers
Merged-by: 's avatarMatthieu Bouron <matthieu.bouron@stupeflix.com>
parents a86fe0d7 71852a1b
...@@ -119,6 +119,7 @@ typedef struct MatroskaMuxContext { ...@@ -119,6 +119,7 @@ typedef struct MatroskaMuxContext {
AVPacket cur_audio_pkt; AVPacket cur_audio_pkt;
int have_attachments; int have_attachments;
int have_video;
int reserve_cues_space; int reserve_cues_space;
int cluster_size_limit; int cluster_size_limit;
...@@ -1055,6 +1056,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, ...@@ -1055,6 +1056,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
switch (par->codec_type) { switch (par->codec_type) {
case AVMEDIA_TYPE_VIDEO: case AVMEDIA_TYPE_VIDEO:
mkv->have_video = 1;
put_ebml_uint(pb, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_VIDEO); put_ebml_uint(pb, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_VIDEO);
if( st->avg_frame_rate.num > 0 && st->avg_frame_rate.den > 0 if( st->avg_frame_rate.num > 0 && st->avg_frame_rate.den > 0
...@@ -2035,6 +2037,11 @@ static int mkv_write_packet(AVFormatContext *s, AVPacket *pkt) ...@@ -2035,6 +2037,11 @@ static int mkv_write_packet(AVFormatContext *s, AVPacket *pkt)
mkv_start_new_cluster(s, pkt); mkv_start_new_cluster(s, pkt);
} }
if (!mkv->cluster_pos)
avio_write_marker(s->pb,
av_rescale_q(pkt->dts, s->streams[pkt->stream_index]->time_base, AV_TIME_BASE_Q),
keyframe && (mkv->have_video ? codec_type == AVMEDIA_TYPE_VIDEO : 1) ? AVIO_DATA_MARKER_SYNC_POINT : AVIO_DATA_MARKER_BOUNDARY_POINT);
// check if we have an audio packet cached // check if we have an audio packet cached
if (mkv->cur_audio_pkt.size > 0) { if (mkv->cur_audio_pkt.size > 0) {
// for DASH audio, a CuePoint has to be added when there is a new cluster. // for DASH audio, a CuePoint has to be added when there is a new cluster.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment