Hi I needed to be able to use the write_data_type callback when reading data from the mpegts muxer, to make my application aware of key frames in the data so I added support. I used the matroska implementation as a reference.
If this is accepted, I will format this as a proper patch after feedback. Regards Oliver diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index fc0ea225c6..e5d1a64b4c 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -1815,6 +1815,12 @@ static int mpegts_write_packet(AVFormatContext *s, AVPacket *pkt) mpegts_write_flush(s); return 1; } else { + if (s->pb && s->pb->write_data_type) { + AVStream *st = s->streams[pkt->stream_index]; + avio_write_marker(s->pb, + av_rescale_q(pkt->dts, st->time_base, AV_TIME_BASE_Q), + (pkt->flags & AV_PKT_FLAG_KEY) && st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ? AVIO_DATA_MARKER_SYNC_POINT : AVIO_DATA_MARKER_BOUNDARY_POINT); + } return mpegts_write_packet_internal(s, pkt); } } _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel