commit:     62475f2c6c0d0aaf6e985a1cf4f982d06077ac9d
Author:     Joerg Bornkessel <hd_brummy <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  4 10:37:54 2015 +0000
Commit:     Joerg Bornkessel <hd_brummy <AT> gentoo <DOT> org>
CommitDate: Wed Feb  4 10:37:54 2015 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/vdr/devel.git;a=commit;h=62475f2c

test request from upstream for several patches

Package-Manager: portage-2.2.15
Manifest-Sign-Key: 34C2808A

---
 media-video/vdr/ChangeLog                          |  11 ++
 media-video/vdr/Manifest                           |  16 ++-
 .../vdr/files/01_vdr-2.1.8-eit-memleak-v1.diff     |  54 ++++++++
 .../vdr/files/02_vdr-2.1.8-binaryskipstrict.diff   |  95 ++++++++++++++
 ...witch.diff => 03_vdr-2.1.8-scheduleswitch.diff} |   0
 .../vdr/files/04_vdr-2.1.8-scheduleswitchblue.diff | 139 +++++++++++++++++++++
 .../vdr/files/06_vdr-2.1.8-skipeditedresume.diff   |  12 ++
 .../{vdr-2.1.8-r1.ebuild => vdr-2.1.8-r2.ebuild}   |   6 +-
 8 files changed, 326 insertions(+), 7 deletions(-)

diff --git a/media-video/vdr/ChangeLog b/media-video/vdr/ChangeLog
index 3f6e38c..e31d1a8 100644
--- a/media-video/vdr/ChangeLog
+++ b/media-video/vdr/ChangeLog
@@ -2,6 +2,17 @@
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+*vdr-2.1.8-r2 (04 Feb 2015)
+
+  04 Feb 2015; Joerg Bornkessel <[email protected]> -vdr-2.1.8-r1.ebuild,
+  +vdr-2.1.8-r2.ebuild, +files/02_vdr-2.1.8-binaryskipstrict.diff,
+  +files/01_vdr-2.1.8-eit-memleak-v1.diff,
+  +files/03_vdr-2.1.8-scheduleswitch.diff,
+  -files/vdr-2.1.8-scheduleswitch.diff,
+  +files/04_vdr-2.1.8-scheduleswitchblue.diff,
+  +files/06_vdr-2.1.8-skipeditedresume.diff:
+  test request from upstream for several patches
+
 *vdr-2.1.8-r1 (03 Feb 2015)
 
   03 Feb 2015; Joerg Bornkessel <[email protected]> +vdr-2.1.8-r1.ebuild,

diff --git a/media-video/vdr/Manifest b/media-video/vdr/Manifest
index 3707aa5..1b8ad2a 100644
--- a/media-video/vdr/Manifest
+++ b/media-video/vdr/Manifest
@@ -1,12 +1,16 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA256
 
+AUX 01_vdr-2.1.8-eit-memleak-v1.diff 2187 SHA256 
9eb0419d2732749f8a8b4b516fe81518e6a704f1b6f95e2d5a7e59f1549744bb SHA512 
aa52fbab030487f94313124c5d889390e764db073d05d7a5a120ec424fe03dafadc5f60eade6c44249eb34810ff4b2feedb9278b5c31187f48284444a453cbbf
 WHIRLPOOL 
b4bc5073c5bab23d1740bd22cd5cffe61c4efe6670dc3a297e795e60f00f900805e986aefee6802b7833689220fcd7736961c91ef107723f65f7fb8a286dd406
+AUX 02_vdr-2.1.8-binaryskipstrict.diff 4571 SHA256 
49d6eefc31b56ffc69fc3b063bff37bdf6c2eafe6b8b172803d71ecb24cc9fb0 SHA512 
8c3c7a7eb20cf46d8d7630bae6413c8ba6a2c1e4530a6faa0ed43ad681657534046816a18b37e567cf4f13f56256443457c8e551bc3e4307ab44c76225a45a72
 WHIRLPOOL 
879e872ac1e4fc88f71c9a939372de4f673c26699c2db66e83b253ee0d5b9526a5fc78d3c7c9912f7d8a0d16bb9ca23b0446146aba0dc06caa8f17bfd3b5b2dd
+AUX 03_vdr-2.1.8-scheduleswitch.diff 566 SHA256 
a913e3177624199c1921b98067b3ffecddc7c3daadb23c493f5231347660cccb SHA512 
b054e92ac7e51c2721d8816966bde29f3082a1c242a2c0313d88a23d211fdf934e9f6f7302800361d79996a50e4e54984396f65ff5a07f065fac6c6194aa3a67
 WHIRLPOOL 
