From 6917c511507bee74297845267811e7bcc042e62e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 10 Sep 2022 00:45:11 +0200 Subject: [PATCH] Some improved logging. --- src/lib/ffmpeg_decoder.cc | 16 ++++++++++++++-- src/lib/player.cc | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index 331ab313d..250bce955 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -452,6 +452,8 @@ FFmpegDecoder::process_audio_frame (shared_ptr stream) auto frame = audio_frame (stream); auto data = deinterleave_audio (frame); + auto const time_base = stream->stream(_format_context)->time_base; + ContentTime ct; if (frame->pts == AV_NOPTS_VALUE) { /* In some streams we see not every frame coming through with a timestamp; for those @@ -464,8 +466,16 @@ FFmpegDecoder::process_audio_frame (shared_ptr stream) } else { ct = ContentTime::from_seconds ( frame->best_effort_timestamp * - av_q2d (stream->stream(_format_context)->time_base)) + av_q2d(time_base)) + _pts_offset; + LOG_DEBUG_PLAYER( + "Process audio with timestamp %1 (BET %2, timebase %3/%4, (PTS offset %5)", + to_string(ct), + frame->best_effort_timestamp, + time_base.num, + time_base.den, + to_string(_pts_offset) + ); } _next_time[stream] = ct + ContentTime::from_frames(data->frames(), stream->frame_rate()); @@ -485,7 +495,7 @@ FFmpegDecoder::process_audio_frame (shared_ptr stream) data->frames(), stream->id(), frame->best_effort_timestamp, - av_q2d(stream->stream(_format_context)->time_base), + av_q2d(time_base), to_string(_pts_offset) ); } @@ -508,6 +518,7 @@ FFmpegDecoder::decode_and_process_audio_packet (AVPacket* packet) auto context = _codec_context[stream->index(_format_context)]; auto frame = audio_frame (stream); + LOG_DEBUG_PLAYER("Send audio packet on stream %1", stream->index(_format_context)); int r = avcodec_send_packet (context, packet); if (r < 0) { LOG_WARNING("avcodec_send_packet returned %1 for an audio packet", r); @@ -516,6 +527,7 @@ FFmpegDecoder::decode_and_process_audio_packet (AVPacket* packet) r = avcodec_receive_frame (context, frame); if (r == AVERROR(EAGAIN)) { /* More input is required */ + LOG_DEBUG_PLAYER_NC("EAGAIN after trying to receive auido frame"); return; } diff --git a/src/lib/player.cc b/src/lib/player.cc index de9be2b71..b7088f1d2 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -778,7 +778,7 @@ Player::pass () ); if (latest_last_push_end != _stream_states.end()) { - LOG_DEBUG_PLAYER("Leading stream is in %1 at %2", latest_last_push_end->second.piece->content->path(0), to_string(latest_last_push_end->second.last_push_end)); + LOG_DEBUG_PLAYER("Leading audio stream is in %1 at %2", latest_last_push_end->second.piece->content->path(0), to_string(latest_last_push_end->second.last_push_end)); } /* Now make a list of those streams that are less than ignore_streams_behind behind the leader */ -- 2.30.2