xbmc / inputstream.ffmpegdirect

Supports streams opened by FFmpeg's libavformat or Kodi's cURL such as plain TS, HLS and DASH (non-DRM) as well as many others. There is support for Archive/Catchup services where there is a replay window and can timeshift across that span. Also provides timeshift for live streams where rewind/pause and fast-forward would not have been available.
GNU General Public License v2.0
59 stars 41 forks source link

Fix seeking in FFmpegDirect caused by st->cur_pts replacement in FFmpeg6 and Synchronise code with Kodi up to end of 2023 #265

Closed phunkyfish closed 10 months ago

phunkyfish commented 10 months ago

Part 1:

Syncronised all changes from https://github.com/xbmc/xbmc/commits/master/xbmc/cores/FFmpeg.cpp, and https://github.com/xbmc/xbmc/commits/master/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp

Part 2:

Based off changes in Kodi PR: https://github.com/xbmc/xbmc/pull/23557/commits and https://github.com/xbmc/xbmc/pull/23629/commits

We remove calls to UpdateCurrentPTS() which is used for catchup support. So we need to adapt the original commit for our use case.

Instead for catchup we should call it in the correct place in order to seek correctly. In the base class it does nothing, but when we inherit it does.

phunkyfish commented 10 months ago

Superseded by https://github.com/xbmc/inputstream.ffmpegdirect/pull/269 and https://github.com/xbmc/inputstream.ffmpegdirect/pull/268