2b5d12701e9a73a88e9f49e8a6a394d699f87e0bdc27782ee1cc361e85840600fd362fc8adaff9a9fdcef6a4e579736113932c5518036d34ff63e6310bd230f8
+AUX 04_vdr-2.1.8-scheduleswitchblue.diff 4972 SHA256 
5df3d8b8e8637d9280ba04eb2d94fdb974fcf66a82960012ae519bb7b02ff548 SHA512 
7ac0c985ed86668486183eac9c569cae3d0e49062c1f7470fe84832e67732eacca84d8e28e03661c4a194d7ad8b5d538b55d04187471520dcb2fa8238130f556
 WHIRLPOOL 
13fbad5ddf9348441f7d1803c55a07e709e2fe7a3f7c2ad5ad94207dfb730c1f10abfa42b4845919559807fbbb1182473e7e0e766a1035df1735e562ab9f46e1
+AUX 06_vdr-2.1.8-skipeditedresume.diff 702 SHA256 
03b701ca2737e63df1cf1e5e1f2331e282ab5c26a4741951ddd07700e7b8488c SHA512 
0a0393c599235147df2ec82c41570c0cae9316bc344cc3b00c1a1110fb7d9ffd2f67774b5882f0f9bc9f2b4ce5b98f0b109c52cb3fe2fab5df92bc5bd02277a3
 WHIRLPOOL 
af8772fd694c10c9edc840b4b351a2c2d24be54f1f954888a49841cb02997e16efd54ca8cd6b918697a4f987c5ef7b6a11d1a03a079db12c9c42bbda9515ae60
 AUX channel_alternative.conf 332 SHA256 
30fb0a5147c01429c2813505cc69658cf1bfa1b70537bce07365017f653be5ce SHA512 
738de5d5d99b54a516f41683834509b477590732db4e00b13b2f26e22c7349cb8517965a21251c08d29b0f368b2bb3fa64a1de71da09ffbedc5a401314a0eb5d
 WHIRLPOOL 
96ead1c37c9e88e6593536a2182b813d3ae86c8e55e79a4cc5ff2d29ec0694405d26c82cb2295bb3f1e7e61c0ec93a646acc518e35ed6eff4d66c9219cc35677
 AUX vdr-2.1.1_gentoo.patch 2488 SHA256 
25275f22d8d183c089accd9463862aa772d2c13ae18c4f5769916c06b4b5918e SHA512 
a36d8be52e7815165327e7322ce5f5537243a3cedc7b5e695ecddce567e8536cb44724540e5079fcda90f58a95f6fb26de4d1cc2842ce8d5460e4010623042f0
 WHIRLPOOL 
0885af205152ff2228bde0799a05c02efdb7fc712d740a640eecaff6296c7df1285883460e1dd452f0dbc6b4621ddcb0a7c89a21cc241a935f7b7526d2f852f5
 AUX vdr-2.1.6_gentoo.patch 2255 SHA256 
75ec762630d2e9099843151fd0b6e04c5b114faea2052392144d64c648cf5482 SHA512 
0711128380cec9a6ec2e8212226a4a20896888467f323bc006bd1c4cbf1b8e1ce488c2f7227e0903847888e7e37159aecf6d82fdc1b50009a1c869d3da5134c0
 WHIRLPOOL 
e984c7fb87fa3d7eedc203e3b5ac4d2cc9b528dc3a70d8a15582c6dee58589af6d8179fa542f3f45d2e9c6d9889b90e691b77b6d3398f4b6b200635bdc2c404e
 AUX vdr-2.1.7_C++11.patch 4553 SHA256 
3ff8f4762009a932cf63c4239e21f4cca2445cce160b578e5c5c5979b3fefc54 SHA512 
41376c3a4bc4754401e2ce140aea5ce1a1b5ad4388c95446b8e1c8e7ab8acd21c35f24d961b4c16b4cc2500d73345cb73a8b4fa2c13dc90cb781dcac625195ec
 WHIRLPOOL 
3b21733e5b065fc2d4188dfa872557cd4558265f3eaea3411d5a402c1cad14ed86379623e25ab908a4c43e165d4ac171bb1788b71b9b6644fd6510a928150f68
 AUX vdr-2.1.7_gentoo.patch 2322 SHA256 
8088a4f314e0b8d908f82cfe2a7392a18db679a7324bfa92dce49431c50313ec SHA512 
c6953a7fb77717fdaa8ca05550496e25f4bc60d91c13ed0fb23d27e1a1ec433ec2d5cfb019717cf09eb7b67c9ebb91664b1b731dc28bc4f25e815871f6de0bc7
 WHIRLPOOL 
