[FFmpeg-devel] [PATCH 5/9] avformat/matroskaenc: Use more appropriate function name
James Almer
jamrial at gmail.com
Tue Oct 22 03:17:51 EEST 2019
On 10/15/2019 8:17 AM, Andreas Rheinhardt wrote:
> mkv_start_new_cluster() actually didn't start a new cluster, but ended
> the old one instead and emitted a debug message that it had started a
> new cluster. This has been changed: The debug message has been moved to
> the place that really starts a new cluster and the function has been
> renamed to mkv_end_cluster().
>
> Furthermore, without this debug message the function can be used for
> flushing.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> libavformat/matroskaenc.c | 18 ++++++++----------
> 1 file changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> index eb8977ff9c..0d21ab055a 100644
> --- a/libavformat/matroskaenc.c
> +++ b/libavformat/matroskaenc.c
> @@ -2244,16 +2244,12 @@ static int mkv_write_vtt_blocks(AVFormatContext *s, AVIOContext *pb, AVPacket *p
> return pkt->duration;
> }
>
> -static void mkv_start_new_cluster(AVFormatContext *s, AVPacket *pkt)
> +static void mkv_end_cluster(AVFormatContext *s)
> {
> MatroskaMuxContext *mkv = s->priv_data;
>
> end_ebml_master_crc32(s->pb, &mkv->cluster_bc, mkv);
> mkv->cluster_pos = -1;
> - av_log(s, AV_LOG_DEBUG,
> - "Starting new cluster at offset %" PRIu64 " bytes, "
> - "pts %" PRIu64 ", dts %" PRIu64 "\n",
> - avio_tell(s->pb), pkt->pts, pkt->dts);
> avio_flush(s->pb);
> }
>
> @@ -2387,8 +2383,8 @@ static int mkv_write_packet_internal(AVFormatContext *s, AVPacket *pkt, int add_
> if (mkv->cluster_pos != -1) {
> int64_t cluster_time = ts - mkv->cluster_pts;
> if ((int16_t)cluster_time != cluster_time) {
> + mkv_end_cluster(s);
> av_log(s, AV_LOG_WARNING, "Starting new cluster due to timestamp\n");
> - mkv_start_new_cluster(s, pkt);
> }
> }
>
> @@ -2399,6 +2395,10 @@ static int mkv_write_packet_internal(AVFormatContext *s, AVPacket *pkt, int add_
> return ret;
> put_ebml_uint(mkv->cluster_bc, MATROSKA_ID_CLUSTERTIMECODE, FFMAX(0, ts));
> mkv->cluster_pts = FFMAX(0, ts);
> + av_log(s, AV_LOG_DEBUG,
> + "Starting new cluster with timestamp "
> + "%" PRId64 " at offset %" PRId64 " bytes\n",
> + mkv->cluster_pts, mkv->cluster_pos);
> }
> pb = mkv->cluster_bc;
>
> @@ -2491,7 +2491,7 @@ static int mkv_write_packet(AVFormatContext *s, AVPacket *pkt)
> }
>
> if (mkv->cluster_pos != -1 && start_new_cluster) {
> - mkv_start_new_cluster(s, pkt);
> + mkv_end_cluster(s);
> }
>
> if (!mkv->cluster_pos)
> @@ -2528,12 +2528,10 @@ static int mkv_write_flush_packet(AVFormatContext *s, AVPacket *pkt)
>
> if (!pkt) {
> if (mkv->cluster_pos != -1) {
> - end_ebml_master_crc32(s->pb, &mkv->cluster_bc, mkv);
> - mkv->cluster_pos = -1;
> + mkv_end_cluster(s);
> av_log(s, AV_LOG_DEBUG,
> "Flushing cluster at offset %" PRIu64 " bytes\n",
> avio_tell(s->pb));
> - avio_flush(s->pb);
> }
> return 1;
> }
Applied.
More information about the ffmpeg-devel
mailing list