Browse Source

MT#55283 set AV seek flags

Fixes seeking for certain file formats

Change-Id: Ib7cd080e1bff134b568e7d3bd277c6954664b4ca
pull/2035/head
Richard Fuchs 6 days ago
parent
commit
44d4dae2e0
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      daemon/media_player.c

+ 3
- 3
daemon/media_player.c View File

@ -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);


Loading…
Cancel
Save