88d4e8407b085604525d9bae1f34a957ae5f168ac657a99c45dcba5f08185351ccb03736cfc464960d3f2157ac6357ffbf8b602dd1da49ee94efb403f71731d8
-AUX vdr-2.1.8-scheduleswitch.diff 566 SHA256 
a913e3177624199c1921b98067b3ffecddc7c3daadb23c493f5231347660cccb SHA512 
b054e92ac7e51c2721d8816966bde29f3082a1c242a2c0313d88a23d211fdf934e9f6f7302800361d79996a50e4e54984396f65ff5a07f065fac6c6194aa3a67
 WHIRLPOOL 
2b5d12701e9a73a88e9f49e8a6a394d699f87e0bdc27782ee1cc361e85840600fd362fc8adaff9a9fdcef6a4e579736113932c5518036d34ff63e6310bd230f8
 AUX vdr-2.1.8_gentoo.patch 2322 SHA256 
8088a4f314e0b8d908f82cfe2a7392a18db679a7324bfa92dce49431c50313ec SHA512 
c6953a7fb77717fdaa8ca05550496e25f4bc60d91c13ed0fb23d27e1a1ec433ec2d5cfb019717cf09eb7b67c9ebb91664b1b731dc28bc4f25e815871f6de0bc7
 WHIRLPOOL 
88d4e8407b085604525d9bae1f34a957ae5f168ac657a99c45dcba5f08185351ccb03736cfc464960d3f2157ac6357ffbf8b602dd1da49ee94efb403f71731d8
 DIST extpng-vdr-2.1.1-gentoo-edition-v1.patch.bz2 76312 SHA256 
42ed177d9064f555bb5396123790eaa9cf4b500536698af29bda0193c951faab SHA512 
07cf50a0f9edf2f8b1542ad314b86f18b88e9409cc9aef400585c7dafb8fc691b2d476d18b088bc0d3de8ec7bf88241ba5418f99e156353cbcf78de406238cf8
 WHIRLPOOL 
c027a0f107db181b617d3f1d3da461733bc03edd975adab03473979877ee5503efcb88903c20a0c0c1063f40710cf14c68456bc8038902b1e29f4194e02f6cb5
 DIST extpng-vdr-2.1.2-gentoo-edition-v3.patch.bz2 30698 SHA256 
c2ba5ada4cadb44dde87dc5de8b9a1306fa274d0cca8f856ce5e829e16d7d51f SHA512 
a4520423182ef44f56b9e6807622a68ba404e1b14e81b8e4153ec23bb4f7e1ec4feabf458dfaddb9a829140e404f6988ad92dbd5b3768ff447918b609b80c29a
 WHIRLPOOL 
9fca245602fbf5926794276da516f82d2846c53781d46720f2cab967bc7839d0494dc7592e76a864fa313ab0e04aefbba5e5f8bf429d7ccc4c31a1e126cdcba4
@@ -32,15 +36,15 @@ EBUILD vdr-2.1.6-r1.ebuild 7588 SHA256 
aab0a8b51860d6e99bffe5490ca7ce8ed218a4368
 EBUILD vdr-2.1.6-r2.ebuild 7648 SHA256 
9949037814fa0636037325e94067838e6df6dce8a0dc77fd20c8abaa08ee3e5a SHA512 
2f44e6d552b5da3589ca3a6144d4d2ff76a822f955023855690ea386f98cb7ff6f43a3faa470a1659338e8c43d8e2b3ccee0e915ed41738bfd8b191ea372ee58
 WHIRLPOOL 
5b2775f70851b4bd94e9382e8b3709e08b53c63a9fae0f64fa7f7b0038c9d4d6ba5d2a60a6e41ce34d48ef9475c56bc7eaa80fabaeb356a335c8fe57edeb50ea
 EBUILD vdr-2.1.6.ebuild 7616 SHA256 
ca9c89b9db90646cfe89964f8f5094af9c8be19404ea3d05ba75d2283af40f6a SHA512 
0ea0d208c8140cb158a98cdc8ffd0711d0bf5b2fc635f3724ee7273e735371d232ce7bd7086805b0c38bd9c3f8e04b438d28b81b76c4f6f2c6f1d2acd0cc8b33
 WHIRLPOOL 
5580d45a8d145e481cfb04ef338868b94398f434ff2daed0f77d347b471b1ce8ec4e35a9ef48c3f1d2368dca57074201456be22f4236bc41bf7f0442eaea38b3
 EBUILD vdr-2.1.7.ebuild 7724 SHA256 
