diff options
Diffstat (limited to 'media-video/mpv/files/0.18.0/mpv-0.18.0-fix-initial-av-sync.patch')
-rw-r--r-- | media-video/mpv/files/0.18.0/mpv-0.18.0-fix-initial-av-sync.patch | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/media-video/mpv/files/0.18.0/mpv-0.18.0-fix-initial-av-sync.patch b/media-video/mpv/files/0.18.0/mpv-0.18.0-fix-initial-av-sync.patch deleted file mode 100644 index c2cacc3bff7a..000000000000 --- a/media-video/mpv/files/0.18.0/mpv-0.18.0-fix-initial-av-sync.patch +++ /dev/null @@ -1,42 +0,0 @@ -commit 614efea3e67a435f3330820c3dc8b402535641e8 -Author: wm4 <wm4@nowhere> -Date: Fri Jul 1 15:51:34 2016 +0200 - -ad_lavc: work around braindead ffmpeg behavior - -The libavcodec wmapro decoder will skip some bytes at the start of the -first packet and return each time. It will not return any audio data in -this state. - -Our own code as well as libavcodec's new API handling -(avcodec_send_packet() etc.) discard the PTS on the first return, which -means the PTS is never known for the first packet. This results in a -"Failed audio resync." message. - -Fixy it by remember the PTS in next_pts. This field is used only if the -decoder outputs no PTS, and is updated after each frame - and thus -should be safe to set. - -(Possibly this should be fixed in libavcodec new API handling by not -setting the PTS to NOPTS as long as no real data has been output. It -could even interpolate the PTS if the timebase is known.) - -Fixes the failure message seen in #3297. - -diff --git a/audio/decode/ad_lavc.c b/audio/decode/ad_lavc.c -index f48993f..0316f6b 100644 ---- a/audio/decode/ad_lavc.c -+++ b/audio/decode/ad_lavc.c -@@ -186,6 +186,12 @@ static int decode_packet(struct dec_audio *da, struct demux_packet *mpkt, - struct priv *priv = da->priv; - AVCodecContext *avctx = priv->avctx; - -+ // If the decoder discards the timestamp for some reason, we use the -+ // interpolated PTS. Initialize it so that it works for the initial -+ // packet as well. -+ if (mpkt && priv->next_pts == MP_NOPTS_VALUE) -+ priv->next_pts = mpkt->pts; -+ - int in_len = mpkt ? mpkt->len : 0; - - AVPacket pkt; |