summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Bornkessel <hd_brummy@gentoo.org>2015-02-04 11:37:54 +0100
committerJoerg Bornkessel <hd_brummy@gentoo.org>2015-02-04 11:37:54 +0100
commit62475f2c6c0d0aaf6e985a1cf4f982d06077ac9d (patch)
tree0d9e0fc36d7461518bd6a75e69219828ae31aca6
parentupstream test request, http://www.vdr-portal.de/index.php?page=Thread&postID=... (diff)
downloaddevel-62475f2c6c0d0aaf6e985a1cf4f982d06077ac9d.tar.gz
devel-62475f2c6c0d0aaf6e985a1cf4f982d06077ac9d.tar.bz2
devel-62475f2c6c0d0aaf6e985a1cf4f982d06077ac9d.zip
test request from upstream for several patches
Package-Manager: portage-2.2.15 Manifest-Sign-Key: 34C2808A
-rw-r--r--media-video/vdr/ChangeLog11
-rw-r--r--media-video/vdr/Manifest16
-rw-r--r--media-video/vdr/files/01_vdr-2.1.8-eit-memleak-v1.diff54
-rw-r--r--media-video/vdr/files/02_vdr-2.1.8-binaryskipstrict.diff95
-rw-r--r--media-video/vdr/files/03_vdr-2.1.8-scheduleswitch.diff (renamed from media-video/vdr/files/vdr-2.1.8-scheduleswitch.diff)0
-rw-r--r--media-video/vdr/files/04_vdr-2.1.8-scheduleswitchblue.diff139
-rw-r--r--media-video/vdr/files/06_vdr-2.1.8-skipeditedresume.diff12
-rw-r--r--media-video/vdr/vdr-2.1.8-r2.ebuild (renamed from media-video/vdr/vdr-2.1.8-r1.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 <hd_brummy@gentoo.org> -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 <hd_brummy@gentoo.org> +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 hd_brummy@gentoo.org
-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
index d5c9312..d5c9312 100644
--- a/media-video/vdr/files/vdr-2.1.8-scheduleswitch.diff
+++ b/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
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