352022abc89e0fee871f672c8d476a9d1529eca9a817ee7d0d60edc3986dbfd3 SHA512 
ee62924473e3909f578805db1bc58c17f657c6adf5f8a3948f83ae9366cea8f101f341f6a5789a8e00236d110db50f01f453dd13e7c0f65dd2915750fb6860dc
 WHIRLPOOL 
dd3570aee1e0236caf9a2c40122f28e787933128c6d1f938a74c889725f2a8e4295cbd8fa4951030164364db2d1669b8bc75a8f9df31b053cd61fedd81695d1f
-EBUILD vdr-2.1.8-r1.ebuild 7887 SHA256 
98b3a9d8dc91ce7cbc929fe98b263d1a3c86e2d4f3af3b4e67d656fde3a2706f SHA512 
5099f5e7e71d9e69f394f0ccafaef1f46f74894fad2b0f51ee49c588f34bb2ed8c5ba4356175f6a7c9699e1421feac85729d2e46cd7f471003873e271e34e329
 WHIRLPOOL 
e343eb290876e7b80f1fe36ade2d078c0de9be1c686920f1b56348e76224e025d29a2cef5bd42ce0283193628240c6e5dbca19128e7c5ff629640b95e0aafca3
+EBUILD vdr-2.1.8-r2.ebuild 8123 SHA256 
6dcd1d1f7d9e262c2618126d6af3bad45b5d9c09e6591f5df94e4f96116259eb SHA512 
2f6f613d5add2fb97efc9e58dede7d1a64cfddc79e056271072cf32d164fc26adc067d96586074d5588749a7978ad1eaa57e1c0b7b3177ce0bb6c220c37b1719
 WHIRLPOOL 
3f848dae71a31471649470b6f7b8eaf7c0a96daaf7dffe6cbe36bd3145ec6e149fd518394b3e13c8465c0ca4c5ee97972009f13a687114e00f551ce5cab0268a
 EBUILD vdr-2.1.8.ebuild 7624 SHA256 
ee61c7eb7911a8f438f2d429ebb9615793db5f94351f419298faad005d414c24 SHA512 
ab4becbc51ded5808bb7df7dce14db8cd9e685e42deed672ee29a97ca64f94276752652b61057a4f412f155d41eca741dff19180ce4d2f7496bd09c07dd085b7
 WHIRLPOOL 
d6d2dcd482f8db246924c22ce673af2edf161feea77180cc77981c90b3b7b195cb0b00027f2ef705725d351fc6255436965a6645e1e07d2c477977e81a1cbc47
-MISC ChangeLog 26849 SHA256 
61d6e50b122a202f3638b2e6ee6a4daaabc1b378354401445a57b14caef8e46d SHA512 
fd7a68f978ae898182d005001d359c9131816ab93befc2cb6728c117c508286812add685c9d6eb98727201270f32eca529b1d9634c110fced17e12a45751b026
 WHIRLPOOL 
54a9576c06574ef3e2d2eb668c8666985c8c8abb272b42a329a4d869697bfaa9fe6726aa5dc871a59b24b7391c47a94b749a692748b690dfaae994c1a4971ef9
+MISC ChangeLog 27290 SHA256 
5c4ac2d412830199894b2c074cf1eaa76ab7f9686587dcff2371f7583dc96c64 SHA512 
cc5adf3e114d777edf5fadd58de5af2d91844b6c3d6ee2732d52a68ad83c78b1c52f9f3e289b11b7ee3a826f6917d237a84dcc9fedd3ea3fb23d3d0ad325d0ea
 WHIRLPOOL 
2e6a7ecaafcbd40163f8b6f2a0509f12eecded4cc8121560836e2ceb0c0b91dddb5686866986ad83f3e557088e64399d799c9a7b5e76d95741146a52f6ee7385
 MISC metadata.xml 2071 SHA256 
d308d181e741e458ef838af1e003e85323eb23f17b9de610317fe45a7ef92d8f SHA512 
cb7c405c0d07ec536d5db70db514121e96f73b4ade0eca80d5e5c12f3cc4f209ce5d1c1c3b3129aaa8f974b843a54fda73684d05c684e403d955079d0f119e56
 WHIRLPOOL 
e606dcf24f8bbcd427ff9e3c26ae022c50332cec79cdb1f39febe7fd25f076a9ab2439232b4b7870ea3e000026b5163f6ceb8727b77f5609060f710f40b3a498
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 Comment: added by [email protected]
 
-iD8DBQFU0LXtdn07HTTCgIoRCMcsAJ93LL1KOAe4CdwypFrR3dTZ9gWnkgCeLt5q
-nwTsChWzsfnIu/whvcfWcyM=
-=ZifI
+iD8DBQFU0faCdn07HTTCgIoRCBAvAJ9H0paDU07ZQFUqmFDWR1+sEs86JgCgl3Ih
+NYBN0xIssvWa0A6N8TCSR/Y=
+=k3V2
 -----END PGP SIGNATURE-----

