mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 05:36:47 +00:00
xbmc: update FM support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
7937d4d0e9
commit
1925b814e3
@ -1,7 +1,7 @@
|
||||
From 70133bf136174bf3c818968f5375c72840292f6e Mon Sep 17 00:00:00 2001
|
||||
From ab3ed171e0f2d3539455b8479b72204b0b935145 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Mon, 28 May 2012 10:34:39 +0200
|
||||
Subject: [PATCH 01/27] videoplayer: adapt lateness detection and dropping to
|
||||
Subject: [PATCH 01/31] videoplayer: adapt lateness detection and dropping to
|
||||
buffering
|
||||
|
||||
---
|
||||
@ -646,10 +646,10 @@ index 37a37c4..be14832 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 86e4f2c78fc0475d19b5b1fe2825940b0a7f5196 Mon Sep 17 00:00:00 2001
|
||||
From 487e9680440879f01fe0732325748aa519164419 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Sun, 2 Sep 2012 16:05:21 +0200
|
||||
Subject: [PATCH 02/27] video player: present correct pts to user for a/v sync
|
||||
Subject: [PATCH 02/31] video player: present correct pts to user for a/v sync
|
||||
(after buffering in renderer)
|
||||
|
||||
---
|
||||
@ -701,10 +701,10 @@ index be14832..ad99987 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 5464634530899d3aa6d09896973de14f27803c66 Mon Sep 17 00:00:00 2001
|
||||
From c5368ddfb731ef967e3dbc635d325285e4368bed Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sat, 1 Jun 2013 11:21:19 +0200
|
||||
Subject: [PATCH 03/27] renderer: bump buffers to 5
|
||||
Subject: [PATCH 03/31] renderer: bump buffers to 5
|
||||
|
||||
---
|
||||
xbmc/cores/VideoRenderers/BaseRenderer.h | 2 +-
|
||||
@ -727,10 +727,10 @@ index fb41ccf..f5e5677 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 9e1ee4811b9e3b6fd1e3fe2982f6622ee619bb79 Mon Sep 17 00:00:00 2001
|
||||
From dcba98d63da19d9a620da5a66a90711289344afd Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Mon, 28 May 2012 10:41:31 +0200
|
||||
Subject: [PATCH 04/27] videoplayer: update frametime, it might change due to
|
||||
Subject: [PATCH 04/31] videoplayer: update frametime, it might change due to
|
||||
fps detection
|
||||
|
||||
---
|
||||
@ -754,10 +754,10 @@ index 1e70fca..5761270 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 7bc57e1e4b7a9b50dc2fce152abb5586fe615cb8 Mon Sep 17 00:00:00 2001
|
||||
From de6543284447f8185c4df494e3e48df71eb16349 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Mon, 28 May 2012 10:43:06 +0200
|
||||
Subject: [PATCH 05/27] videoplayer: give streams with invalid fps a chance for
|
||||
Subject: [PATCH 05/31] videoplayer: give streams with invalid fps a chance for
|
||||
fps detection
|
||||
|
||||
---
|
||||
@ -781,10 +781,10 @@ index 5761270..e8d855f 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 27bf5d17b0bd4890d7f25c8381ff32740b8dffd5 Mon Sep 17 00:00:00 2001
|
||||
From 0598187613227e589871a06df9a6637df4b8ef59 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Mon, 28 May 2012 10:49:05 +0200
|
||||
Subject: [PATCH 06/27] dvdplayer: allow rewinding at end of stream, do a seek
|
||||
Subject: [PATCH 06/31] dvdplayer: allow rewinding at end of stream, do a seek
|
||||
after rewind
|
||||
|
||||
---
|
||||
@ -821,10 +821,10 @@ index 8de1e96..19e90f5 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 08fb3a8634c2a644e9059aaf0fc5257ad237f558 Mon Sep 17 00:00:00 2001
|
||||
From 9b5fcc9f82be2d8a93b3fbedbf8709a72e82ec96 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Mon, 20 Aug 2012 16:06:39 +0200
|
||||
Subject: [PATCH 07/27] dvdplayer: observe pts counter overflow
|
||||
Subject: [PATCH 07/31] dvdplayer: observe pts counter overflow
|
||||
|
||||
---
|
||||
.../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 197 ++++++++++++++++++++-
|
||||
@ -1107,10 +1107,10 @@ index 08eb3df..dd89584 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 4169f8e73a7663a1709eb8a7770359e527046d2d Mon Sep 17 00:00:00 2001
|
||||
From 430589bc82a13e4b457b84862fed5d80c2c9c8e5 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Tue, 2 Oct 2012 13:02:10 +0200
|
||||
Subject: [PATCH 08/27] dvdplayer: avoid short screen flicker caused by
|
||||
Subject: [PATCH 08/31] dvdplayer: avoid short screen flicker caused by
|
||||
unnecessary reconfigure of renderer
|
||||
|
||||
---
|
||||
@ -1143,10 +1143,10 @@ index e8d855f..5bff37e 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 21d1f62dad833faf01100a31e4ecc2a3eae98488 Mon Sep 17 00:00:00 2001
|
||||
From df1c231838244764acbf84142261d5f67f6f89b0 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 11 Oct 2012 12:05:50 +0200
|
||||
Subject: [PATCH 09/27] vdpau: advanced settings for auto deinterlacing
|
||||
Subject: [PATCH 09/31] vdpau: advanced settings for auto deinterlacing
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++----
|
||||
@ -1212,10 +1212,10 @@ index 7e50a63..980138e 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 63db87d23949258ffebbd75780f62c9b0e93d840 Mon Sep 17 00:00:00 2001
|
||||
From d320919872492797709fc2226eccddae470d53dc Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Fri, 2 Nov 2012 13:20:03 +0100
|
||||
Subject: [PATCH 10/27] player: fix rewind
|
||||
Subject: [PATCH 10/31] player: fix rewind
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDMessage.h | 5 ++++-
|
||||
@ -1430,10 +1430,10 @@ index ad99987..4d2b2c7 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 2ff037346ebe6fa3e88c9dfc87e86366a1215fe5 Mon Sep 17 00:00:00 2001
|
||||
From 53c0dbd9f211b6b2d9934a9c4e2a26da265fcc01 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 28 Mar 2013 15:18:53 +0100
|
||||
Subject: [PATCH 11/27] OMXPlayer: some caching fixes for pvr
|
||||
Subject: [PATCH 11/31] OMXPlayer: some caching fixes for pvr
|
||||
|
||||
---
|
||||
xbmc/cores/omxplayer/OMXPlayer.cpp | 3 ++-
|
||||
@ -1457,10 +1457,10 @@ index 53fe37d..182314f 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 0cb3e855ba5bf266800638bff95673ba07d66ce0 Mon Sep 17 00:00:00 2001
|
||||
From 6b4eb294ef8c3d13736cbdec6093c4d5d6ace4b7 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 28 Mar 2013 20:50:59 +0100
|
||||
Subject: [PATCH 12/27] fix incorrect display of fps when dr kicks in
|
||||
Subject: [PATCH 12/31] fix incorrect display of fps when dr kicks in
|
||||
|
||||
---
|
||||
xbmc/Application.cpp | 3 ++-
|
||||
@ -1487,10 +1487,10 @@ index 479b54a..6ef5bdb 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From ca506bac9c8d77fba0bf3baaf819c06510347855 Mon Sep 17 00:00:00 2001
|
||||
From 51aac4a2916cd7fdd2da52cb71dbbd4e47c0b8db Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Thu, 25 Jul 2013 17:18:13 +0200
|
||||
Subject: [PATCH 13/27] ActiveAE: slightly reduce buffer size
|
||||
Subject: [PATCH 13/31] ActiveAE: slightly reduce buffer size
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 4 ++--
|
||||
@ -1515,10 +1515,10 @@ index fe5e893..c98c73b 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 443859e498d3d2037d61cd465ae4694406c40350 Mon Sep 17 00:00:00 2001
|
||||
From 0cec3ff65e750280264d058c3d9e75c6e76a8419 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sun, 4 Aug 2013 10:11:16 +0200
|
||||
Subject: [PATCH 14/27] Revert "vdpau: comment some features that will be added
|
||||
Subject: [PATCH 14/31] Revert "vdpau: comment some features that will be added
|
||||
later"
|
||||
|
||||
This reverts commit e00b4f65864d623ab4d2e9e5c06db138e661f1cf.
|
||||
@ -1574,10 +1574,10 @@ index 1845198..2bfea1a 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From b50aafc6c1f7e8d6a345cd98a4b5aae527838c1d Mon Sep 17 00:00:00 2001
|
||||
From f93e7631df21c85ad5c512de3247562115ed9ee2 Mon Sep 17 00:00:00 2001
|
||||
From: Marcel Groothuis <margro.xbmc@gmail.com>
|
||||
Date: Thu, 5 Dec 2013 22:02:50 +0100
|
||||
Subject: [PATCH 15/27] ffmpeg demuxer: faster channel change for PVR addons
|
||||
Subject: [PATCH 15/31] ffmpeg demuxer: faster channel change for PVR addons
|
||||
without internal demuxing (such as MediaPortal, ArgusTV, MythTV, NextPVR)
|
||||
Credits: FernetMenta, Davilla, Popcornmix, Whaupt
|
||||
|
||||
@ -1937,10 +1937,10 @@ index ca689d0..f383563 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 4185f173f2510099f3236521ddc473a1b04c3c1b Mon Sep 17 00:00:00 2001
|
||||
From d6b8a9eaed29fe9e7cc52fcd3e337a374f86187c Mon Sep 17 00:00:00 2001
|
||||
From: Wolfgang Haupt <w.haupt@at-visions.com>
|
||||
Date: Thu, 5 Dec 2013 22:11:57 +0100
|
||||
Subject: [PATCH 16/27] DVDFactoryDemuxer: skip streaminfo for udp tcp and
|
||||
Subject: [PATCH 16/31] DVDFactoryDemuxer: skip streaminfo for udp tcp and
|
||||
pvr-channels
|
||||
|
||||
---
|
||||
@ -2064,10 +2064,10 @@ index 667f6d3..0094709 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 4ca1fb51808a11555862a5fec00b8e133e7c9bd3 Mon Sep 17 00:00:00 2001
|
||||
From fa733c748a2a9259dc8032614df4182f8ed8125c Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Fri, 18 Jul 2014 10:39:07 +0200
|
||||
Subject: [PATCH 17/27] fast channel switch, make sure extradata is decoded
|
||||
Subject: [PATCH 17/31] fast channel switch, make sure extradata is decoded
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 3 ++-
|
||||
@ -2091,10 +2091,10 @@ index c01bc11..d38bfab 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 4a55e426e089da56d299bb2b2fd5cc21933856d5 Mon Sep 17 00:00:00 2001
|
||||
From 5bb5b183f8969475db282ff90a8d5382920f4546 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Wed, 23 Jul 2014 15:07:37 +0200
|
||||
Subject: [PATCH 18/27] ffmpeg demuxer: allow a stream change if pat/pmt was
|
||||
Subject: [PATCH 18/31] ffmpeg demuxer: allow a stream change if pat/pmt was
|
||||
not seen on open
|
||||
|
||||
---
|
||||
@ -2157,10 +2157,10 @@ index d38bfab..2332b1b 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From d1a4921fd94a103872ba36e3b0b5bc8a819d6ba1 Mon Sep 17 00:00:00 2001
|
||||
From 75f483190ef00aed904023a1dce5c803d228804c Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sun, 22 Dec 2013 14:52:29 +0100
|
||||
Subject: [PATCH 19/27] linux: add shared lib for sse4 operations
|
||||
Subject: [PATCH 19/31] linux: add shared lib for sse4 operations
|
||||
|
||||
---
|
||||
Makefile.in | 8 ++-
|
||||
@ -2455,10 +2455,10 @@ index 0000000..45aa826
|
||||
2.0.4
|
||||
|
||||
|
||||
From d556061cc85aa4c3b064bcda63346715ddbb4bd5 Mon Sep 17 00:00:00 2001
|
||||
From 955cd049218bfa250cb4331af4e96cc3e5f647af Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Tue, 28 Jan 2014 10:05:26 +0100
|
||||
Subject: [PATCH 20/27] xbmc pr 3080
|
||||
Subject: [PATCH 20/31] xbmc pr 3080
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 8 ++++++++
|
||||
@ -2487,10 +2487,10 @@ index 6920db2..d72e256 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From c4052186723660e1d15f5286bc1881bcc033a8d9 Mon Sep 17 00:00:00 2001
|
||||
From ea66a597e55c5e96aa50e5f6c1ad3e116ea73f94 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Tue, 11 Feb 2014 18:15:06 +0100
|
||||
Subject: [PATCH 21/27] ActiveAE: add some debug logging
|
||||
Subject: [PATCH 21/31] ActiveAE: add some debug logging
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp | 6 ++++++
|
||||
@ -2518,10 +2518,10 @@ index ec10397..3b67fc0 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From bec0650784571cace17c909e4e2929c2e65793cd Mon Sep 17 00:00:00 2001
|
||||
From cb2f5af4e3804880785a5670857541dfce5795a0 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Fri, 13 Jun 2014 14:37:16 +0200
|
||||
Subject: [PATCH 22/27] VAAPI: rewrite with VPP and ffmpeg filter
|
||||
Subject: [PATCH 22/31] VAAPI: rewrite with VPP and ffmpeg filter
|
||||
|
||||
---
|
||||
configure.in | 16 +-
|
||||
@ -7287,10 +7287,10 @@ index 760eda5..965f297 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 75b770fe37e7b2423ad538255a76b7cd313912f2 Mon Sep 17 00:00:00 2001
|
||||
From cb2fc4c71d8582e83bafd036eed14ee8cbc4550a Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sat, 26 Jul 2014 09:54:06 +0200
|
||||
Subject: [PATCH 23/27] ffmpeg: adapt depreciated attribute
|
||||
Subject: [PATCH 23/31] ffmpeg: adapt depreciated attribute
|
||||
max_analyze_duration
|
||||
|
||||
---
|
||||
@ -7314,10 +7314,10 @@ index 2332b1b..edaa006 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 479b5b0e385754c4a9db77ff2afc57a1efb2abc8 Mon Sep 17 00:00:00 2001
|
||||
From 98f504310e967283db7b50ae5ca6d77aadfa4091 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sat, 16 Aug 2014 20:45:37 +0200
|
||||
Subject: [PATCH 24/27] ALSA: remove log spam by adding not ELD listed
|
||||
Subject: [PATCH 24/31] ALSA: remove log spam by adding not ELD listed
|
||||
passthrough formats after the pcm formats
|
||||
|
||||
---
|
||||
@ -7378,10 +7378,10 @@ index 8dee4bc..b7411b8 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 380775a77d1de1ec145d98b4fe387b2688de89b2 Mon Sep 17 00:00:00 2001
|
||||
From be2aee8d283033f876438e1b24b39f1cc1d45a06 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 19 Aug 2014 00:53:17 +0100
|
||||
Subject: [PATCH 25/27] [dvdplayer] Allow UpdateCorrection to handle audio and
|
||||
Subject: [PATCH 25/31] [dvdplayer] Allow UpdateCorrection to handle audio and
|
||||
video jumping asynchronously
|
||||
|
||||
---
|
||||
@ -7453,10 +7453,10 @@ index 68d68a1..fdc25af 100644
|
||||
2.0.4
|
||||
|
||||
|
||||
From 80152007eb8c364d610c32ee51217f69fc97017c Mon Sep 17 00:00:00 2001
|
||||
From bb47c72dd0ed6aaced0a8980c15835b8737303c7 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Wed, 20 Aug 2014 20:33:57 +0200
|
||||
Subject: [PATCH 27/27] VAAPI: fixes
|
||||
Subject: [PATCH 26/31] VAAPI: fixes
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 5 ++++-
|
||||
@ -7488,3 +7488,414 @@ index 9aec0c9..913063c 100644
|
||||
--
|
||||
2.0.4
|
||||
|
||||
|
||||
From b2723c955373788b3e410fe4cc68d508c54e12a4 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sat, 23 Aug 2014 11:42:31 +0200
|
||||
Subject: [PATCH 27/31] dvdplayer: rename codec ctrl flags
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h | 14 ++++++++------
|
||||
.../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +-
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++----
|
||||
xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 4 ++--
|
||||
4 files changed, 15 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h
|
||||
index 69ff8c9..22b9b99 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h
|
||||
@@ -136,9 +136,9 @@ struct DVDVideoUserData
|
||||
#define DVP_FLAG_NOSKIP 0x00000010 // indicate this picture should never be dropped
|
||||
#define DVP_FLAG_DROPPED 0x00000020 // indicate that this picture has been dropped in decoder stage, will have no data
|
||||
|
||||
-#define DVP_FLAG_DROPDEINT 0x00000040 // indicate that this picture was requested to have been dropped in deint stage
|
||||
-#define DVP_FLAG_NO_POSTPROC 0x00000100 // see GetCodecStats
|
||||
-#define DVP_FLAG_DRAIN 0x00000200 // see GetCodecStats
|
||||
+#define DVD_CODEC_CTRL_SKIPDEINT 0x01000000 // indicate that this picture was requested to have been dropped in deint stage
|
||||
+#define DVD_CODEC_CTRL_NO_POSTPROC 0x02000000 // see GetCodecStats
|
||||
+#define DVD_CODEC_CTRL_DRAIN 0x04000000 // see GetCodecStats
|
||||
|
||||
// DVP_FLAG 0x00000100 - 0x00000f00 is in use by libmpeg2!
|
||||
|
||||
@@ -312,10 +312,12 @@ class CDVDVideoCodec
|
||||
/**
|
||||
* Codec can be informed by player with the following flags:
|
||||
*
|
||||
- * DVP_FLAG_NO_POSTPROC : if speed is not normal the codec can switch off
|
||||
- * postprocessing and de-interlacing
|
||||
+ * DVD_CODEC_CTRL_NO_POSTPROC :
|
||||
+ * if speed is not normal the codec can switch off
|
||||
+ * postprocessing and de-interlacing
|
||||
*
|
||||
- * DVP_FLAG_DRAIN : codecs may do postprocessing and de-interlacing.
|
||||
+ * DVD_CODEC_CTRL_DRAIN :
|
||||
+ * codecs may do postprocessing and de-interlacing.
|
||||
* If video buffers in RenderManager are about to run dry,
|
||||
* this is signaled to codec. Codec can wait for post-proc
|
||||
* to be finished instead of returning empty and getting another
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
index a4ebcd8..65edae0 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
@@ -682,7 +682,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture)
|
||||
|
||||
if (m_requestSkipDeint)
|
||||
{
|
||||
- pDvdVideoPicture->iFlags |= DVP_FLAG_DROPDEINT;
|
||||
+ pDvdVideoPicture->iFlags |= DVD_CODEC_CTRL_SKIPDEINT;
|
||||
m_skippedDeint = 1;
|
||||
}
|
||||
else
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
index 2bfea1a..165f103 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
@@ -1085,7 +1085,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame)
|
||||
m_bufferStats.IncDecoded();
|
||||
m_vdpauOutput.m_dataPort.SendOutMessage(COutputDataProtocol::NEWFRAME, &pic, sizeof(pic));
|
||||
|
||||
- m_codecControl = pic.DVDPic.iFlags & (DVP_FLAG_DRAIN | DVP_FLAG_NO_POSTPROC);
|
||||
+ m_codecControl = pic.DVDPic.iFlags & (DVD_CODEC_CTRL_DRAIN | DVD_CODEC_CTRL_NO_POSTPROC);
|
||||
}
|
||||
|
||||
int retval = 0;
|
||||
@@ -2281,7 +2281,7 @@ void CMixer::InitCycle()
|
||||
int flags;
|
||||
uint64_t latency;
|
||||
m_config.stats->GetParams(latency, flags);
|
||||
- if (flags & DVP_FLAG_NO_POSTPROC)
|
||||
+ if (flags & DVD_CODEC_CTRL_NO_POSTPROC)
|
||||
SetPostProcFeatures(false);
|
||||
else
|
||||
SetPostProcFeatures(true);
|
||||
@@ -2293,7 +2293,7 @@ void CMixer::InitCycle()
|
||||
bool interlaced = m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_INTERLACED;
|
||||
m_SeenInterlaceFlag |= interlaced;
|
||||
|
||||
- if (!(flags & DVP_FLAG_NO_POSTPROC) &&
|
||||
+ if (!(flags & DVD_CODEC_CTRL_NO_POSTPROC) &&
|
||||
(mode == VS_DEINTERLACEMODE_FORCE ||
|
||||
(mode == VS_DEINTERLACEMODE_AUTO && interlaced)))
|
||||
{
|
||||
@@ -2315,7 +2315,7 @@ void CMixer::InitCycle()
|
||||
m_config.stats->SetCanSkipDeint(true);
|
||||
}
|
||||
|
||||
- if (m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_DROPDEINT)
|
||||
+ if (m_mixerInput[1].DVDPic.iFlags & DVD_CODEC_CTRL_SKIPDEINT)
|
||||
{
|
||||
m_mixersteps = 1;
|
||||
}
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
||||
index f9a45e8..755f0a1 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
||||
@@ -524,9 +524,9 @@ void CDVDPlayerVideo::Process()
|
||||
}
|
||||
int codecControl = 0;
|
||||
if (iDropDirective & EOS_BUFFER_LEVEL)
|
||||
- codecControl |= DVP_FLAG_DRAIN;
|
||||
+ codecControl |= DVD_CODEC_CTRL_DRAIN;
|
||||
if (m_speed > DVD_PLAYSPEED_NORMAL)
|
||||
- codecControl |= DVP_FLAG_NO_POSTPROC;
|
||||
+ codecControl |= DVD_CODEC_CTRL_NO_POSTPROC;
|
||||
m_pVideoCodec->SetCodecControl(codecControl);
|
||||
if (iDropDirective & EOS_DROPPED)
|
||||
{
|
||||
--
|
||||
2.0.4
|
||||
|
||||
|
||||
From 30fd6e3b6c87c4126a05c1e674c38db7c6c8ec61 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sat, 23 Aug 2014 12:21:43 +0200
|
||||
Subject: [PATCH 28/31] VAAPI: implement codec control flags
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 17 +++++++++++++----
|
||||
1 file changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
|
||||
index 913063c..d1e9654 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
|
||||
@@ -706,7 +706,7 @@ int CDecoder::Decode(AVCodecContext* avctx, AVFrame* pFrame)
|
||||
m_bufferStats.IncDecoded();
|
||||
m_vaapiOutput.m_dataPort.SendOutMessage(COutputDataProtocol::NEWFRAME, &pic, sizeof(pic));
|
||||
|
||||
-// m_codecControl = pic.DVDPic.iFlags & (DVP_FLAG_DRAIN | DVP_FLAG_NO_POSTPROC);
|
||||
+ m_codecControl = pic.DVDPic.iFlags & (DVD_CODEC_CTRL_DRAIN | DVD_CODEC_CTRL_NO_POSTPROC);
|
||||
}
|
||||
|
||||
int retval = 0;
|
||||
@@ -1651,8 +1651,8 @@ bool COutput::HasWork()
|
||||
void COutput::InitCycle()
|
||||
{
|
||||
uint64_t latency;
|
||||
- int speed;
|
||||
- m_config.stats->GetParams(latency, speed);
|
||||
+ int flags;
|
||||
+ m_config.stats->GetParams(latency, flags);
|
||||
|
||||
m_config.stats->SetCanSkipDeint(false);
|
||||
|
||||
@@ -1660,7 +1660,8 @@ void COutput::InitCycle()
|
||||
EINTERLACEMETHOD method = CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod;
|
||||
bool interlaced = m_currentPicture.DVDPic.iFlags & DVP_FLAG_INTERLACED;
|
||||
|
||||
- if ((mode == VS_DEINTERLACEMODE_FORCE ||
|
||||
+ if (!(flags & DVD_CODEC_CTRL_NO_POSTPROC) &&
|
||||
+ (mode == VS_DEINTERLACEMODE_FORCE ||
|
||||
(mode == VS_DEINTERLACEMODE_AUTO && interlaced)))
|
||||
{
|
||||
if((method == VS_INTERLACEMETHOD_AUTO && interlaced)
|
||||
@@ -2481,6 +2482,7 @@ bool CVppPostproc::AddPicture(CVaapiDecodedPicture &pic)
|
||||
m_decodedPics.push_front(pic);
|
||||
m_frameCount++;
|
||||
m_step = 0;
|
||||
+ m_config.stats->SetCanSkipDeint(true);
|
||||
}
|
||||
|
||||
bool CVppPostproc::Filter(CVaapiProcessedPicture &outPic)
|
||||
@@ -2524,6 +2526,13 @@ bool CVppPostproc::Filter(CVaapiProcessedPicture &outPic)
|
||||
}
|
||||
outPic.DVDPic = it->DVDPic;
|
||||
|
||||
+ // skip deinterlacing cycle if requested
|
||||
+ if (m_step == 1 && (outPic.DVDPic.iFlags & DVD_CODEC_CTRL_SKIPDEINT))
|
||||
+ {
|
||||
+ Advance();
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
// vpp deinterlacing
|
||||
VAProcFilterParameterBufferDeinterlacing *filterParams;
|
||||
VABufferID pipelineBuf;
|
||||
--
|
||||
2.0.4
|
||||
|
||||
|
||||
From fea09af18ef403b4656ec1c3b1e0ee088a0d83db Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Fri, 22 Aug 2014 17:12:24 +0200
|
||||
Subject: [PATCH 29/31] pvr: fix deadlock caused by pollling channel group name
|
||||
|
||||
---
|
||||
xbmc/GUIInfoManager.cpp | 2 +-
|
||||
xbmc/pvr/PVRGUIInfo.cpp | 7 +++++++
|
||||
xbmc/pvr/PVRGUIInfo.h | 6 ++++++
|
||||
xbmc/pvr/PVRManager.cpp | 5 +++++
|
||||
xbmc/pvr/PVRManager.h | 6 ++++++
|
||||
5 files changed, 25 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/GUIInfoManager.cpp b/xbmc/GUIInfoManager.cpp
|
||||
index 617faa6..c262c1b 100644
|
||||
--- a/xbmc/GUIInfoManager.cpp
|
||||
+++ b/xbmc/GUIInfoManager.cpp
|
||||
@@ -3829,7 +3829,7 @@ CStdString CGUIInfoManager::GetVideoLabel(int item)
|
||||
case VIDEOPLAYER_CHANNEL_GROUP:
|
||||
{
|
||||
if (tag && !tag->IsRadio())
|
||||
- return g_PVRManager.GetPlayingGroup(false)->GroupName();
|
||||
+ return g_PVRManager.GetPlayingTVGroupName();
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/xbmc/pvr/PVRGUIInfo.cpp b/xbmc/pvr/PVRGUIInfo.cpp
|
||||
index 1487282..4c6cfdb 100644
|
||||
--- a/xbmc/pvr/PVRGUIInfo.cpp
|
||||
+++ b/xbmc/pvr/PVRGUIInfo.cpp
|
||||
@@ -258,6 +258,7 @@ void CPVRGUIInfo::UpdateMisc(void)
|
||||
bool bIsPlayingEncryptedStream = bStarted && g_PVRClients->IsEncrypted();
|
||||
bool bHasTVChannels = bStarted && g_PVRChannelGroups->GetGroupAllTV()->HasChannels();
|
||||
bool bHasRadioChannels = bStarted && g_PVRChannelGroups->GetGroupAllRadio()->HasChannels();
|
||||
+ std::string strPlayingTVGroup = (bStarted && bIsPlayingTV) ? g_PVRManager.GetPlayingGroup(false)->GroupName() : "";
|
||||
|
||||
/* safe to fetch these unlocked, since they're updated from the same thread as this one */
|
||||
bool bHasNonRecordingTimers = bStarted && m_iTimerAmount - m_iRecordingTimerAmount > 0;
|
||||
@@ -272,6 +273,7 @@ void CPVRGUIInfo::UpdateMisc(void)
|
||||
m_bIsPlayingEncryptedStream = bIsPlayingEncryptedStream;
|
||||
m_bHasTVChannels = bHasTVChannels;
|
||||
m_bHasRadioChannels = bHasRadioChannels;
|
||||
+ m_strPlayingTVGroup = strPlayingTVGroup;
|
||||
}
|
||||
|
||||
bool CPVRGUIInfo::TranslateCharInfo(DWORD dwInfo, std::string &strValue) const
|
||||
@@ -898,3 +900,8 @@ void CPVRGUIInfo::UpdatePlayingTag(void)
|
||||
m_iDuration = recording.GetDuration() * 1000;
|
||||
}
|
||||
}
|
||||
+
|
||||
+std::string CPVRGUIInfo::GetPlayingTVGroup()
|
||||
+{
|
||||
+ return m_strPlayingTVGroup;
|
||||
+}
|
||||
diff --git a/xbmc/pvr/PVRGUIInfo.h b/xbmc/pvr/PVRGUIInfo.h
|
||||
index 0d1500e..c8f8f43 100644
|
||||
--- a/xbmc/pvr/PVRGUIInfo.h
|
||||
+++ b/xbmc/pvr/PVRGUIInfo.h
|
||||
@@ -77,6 +77,11 @@ namespace PVR
|
||||
|
||||
bool GetPlayingTag(EPG::CEpgInfoTag &tag) const;
|
||||
|
||||
+ /*!
|
||||
+ * @brief Get playing TV group.
|
||||
+ */
|
||||
+ std::string GetPlayingTVGroup();
|
||||
+
|
||||
private:
|
||||
void ResetProperties(void);
|
||||
void ClearQualityInfo(PVR_SIGNAL_STATUS &qualityInfo);
|
||||
@@ -162,6 +167,7 @@ namespace PVR
|
||||
bool m_bIsPlayingEncryptedStream;
|
||||
bool m_bHasTVChannels;
|
||||
bool m_bHasRadioChannels;
|
||||
+ std::string m_strPlayingTVGroup;
|
||||
//@}
|
||||
|
||||
PVR_SIGNAL_STATUS m_qualityInfo; /*!< stream quality information */
|
||||
diff --git a/xbmc/pvr/PVRManager.cpp b/xbmc/pvr/PVRManager.cpp
|
||||
index dc5a85e..ee7770f 100644
|
||||
--- a/xbmc/pvr/PVRManager.cpp
|
||||
+++ b/xbmc/pvr/PVRManager.cpp
|
||||
@@ -1614,3 +1614,8 @@ bool CPVRManager::CreateChannelEpgs(void)
|
||||
m_bEpgsCreated = m_channelGroups->CreateChannelEpgs();
|
||||
return m_bEpgsCreated;
|
||||
}
|
||||
+
|
||||
+std::string CPVRManager::GetPlayingTVGroupName()
|
||||
+{
|
||||
+ return IsStarted() && m_guiInfo ? m_guiInfo->GetPlayingTVGroup() : "";
|
||||
+}
|
||||
diff --git a/xbmc/pvr/PVRManager.h b/xbmc/pvr/PVRManager.h
|
||||
index 67ff282..652e5e5 100644
|
||||
--- a/xbmc/pvr/PVRManager.h
|
||||
+++ b/xbmc/pvr/PVRManager.h
|
||||
@@ -548,6 +548,12 @@ namespace PVR
|
||||
*/
|
||||
bool CreateChannelEpgs(void);
|
||||
|
||||
+ /*!
|
||||
+ * @brief get the name of the channel group of the current playing channel
|
||||
+ * @return name of channel if tv channel is playing
|
||||
+ */
|
||||
+ std::string GetPlayingTVGroupName();
|
||||
+
|
||||
protected:
|
||||
/*!
|
||||
* @brief PVR update and control thread.
|
||||
--
|
||||
2.0.4
|
||||
|
||||
|
||||
From 36718552e55e53199ec1f916a7e3e36d515f2a02 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sun, 24 Aug 2014 14:03:04 +0200
|
||||
Subject: [PATCH 30/31] X11: fix window placement on multi-monitor setups
|
||||
|
||||
---
|
||||
xbmc/windowing/X11/WinSystemX11.cpp | 17 ++++++-----------
|
||||
1 file changed, 6 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp
|
||||
index 60761ec..281e0d8 100644
|
||||
--- a/xbmc/windowing/X11/WinSystemX11.cpp
|
||||
+++ b/xbmc/windowing/X11/WinSystemX11.cpp
|
||||
@@ -776,8 +776,6 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const std:
|
||||
bool mouseActive = false;
|
||||
float mouseX = 0;
|
||||
float mouseY = 0;
|
||||
- int x0 = 0;
|
||||
- int y0 = 0;
|
||||
|
||||
if (m_mainWindow && ((m_bFullScreen != fullscreen) || m_currentOutput.compare(output) != 0 || m_windowDirty))
|
||||
{
|
||||
@@ -825,6 +823,8 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const std:
|
||||
Colormap cmap;
|
||||
XSetWindowAttributes swa;
|
||||
XVisualInfo *vi;
|
||||
+ int x0 = 0;
|
||||
+ int y0 = 0;
|
||||
|
||||
XOutput *out = g_xrandr.GetOutput(output);
|
||||
if (!out)
|
||||
@@ -942,19 +942,14 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const std:
|
||||
Atom wmDeleteMessage = XInternAtom(m_dpy, "WM_DELETE_WINDOW", False);
|
||||
XSetWMProtocols(m_dpy, m_mainWindow, &wmDeleteMessage, 1);
|
||||
}
|
||||
- XMapRaised(m_dpy, m_glWindow);
|
||||
- XMapRaised(m_dpy, m_mainWindow);
|
||||
|
||||
- if (fullscreen)
|
||||
- XMoveWindow(m_dpy, m_mainWindow, x0, y0);
|
||||
+ // placement of window may follow mouse
|
||||
+ XWarpPointer(m_dpy, None, m_mainWindow, 0, 0, 0, 0, mouseX*width, mouseY*height);
|
||||
|
||||
+ XMapRaised(m_dpy, m_glWindow);
|
||||
+ XMapRaised(m_dpy, m_mainWindow);
|
||||
XSync(m_dpy,TRUE);
|
||||
|
||||
- if (changeWindow && mouseActive)
|
||||
- {
|
||||
- XWarpPointer(m_dpy, None, m_mainWindow, 0, 0, 0, 0, mouseX*width, mouseY*height);
|
||||
- }
|
||||
-
|
||||
CDirtyRegionList dr;
|
||||
RefreshGlxContext(m_currentOutput.compare(output) != 0);
|
||||
XSync(m_dpy, FALSE);
|
||||
--
|
||||
2.0.4
|
||||
|
||||
|
||||
From b9aebeb781cc718099e8daf87cb4ea365d6a97e7 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sun, 24 Aug 2014 14:40:00 +0200
|
||||
Subject: [PATCH 31/31] VAAPI: fix buffer handing
|
||||
|
||||
---
|
||||
xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 3 +++
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 5 ++++-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
|
||||
index 1dcc33e..767e15a 100644
|
||||
--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
|
||||
+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
|
||||
@@ -1125,7 +1125,10 @@ void CLinuxRendererGL::UnInit()
|
||||
|
||||
// YV12 textures
|
||||
for (int i = 0; i < NUM_BUFFERS; ++i)
|
||||
+ {
|
||||
(this->*m_textureDelete)(i);
|
||||
+ DeleteVAAPITexture(i);
|
||||
+ }
|
||||
|
||||
// cleanup framebuffer object if it was in use
|
||||
m_fbo.fbo.Cleanup();
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
|
||||
index d1e9654..2b60f0e 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
|
||||
@@ -659,7 +659,8 @@ int CDecoder::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags)
|
||||
}
|
||||
pic->buf[0] = buffer;
|
||||
|
||||
- pic->reordered_opaque= avctx->reordered_opaque;
|
||||
+ pic->reordered_opaque = avctx->reordered_opaque;
|
||||
+ va->Acquire();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -672,6 +673,8 @@ void CDecoder::FFReleaseBuffer(uint8_t *data)
|
||||
|
||||
surf = (VASurfaceID)(uintptr_t)data;
|
||||
m_videoSurfaces.ClearReference(surf);
|
||||
+
|
||||
+ IHardwareDecoder::Release();
|
||||
}
|
||||
|
||||
int CDecoder::Decode(AVCodecContext* avctx, AVFrame* pFrame)
|
||||
--
|
||||
2.0.4
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user