On Tue, Dec 12, 2023 at 04:50:08PM +0530, Gyan Doshi wrote:
> During a resampling operation where
> 
> 1) user has specified first_pts
> 2) SWR_FLAG_RESAMPLE is not set initially (directly or otherwise)
> 3) first_pts has been fulfilled (always using hard compensation)
> 
> then upon first encountering a delay where a soft compensation is
> required, swr_set_compensation will lead to another init of swr which
> will reset outpts to the specified firstpts thus leading to an output
> frame having its pts = firstpts. When the next input frame is received,
> swr will see a large delay and inject silence from firstpts to the
> current frame's pts. This can lead to severe desync and in worst case,
> loss of audio playback.
> 
> Parameter initcount added to keep track of swr_init calls of the swrcontext
> and to ultimately avoid enforcing firstpts again.
> 
> Fixes #4131.
> ---
>  libswresample/swresample.c          | 7 +++++--
>  libswresample/swresample_internal.h | 1 +
>  libswresample/version.h             | 2 +-
>  3 files changed, 7 insertions(+), 3 deletions(-)

Would it work to instead set firstpts = AV_NOPTS_VALUE on allocation
and then use firstpts == AV_NOPTS_VALUE to detect if it has been set
already ?
If that workes, that seems simpler than counting init

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

While the State exists there can be no freedom; when there is freedom there
will be no State. -- Vladimir Lenin

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to