diff --git a/media-video/vdr/files/01_vdr-2.1.8-eit-memleak-v1.diff 
b/media-video/vdr/files/01_vdr-2.1.8-eit-memleak-v1.diff
new file mode 100644
index 0000000..742a879
--- /dev/null
+++ b/media-video/vdr/files/01_vdr-2.1.8-eit-memleak-v1.diff
@@ -0,0 +1,54 @@
+diff --git a/eit.c b/eit.c
+index 30c017b..031fc93 100644
+--- a/eit.c
++++ b/eit.c
+@@ -136,8 +136,8 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, 
const u_char *Data, bo
+                     UseExtendedEventDescriptor = true;
+                     }
+                  if (UseExtendedEventDescriptor) {
+-                    ExtendedEventDescriptors->Add(eed);
+-                    d = NULL; // so that it is not deleted
++                    if (ExtendedEventDescriptors->Add(eed))
++                       d = NULL; // so that it is not deleted
+                     }
+                  if (eed->getDescriptorNumber() == 
eed->getLastDescriptorNumber())
+                     UseExtendedEventDescriptor = false;
+diff --git a/libsi/si.c b/libsi/si.c
+index 0ef3939..edc9074 100644
+--- a/libsi/si.c
++++ b/libsi/si.c
+@@ -198,17 +198,18 @@ void DescriptorGroup::Delete() {
+       }
+ }
+ 
+-void DescriptorGroup::Add(GroupDescriptor *d) {
++bool DescriptorGroup::Add(GroupDescriptor *d) {
+    if (!array) {
+       length=d->getLastDescriptorNumber()+1;
+       array=new GroupDescriptor*[length]; //numbering is zero-based
+       for (int i=0;i<length;i++)
+          array[i]=0;
+    } else if (length != d->getLastDescriptorNumber()+1)
+-      return; //avoid crash in case of misuse
++      return false; //avoid crash in case of misuse
+    if (length <= d->getDescriptorNumber())
+-      return; // see 
http://www.vdr-portal.de/board60-linux/board14-betriebssystem/board69-c-t-vdr/p1025777-segfault-mit-vdr-1-7-21/#post1025777
++      return false; // see 
http://www.vdr-portal.de/board60-linux/board14-betriebssystem/board69-c-t-vdr/p1025777-segfault-mit-vdr-1-7-21/#post1025777
+    array[d->getDescriptorNumber()]=d;
++   return true;
+ }
+ 
+ bool DescriptorGroup::isComplete() {
+diff --git a/libsi/si.h b/libsi/si.h
+index 1e65111..7b47d02 100644
+--- a/libsi/si.h
++++ b/libsi/si.h
+@@ -483,7 +483,7 @@ class DescriptorGroup {
+ public:
+    DescriptorGroup(bool deleteOnDesctruction=true);
+    ~DescriptorGroup();
+-   void Add(GroupDescriptor *d);
++   bool Add(GroupDescriptor *d);
+    void Delete();
+    int getLength() { return length; }
+    GroupDescriptor **getDescriptors() { return array; }

diff --git a/media-video/vdr/files/02_vdr-2.1.8-binaryskipstrict.diff 
b/media-video/vdr/files/02_vdr-2.1.8-binaryskipstrict.diff
new file mode 100644
index 0000000..63cd3dd
--- /dev/null
+++ b/media-video/vdr/files/02_vdr-2.1.8-binaryskipstrict.diff
@@ -0,0 +1,95 @@
+===================================================================
+RCS file: ./RCS/MANUAL
+retrieving revision 3.10
+diff -u -r3.10 ./MANUAL
+--- ./MANUAL   2015/01/29 15:55:21     3.10
++++ ./MANUAL   2015/02/02 12:40:07
+@@ -1006,6 +1006,18 @@
+                          the binary mode and makes '1' and '3' always skip 
the number
+                          of seconds configured as the initial value.
+ 
++  Binary skip strict = yes
++                         When skipping in binary mode with the '1' and '3' 
keys, the
++                         distance of the skip is halved with every key press 
after the
++                         first change of direction. While this allows for 
locating a
++                         particular position in a recording very fast, once 
you make
++                         one step too many in the current direction you have 
no chance
++                         of ever reaching the desired point any more. You 
will have to
++                         wait for the timeout to occur and start binary 
skipping anew.
++                         If this option is set to 'no', the skip distance 
will only be
++                         halved if the direction actually changes. That way, 
even if
++                         you missed the target point, you can still back up 
to it.
++
+   Resume ID = 0          Defines an additional ID that can be used in a multi 
user
+                          environment, so that every user has his/her own 
resume
+                          files for each recording. The valid range is 0...99, 
with
+===================================================================
+RCS file: ./RCS/config.c
+retrieving revision 3.6
+diff -u -r3.6 ./config.c
+--- ./config.c 2015/01/29 09:01:30     3.6
++++ ./config.c 2015/02/02 12:22:30
+@@ -475,6 +475,7 @@
+   PauseAtLastMark = 0;
+   BinarySkipInitial = 120;
+   BinarySkipTimeout = 3;
++  BinarySkipStrict = 1;
+   ResumeID = 0;
+   CurrentChannel = -1;
+   CurrentVolume = MAXVOLUME;
+@@ -693,6 +694,7 @@
+   else if (!strcasecmp(Name, "PauseAtLastMark"))     PauseAtLastMark    = 
atoi(Value);
+   else if (!strcasecmp(Name, "BinarySkipInitial"))   BinarySkipInitial  = 
atoi(Value);
+   else if (!strcasecmp(Name, "BinarySkipTimeout"))   BinarySkipTimeout  = 
atoi(Value);
++  else if (!strcasecmp(Name, "BinarySkipStrict"))    BinarySkipStrict   = 
atoi(Value);
+   else if (!strcasecmp(Name, "ResumeID"))            ResumeID           = 
atoi(Value);
+   else if (!strcasecmp(Name, "CurrentChannel"))      CurrentChannel     = 
atoi(Value);
+   else if (!strcasecmp(Name, "CurrentVolume"))       CurrentVolume      = 
atoi(Value);
+@@ -815,6 +817,7 @@
+   Store("PauseAtLastMark",    PauseAtLastMark);
+   Store("BinarySkipInitial",  BinarySkipInitial);
+   Store("BinarySkipTimeout",  BinarySkipTimeout);
++  Store("BinarySkipStrict",   BinarySkipStrict);
+   Store("ResumeID",           ResumeID);
+   Store("CurrentChannel",     CurrentChannel);
+   Store("CurrentVolume",      CurrentVolume);
+===================================================================
+RCS file: ./RCS/config.h
+retrieving revision 3.14
+diff -u -r3.14 ./config.h
+--- ./config.h 2015/02/01 14:59:52     3.14
++++ ./config.h 2015/02/02 12:21:13
+@@ -338,6 +338,7 @@
+   int PauseAtLastMark;
+   int BinarySkipInitial;
+   int BinarySkipTimeout;
++  int BinarySkipStrict;
+   int ResumeID;
+   int CurrentChannel;
+   int CurrentVolume;
+===================================================================
+RCS file: ./RCS/menu.c
+retrieving revision 3.35
+diff -u -r3.35 ./menu.c
+--- ./menu.c   2015/02/01 10:42:11     3.35
++++ ./menu.c   2015/02/02 12:23:18
+@@ -3641,6 +3641,7 @@
+   Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause replay at last mark"), 
&data.PauseAtLastMark));
+   Add(new cMenuEditIntItem( tr("Setup.Replay$Binary skip initial value (s)"), 
&data.BinarySkipInitial, 10, 600));
+   Add(new cMenuEditIntItem( tr("Setup.Replay$Binary skip timeout (s)"), 
&data.BinarySkipTimeout, 0, 10));
++  Add(new cMenuEditBoolItem(tr("Setup.Replay$Binary skip strict"), 
&data.BinarySkipStrict));
+   Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 
99));
+ }
+ 
+@@ -5007,7 +5008,10 @@
+      }
+   else if (Key != lastKey) {
+      currentValue /= 2;
+-     lastKey = kNone; // once the direction has changed, every further call 
halves the value
++     if (Setup.BinarySkipStrict)
++        lastKey = kNone; // once the direction has changed, every further 
call halves the value
++     else
++        lastKey = Key; // only halve the value when the direction is changed
+      }
+   timeout.Set(Setup.BinarySkipTimeout * 1000);
+   return max(currentValue, 1);

