From 44d4dae2e0978d17cee717b63400d62156f65bfe Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 3 Dec 2025 12:21:12 -0400 Subject: [PATCH] MT#55283 set AV seek flags Fixes seeking for certain file formats Change-Id: Ib7cd080e1bff134b568e7d3bd277c6954664b4ca --- daemon/media_player.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daemon/media_player.c b/daemon/media_player.c index 7179942c0..b9a377aad 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -1095,7 +1095,7 @@ static int media_player_find_file_begin(struct media_player *mp) { int64_t ret64 = avio_seek(mp->coder.fmtctx->pb, 0, SEEK_SET); if (ret64 != 0) ilog(LOG_ERR, "Failed to seek to beginning of media file"); - ret = av_seek_frame(mp->coder.fmtctx, -1, 0, 0); + ret = av_seek_frame(mp->coder.fmtctx, -1, 0, AVSEEK_FLAG_ANY | AVSEEK_FLAG_BACKWARD); if (ret < 0) ilog(LOG_ERR, "Failed to seek to beginning of media file"); ret = av_read_frame(mp->coder.fmtctx, mp->coder.pkt); @@ -1242,10 +1242,10 @@ static bool media_player_play_start(struct media_player *mp, const rtp_payload_t // if start_pos is positive, try to seek to that position if (mp->opts.start_pos > 0) { ilog(LOG_DEBUG, "Seeking to position %lli", mp->opts.start_pos); - av_seek_frame(mp->coder.fmtctx, 0, mp->opts.start_pos, 0); + av_seek_frame(mp->coder.fmtctx, 0, mp->opts.start_pos, AVSEEK_FLAG_ANY | AVSEEK_FLAG_BACKWARD); } else // in case this is a repeated start - av_seek_frame(mp->coder.fmtctx, 0, 0, 0); + av_seek_frame(mp->coder.fmtctx, 0, 0, AVSEEK_FLAG_ANY | AVSEEK_FLAG_BACKWARD); media_player_read_packet(mp);