diff --git a/media-video/vdr/files/vdr-2.1.8-scheduleswitch.diff 
b/media-video/vdr/files/03_vdr-2.1.8-scheduleswitch.diff
similarity index 100%
rename from media-video/vdr/files/vdr-2.1.8-scheduleswitch.diff
rename to media-video/vdr/files/03_vdr-2.1.8-scheduleswitch.diff

diff --git a/media-video/vdr/files/04_vdr-2.1.8-scheduleswitchblue.diff 
b/media-video/vdr/files/04_vdr-2.1.8-scheduleswitchblue.diff
new file mode 100644
index 0000000..963d3ba
--- /dev/null
+++ b/media-video/vdr/files/04_vdr-2.1.8-scheduleswitchblue.diff
@@ -0,0 +1,139 @@
+--- menu.c     2015/02/03 10:42:55     3.37
++++ menu.c     2015/02/03 11:51:29
+@@ -1377,6 +1377,7 @@
+ class cMenuWhatsOn : public cOsdMenu {
+ private:
+   bool now;
++  bool canSwitch;
+   int helpKeys;
+   int timerState;
+   eOSState Record(void);
+@@ -1401,7 +1402,8 @@
+ {
+   SetMenuCategory(Now ? mcScheduleNow : mcScheduleNext);
+   now = Now;
+-  helpKeys = -1;
++  canSwitch = false;
++  helpKeys = 0;
+   timerState = 0;
+   Timers.Modified(timerState);
+   for (cChannel *Channel = Channels.First(); Channel; Channel = 
Channels.Next(Channel)) {
+@@ -1434,16 +1436,27 @@
+ void cMenuWhatsOn::SetHelpKeys(void)
+ {
+   cMenuScheduleItem *item = (cMenuScheduleItem *)Get(Current());
++  canSwitch = false;
+   int NewHelpKeys = 0;
+   if (item) {
+      if (item->timerMatch == tmFull)
+-        NewHelpKeys = 2;
++        NewHelpKeys |= 0x02; // "Timer"
+      else
+-        NewHelpKeys = 1;
++        NewHelpKeys |= 0x01; // "Record"
++     if (now)
++        NewHelpKeys |= 0x04; // "Next"
++     else
++        NewHelpKeys |= 0x08; // "Now"
++     if (cChannel *Channel = 
Channels.GetByChannelID(item->event->ChannelID(), true)) {
++        if (Channel->Number() != cDevice::CurrentChannel()) {
++           NewHelpKeys |= 0x10; // "Switch"
++           canSwitch = true;
++           }
++        }
+      }
+   if (NewHelpKeys != helpKeys) {
+      const char *Red[] = { NULL, tr("Button$Record"), tr("Button$Timer") };
+-     SetHelp(Red[NewHelpKeys], now ? tr("Button$Next") : tr("Button$Now"), 
tr("Button$Schedule"), tr("Button$Switch"));
++     SetHelp(Red[NewHelpKeys & 0x03], now ? tr("Button$Next") : 
tr("Button$Now"), tr("Button$Schedule"), canSwitch ? tr("Button$Switch") : 
NULL);
+      helpKeys = NewHelpKeys;
+      }
+ }
+@@ -1519,10 +1532,12 @@
+                           }
+                      }
+                      break;
+-       case kBlue:   return Switch();
++       case kBlue:   if (canSwitch)
++                        return Switch();
++                     break;
+        case kInfo:
+        case kOk:     if (Count())
+-                        return AddSubMenu(new cMenuEvent(((cMenuScheduleItem 
*)Get(Current()))->event, true, true));
++                        return AddSubMenu(new cMenuEvent(((cMenuScheduleItem 
*)Get(Current()))->event, canSwitch, true));
+                      break;
+        default:      break;
+        }
+@@ -1543,7 +1558,7 @@
+   cSchedulesLock schedulesLock;
+   const cSchedules *schedules;
+   bool now, next;
+-  int otherChannel;
++  bool canSwitch;
+   int helpKeys;
+   int timerState;
+   eOSState Number(void);
+@@ -1566,8 +1581,8 @@
+ {
+   SetMenuCategory(mcSchedule);
+   now = next = false;
+-  otherChannel = 0;
+-  helpKeys = -1;
++  canSwitch = false;
++  helpKeys = 0;
+   timerState = 0;
+   Timers.Modified(timerState);
+   cMenuScheduleItem::SetSortMode(cMenuScheduleItem::ssmAllThis);
+@@ -1673,16 +1688,23 @@
+ void cMenuSchedule::SetHelpKeys(void)
+ {
+   cMenuScheduleItem *item = (cMenuScheduleItem *)Get(Current());
++  canSwitch = false;
+   int NewHelpKeys = 0;
+   if (item) {
+      if (item->timerMatch == tmFull)
+-        NewHelpKeys = 2;
++        NewHelpKeys |= 0x02; // "Timer"
+      else
+-        NewHelpKeys = 1;
++        NewHelpKeys |= 0x01; // "Record"
++     if (cChannel *Channel = 
Channels.GetByChannelID(item->event->ChannelID(), true)) {
++        if (Channel->Number() != cDevice::CurrentChannel()) {
++           NewHelpKeys |= 0x10; // "Switch"
++           canSwitch = true;
++           }
++        }
+      }
+   if (NewHelpKeys != helpKeys) {
+      const char *Red[] = { NULL, tr("Button$Record"), tr("Button$Timer") };
+-     SetHelp(Red[NewHelpKeys], tr("Button$Now"), tr("Button$Next"));
++     SetHelp(Red[NewHelpKeys & 0x03], tr("Button$Now"), tr("Button$Next"), 
canSwitch ? tr("Button$Switch") : NULL);
+      helpKeys = NewHelpKeys;
+      }
+ }
+@@ -1787,12 +1809,12 @@
+        case kYellow: if (schedules)
+                         return AddSubMenu(new cMenuWhatsOn(schedules, false, 
cMenuWhatsOn::CurrentChannel()));
+                      break;
+-       case kBlue:   if (Count() && otherChannel)
++       case kBlue:   if (canSwitch)
+                         return Switch();
+                      break;
+        case kInfo:
+        case kOk:     if (Count())
+-                        return AddSubMenu(new cMenuEvent(((cMenuScheduleItem 
*)Get(Current()))->event, otherChannel, true));
++                        return AddSubMenu(new cMenuEvent(((cMenuScheduleItem 
*)Get(Current()))->event, canSwitch, true));
+                      break;
+        default:      break;
+        }
+@@ -1805,10 +1827,6 @@
+         if (channel) {
+            cMenuScheduleItem::SetSortMode(cMenuScheduleItem::ssmAllThis);
+            PrepareScheduleAllThis(NULL, channel);
+-           if (channel->Number() != cDevice::CurrentChannel()) {
+-              otherChannel = channel->Number();
+-              SetHelp(Count() ? tr("Button$Record") : NULL, tr("Button$Now"), 
tr("Button$Next"), tr("Button$Switch"));
+-              }
+            Display();
+            }
+         }

diff --git a/media-video/vdr/files/06_vdr-2.1.8-skipeditedresume.diff 
b/media-video/vdr/files/06_vdr-2.1.8-skipeditedresume.diff
new file mode 100644
index 0000000..bcfcb2c
--- /dev/null
+++ b/media-video/vdr/files/06_vdr-2.1.8-skipeditedresume.diff
@@ -0,0 +1,12 @@
+diff -Naur vdr-2.1.8.orig/dvbplayer.c vdr-2.1.8/dvbplayer.c
+--- vdr-2.1.8.orig/dvbplayer.c 2015-02-04 10:20:26.000000000 +0100
++++ vdr-2.1.8/dvbplayer.c      2015-02-04 10:22:10.000000000 +0100
+@@ -431,6 +431,8 @@
+   if (index) {
+      int Index = ptsIndex.FindIndex(DeviceGetSTC());
+      if (Index >= 0) {
++        if (Setup.SkipEdited && marks.First() && abs(Index - 
marks.First()->Position()) <= int(round(RESUMEBACKUP * framesPerSecond)))
++           Index = 0; // when stopping within RESUMEBACKUP of the first mark 
the recording shall still be considered unviewed
+ #ifdef USE_RESUMERESET
+         int backup = int(round(RESUMEBACKUP * framesPerSecond));
+         if (Index >= index->Last() - backup)

diff --git a/media-video/vdr/vdr-2.1.8-r1.ebuild 
b/media-video/vdr/vdr-2.1.8-r2.ebuild
similarity index 96%
rename from media-video/vdr/vdr-2.1.8-r1.ebuild
rename to media-video/vdr/vdr-2.1.8-r2.ebuild
index 03d5a9c..91707aa 100644
--- a/media-video/vdr/vdr-2.1.8-r1.ebuild
+++ b/media-video/vdr/vdr-2.1.8-r2.ebuild
@@ -217,7 +217,11 @@ src_prepare() {
        # http://www.vdr-portal.de/index.php?page=Thread&postID=1230810
        einfo "\ntest request from upstream maintainer"
        einfo "http://www.vdr-portal.de/index.php?page=Thread&postID=1230810";
-       epatch "${FILESDIR}/${P}-scheduleswitch.diff"
+       epatch "${FILESDIR}/01_vdr-2.1.8-eit-memleak-v1.diff"
+       epatch "${FILESDIR}/02_vdr-2.1.8-binaryskipstrict.diff"
+       epatch "${FILESDIR}/03_vdr-2.1.8-scheduleswitch.diff"
+       epatch "${FILESDIR}/04_vdr-2.1.8-scheduleswitchblue.diff"
+       epatch "${FILESDIR}/06_vdr-2.1.8-skipeditedresume.diff"
 
        epatch_user
 

Reply via email to