mirror of
				https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
				synced 2023-10-10 17:16:51 +00:00 
			
		
		
		
	Compare commits
	
		
			328 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					eab051f5e6 | ||
| e058302a08 | |||
| 
						 | 
					efcf3a1d2d | ||
| 
						 | 
					1f0d5878b1 | ||
| 
						 | 
					f09a37a941 | ||
| 
						 | 
					a7562eb2be | ||
| a747829ffb | |||
| 
						 | 
					7db63875d0 | ||
| 
						 | 
					637c04655a | ||
| 
						 | 
					9954b939ef | ||
| 
						 | 
					e65572c2e2 | ||
| 
						 | 
					b3ddc47cb5 | ||
| 
						 | 
					4d9e3a71f4 | ||
| 
						 | 
					21e4f4ee04 | ||
| 
						 | 
					746746d5b7 | ||
| 
						 | 
					936566c642 | ||
| 
						 | 
					d6f557c6f7 | ||
| 
						 | 
					2d2ea53d16 | ||
| 
						 | 
					bccd959833 | ||
| 
						 | 
					240fc17471 | ||
| 
						 | 
					7b2caac901 | ||
| 
						 | 
					56aae221e7 | ||
| 
						 | 
					54255e7b57 | ||
| 
						 | 
					2cd667fb44 | ||
| 
						 | 
					145d65ff01 | ||
| 
						 | 
					8faff0fd1e | ||
| 
						 | 
					d31ff55b12 | ||
| 
						 | 
					d4535a34c9 | ||
| 
						 | 
					ebd2f85f90 | ||
| 
						 | 
					dce7ef9110 | ||
| 
						 | 
					780e2989ae | ||
| 
						 | 
					2661fdf333 | ||
| 
						 | 
					2557418e81 | ||
| 
						 | 
					b48e0d0638 | ||
| 
						 | 
					2c27d83b9e | ||
| 
						 | 
					8b22585748 | ||
| 
						 | 
					7ed6975330 | ||
| 
						 | 
					d5e111238d | ||
| 2733e47af7 | |||
| 
						 | 
					f9998e7664 | ||
| 
						 | 
					04286fb2ad | ||
| 
						 | 
					cd82ee8e4a | ||
| 
						 | 
					a1f17199d6 | ||
| 
						 | 
					849ca7cfd6 | ||
| 
						 | 
					308742a927 | ||
| 
						 | 
					1a730ef90b | ||
| 
						 | 
					d59c2ad40b | ||
| 
						 | 
					3366faece2 | ||
| 
						 | 
					2bb2875cd7 | ||
| 
						 | 
					e88403d044 | ||
| 
						 | 
					11293e8dc1 | ||
| 
						 | 
					3bcc3d280e | ||
| 
						 | 
					55587c86f0 | ||
| 
						 | 
					7cc74795be | ||
| 
						 | 
					534b4094b5 | ||
| 
						 | 
					7cd025a023 | ||
| 
						 | 
					b14a67b601 | ||
| 
						 | 
					b24409323d | ||
| 
						 | 
					9ec2716026 | ||
| 
						 | 
					fa09d940c5 | ||
| 
						 | 
					d4702b9a9e | ||
| 
						 | 
					6a3a560857 | ||
| 
						 | 
					8ee1e84b2e | ||
| 
						 | 
					7e96a292eb | ||
| 
						 | 
					d89ada9aad | ||
| 
						 | 
					59d1a6b1f2 | ||
| 
						 | 
					1a744a8eb8 | ||
| 
						 | 
					78100cba00 | ||
| 
						 | 
					b54ddd4549 | ||
| 
						 | 
					d42475f2dc | ||
| 
						 | 
					7cf6c1ab2b | ||
| 
						 | 
					06b8e3d784 | ||
| 63c22a13cf | |||
| 
						 | 
					3d5e59a6e5 | ||
| 
						 | 
					acf377ec60 | ||
| 87c1c7be84 | |||
| 
						 | 
					5bacd0cf7b | ||
| 
						 | 
					b1beb49798 | ||
| 
						 | 
					33b14be516 | ||
| 
						 | 
					3907f3eb2f | ||
| 
						 | 
					00d314dcd1 | ||
| 
						 | 
					9719fef55b | ||
| 
						 | 
					9b69045a20 | ||
| 
						 | 
					966ff4229a | ||
| 
						 | 
					e0c0c2021f | ||
| 
						 | 
					a3907d11a5 | ||
| 
						 | 
					b94d19e7b8 | ||
| 
						 | 
					943ee22aa5 | ||
| 
						 | 
					b6154a988f | ||
| 
						 | 
					932871dea9 | ||
| 
						 | 
					5ec6963398 | ||
| 
						 | 
					b04323704d | ||
| 38011d51b6 | |||
| 
						 | 
					9a2b6f860a | ||
| 10075aa501 | |||
| 
						 | 
					cb91c779d3 | ||
| 
						 | 
					aad3742670 | ||
| 
						 | 
					1b23074de7 | ||
| 
						 | 
					78015d90fb | ||
| 0286c434b4 | |||
| 
						 | 
					6e9e641453 | ||
| 
						 | 
					d36e4c22b6 | ||
| 
						 | 
					7e4657e615 | ||
| 
						 | 
					84e8e58c91 | ||
| 
						 | 
					141eb5cf71 | ||
| 
						 | 
					a9e664ac52 | ||
| 
						 | 
					30952face4 | ||
| 
						 | 
					0519aff4d8 | ||
| 
						 | 
					92b4203644 | ||
| 
						 | 
					f640ebdeb5 | ||
| 
						 | 
					de7c4b2a96 | ||
| 
						 | 
					0cf4598f68 | ||
| 
						 | 
					80dfa4a80f | ||
| 
						 | 
					0a78944996 | ||
| 
						 | 
					142c3b16f6 | ||
| 
						 | 
					73fe963c36 | ||
| 
						 | 
					a61cbcb65a | ||
| 
						 | 
					3df9acc034 | ||
| 
						 | 
					d9c9061a7c | ||
| 
						 | 
					e9fbe6b54f | ||
| 
						 | 
					5e93fb2756 | ||
| 
						 | 
					e02c1fa5f9 | ||
| 
						 | 
					c07ec82e6d | ||
| 
						 | 
					ecb48a5d63 | ||
| 
						 | 
					9efc73144d | ||
| a920da652b | |||
| 
						 | 
					9ec077ec8a | ||
| 
						 | 
					8b0d8d8446 | ||
| 
						 | 
					15583a79c4 | ||
| 
						 | 
					2cdce610d6 | ||
| 
						 | 
					2d6d151b85 | ||
| 
						 | 
					ca4f519a1f | ||
| 
						 | 
					583b6f246e | ||
| 
						 | 
					e6ce7832ba | ||
| 
						 | 
					696bb8e934 | ||
| 
						 | 
					3bb7782d40 | ||
| 
						 | 
					b5162bae5c | ||
| 
						 | 
					d486fb2ca1 | ||
| 
						 | 
					73d65968ae | ||
| 
						 | 
					3be69730f0 | ||
| 
						 | 
					6f1c4d6ef6 | ||
| 
						 | 
					6aa8601f7d | ||
| 
						 | 
					0f62a521f4 | ||
| 
						 | 
					57af986367 | ||
| 
						 | 
					a2311748ca | ||
| 
						 | 
					2c5a14ae4a | ||
| 
						 | 
					ed1e16dccf | ||
| 
						 | 
					da9886e9f1 | ||
| 
						 | 
					32527f832e | ||
| 
						 | 
					57bbd02c57 | ||
| 
						 | 
					940849d03f | ||
| 
						 | 
					c112b850d8 | ||
| 
						 | 
					752ee356fa | ||
| 
						 | 
					43e70b6a3f | ||
| 
						 | 
					541754a619 | ||
| 
						 | 
					3772b2160c | ||
| 
						 | 
					465c68d839 | ||
| aca508114b | |||
| 
						 | 
					49ae1c7211 | ||
| 
						 | 
					0cf110da81 | ||
| 
						 | 
					8d5ff6f6fb | ||
| 
						 | 
					5456164dce | ||
| 
						 | 
					6dd7c2680a | ||
| 
						 | 
					3b5c1adef2 | ||
| 
						 | 
					47d840bbff | ||
| 
						 | 
					207871fd9b | ||
| 
						 | 
					ebe0beb400 | ||
| 
						 | 
					93ddd26a4a | ||
| 
						 | 
					e30e1e5aad | ||
| 
						 | 
					d26c34f34f | ||
| 24a8c7f763 | |||
| 
						 | 
					3e39ffd5e0 | ||
| 
						 | 
					53f22a2ed2 | ||
| 
						 | 
					44ca71fedb | ||
| 
						 | 
					8039e8ae04 | ||
| 
						 | 
					79e78bf235 | ||
| 
						 | 
					c9ef8b759a | ||
| 
						 | 
					80db7c6656 | ||
| 
						 | 
					3ba18d8720 | ||
| 
						 | 
					2ffcb874bb | ||
| 
						 | 
					5b765f02bd | ||
| 
						 | 
					2c52955ac0 | ||
| 
						 | 
					09d8588588 | ||
| 
						 | 
					71f786711b | ||
| 
						 | 
					deea34eb5e | ||
| 
						 | 
					1f14af6590 | ||
| 
						 | 
					aeae505bd4 | ||
| 
						 | 
					e10e62dcf7 | ||
| 
						 | 
					2a1793c98e | ||
| 
						 | 
					30d4586448 | ||
| 
						 | 
					aa4debc9c8 | ||
| ac2e10a308 | |||
| 
						 | 
					c986d285ea | ||
| 
						 | 
					8612044b9b | ||
| 
						 | 
					c19b86411a | ||
| 
						 | 
					9165052d5e | ||
| 
						 | 
					413983a666 | ||
| 
						 | 
					f86fa4edd7 | ||
| 
						 | 
					7f8110557f | ||
| 
						 | 
					c9b344a3fd | ||
| 
						 | 
					b41f934c37 | ||
| 
						 | 
					6058f3da56 | ||
| 689d75b808 | |||
| 
						 | 
					bd4503f30b | ||
| 
						 | 
					24ba8175a3 | ||
| 
						 | 
					fe24cbb182 | ||
| 
						 | 
					6eff8fa818 | ||
| 
						 | 
					552a994db3 | ||
| 
						 | 
					d24f19bc2d | ||
| 
						 | 
					7b570c507c | ||
| 
						 | 
					09ba3e2993 | ||
| 
						 | 
					d0f825f831 | ||
| 
						 | 
					47d2896468 | ||
| 
						 | 
					f59425ac57 | ||
| 
						 | 
					1acdeee913 | ||
| 
						 | 
					c2938c7ef3 | ||
| 
						 | 
					d65fe88c83 | ||
| 
						 | 
					7d3f4f4434 | ||
| 
						 | 
					acc35fe30c | ||
| 
						 | 
					ee5804fed7 | ||
| 
						 | 
					1cbaddf75c | ||
| 
						 | 
					226760490b | ||
| 
						 | 
					7931909e28 | ||
| 
						 | 
					129c139ed7 | ||
| 
						 | 
					340816d763 | ||
| 
						 | 
					d6c6818ecf | ||
| 
						 | 
					181a0bb372 | ||
| 
						 | 
					f2d4163899 | ||
| 
						 | 
					4cc98d7937 | ||
| 
						 | 
					3812fa8d38 | ||
| 
						 | 
					da5c5cd5fd | ||
| 
						 | 
					74a62e3649 | ||
| 
						 | 
					7e1a42f7ed | ||
| 
						 | 
					dda9011abc | ||
| 
						 | 
					de79e9211f | ||
| 
						 | 
					b0d9f41020 | ||
| 
						 | 
					4d1a516c80 | ||
| 
						 | 
					995f1286bd | ||
| 
						 | 
					fd0ae12f24 | ||
| 
						 | 
					db258a0fbd | ||
| 
						 | 
					0df8e8a5fc | ||
| 
						 | 
					6a28064dce | ||
| 
						 | 
					b5e9077c74 | ||
| 
						 | 
					3b4ace14cf | ||
| 
						 | 
					5aa868c296 | ||
| 
						 | 
					43b48224b5 | ||
| 
						 | 
					144f22314f | ||
| 
						 | 
					51eb720265 | ||
| 
						 | 
					e977007dd3 | ||
| 
						 | 
					769f00b4f6 | ||
| 
						 | 
					aa426cd8b2 | ||
| 
						 | 
					b2cab00599 | ||
| 
						 | 
					b54d62ef35 | ||
| 
						 | 
					9b68248a3e | ||
| 
						 | 
					762959fbb4 | ||
| 
						 | 
					07b426f2b5 | ||
| 
						 | 
					668a6ec277 | ||
| 
						 | 
					82f61de117 | ||
| 
						 | 
					67e571f02b | ||
| 
						 | 
					c17af0e958 | ||
| 
						 | 
					2561214c3e | ||
| 
						 | 
					7382bd60ff | ||
| 
						 | 
					73b93f1aba | ||
| 
						 | 
					0243b1c8a7 | ||
| 
						 | 
					6ce760ccd8 | ||
| 
						 | 
					2f869884ba | ||
| 
						 | 
					5d8dea1b6b | ||
| 
						 | 
					1f232db5b4 | ||
| 
						 | 
					c4ad13c53f | ||
| 
						 | 
					98f73f2199 | ||
| 
						 | 
					89ca44206c | ||
| 
						 | 
					5c9b85b69b | ||
| 
						 | 
					09cfab3856 | ||
| 
						 | 
					30e903d90a | ||
| 
						 | 
					852d367225 | ||
| 
						 | 
					a7f0cf6d6f | ||
| 
						 | 
					346953d209 | ||
| 
						 | 
					97af9c6de2 | ||
| 
						 | 
					8dd95dab5e | ||
| 
						 | 
					6775173e4f | ||
| 
						 | 
					9170fcf485 | ||
| 
						 | 
					919428cb80 | ||
| 
						 | 
					4331692ee5 | ||
| 
						 | 
					5aa826bdb0 | ||
| 
						 | 
					6736db082e | ||
| 
						 | 
					807b4df381 | ||
| 56edfd4f54 | |||
| 
						 | 
					0a1a258d2a | ||
| 
						 | 
					09a0880d07 | ||
| 
						 | 
					a98a4adc7e | ||
| 
						 | 
					f872f54e2a | ||
| 33c638d538 | |||
| 
						 | 
					0a2a221fa9 | ||
| 
						 | 
					24a065e5de | ||
| 
						 | 
					6df970ca9e | ||
| 
						 | 
					616cd9e133 | ||
| 
						 | 
					a91533f6d1 | ||
| 
						 | 
					baa4500a2c | ||
| 
						 | 
					f28a737a9a | ||
| 
						 | 
					19cec561ba | ||
| 
						 | 
					d8f63adaad | ||
| 
						 | 
					8c16466d31 | ||
| 
						 | 
					ced54a5cf1 | ||
| 
						 | 
					08246b5ac3 | ||
| 
						 | 
					c3a1de8c7b | ||
| 
						 | 
					918170d00b | ||
| 
						 | 
					bc50f37c4d | ||
| 
						 | 
					09cf1f5c85 | ||
| 
						 | 
					947f6b312e | ||
| 
						 | 
					99728258f1 | ||
| 
						 | 
					c972f8c4dd | ||
| 
						 | 
					7d38dff5bf | ||
| 
						 | 
					8db8b68edd | ||
| 
						 | 
					00cafd18ed | ||
| 
						 | 
					ab4e89132e | ||
| 
						 | 
					3585f1df19 | ||
| 
						 | 
					e258c35537 | ||
| 
						 | 
					91dbe46786 | ||
| 
						 | 
					a7389111ff | ||
| 
						 | 
					27e9a88e2f | ||
| 
						 | 
					33e9c71aea | ||
| 
						 | 
					bd84e3f3b9 | ||
| 
						 | 
					364cc04736 | ||
| ec4a899bb8 | |||
| 
						 | 
					dab31e2367 | ||
| 
						 | 
					e613ff1f7e | ||
| 
						 | 
					1886b745e5 | ||
| 
						 | 
					422c378a5e | 
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
.*.swp
 | 
			
		||||
.gdb_history
 | 
			
		||||
# work directory
 | 
			
		||||
chaos
 | 
			
		||||
.chaos
 | 
			
		||||
# generated files
 | 
			
		||||
.dependencies
 | 
			
		||||
libvdr-softhddevice.so*
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										309
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										309
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,5 +1,312 @@
 | 
			
		||||
User johns
 | 
			
		||||
Date:
 | 
			
		||||
Date: Sun Mar 17 15:52:42 CET 2013
 | 
			
		||||
 | 
			
		||||
    Release Version 0.6.0
 | 
			
		||||
    Adds H264 only hardware decoder for still-pictures.
 | 
			
		||||
    Enable optional VDR-SPU deocder support.
 | 
			
		||||
 | 
			
		||||
User anbr
 | 
			
		||||
Date: Sun Mar 17 15:49:46 CET 2013
 | 
			
		||||
 | 
			
		||||
    Update german translation.
 | 
			
		||||
 | 
			
		||||
User cyril
 | 
			
		||||
Date: Wed Mar 6 17:05:10 CET 2013
 | 
			
		||||
 | 
			
		||||
    Adds raise softhddevice video window support.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Wed Mar 6 10:30:27 CET 2013
 | 
			
		||||
 | 
			
		||||
    Adds optional only complete mpeg packets support.
 | 
			
		||||
    Fixes text of EAC-3 pass-through setup.
 | 
			
		||||
    Try to start or connect to X11 server with -xx.
 | 
			
		||||
    Try to use HBR (High Bit-Rate) for EAC3.
 | 
			
		||||
    Improved pass-through (PCM+EAC3) support.
 | 
			
		||||
    Support VDR 1.7.36 new build system.
 | 
			
		||||
    Improves VDPAU display preemption handling.
 | 
			
		||||
    Add modifiers to X11 remote key names (from Sibbi).
 | 
			
		||||
    Add compatibility with >=ffmpeg 1.1.
 | 
			
		||||
    Adds PIP (Picture-in-Picture) support.
 | 
			
		||||
    Split mpeg packets in receiver thread.
 | 
			
		||||
 | 
			
		||||
User horchi
 | 
			
		||||
Date: Tue Jan  1 17:58:54 CET 2013
 | 
			
		||||
 | 
			
		||||
    Adds VDR SeduAtmo Plugin support.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Tue Jan  1 15:21:28 CET 2013
 | 
			
		||||
 | 
			
		||||
    Support multiple streams with ScaleVideo.
 | 
			
		||||
    Makes 4:3 and 16:9 display format configurable.
 | 
			
		||||
    Don't use DVB display format.
 | 
			
		||||
 | 
			
		||||
User Zoolook
 | 
			
		||||
Date: Tue Jan  1 12:49:19 CET 2013
 | 
			
		||||
 | 
			
		||||
    Add support for new vdr ScaleVideo API.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Tue Jan  1 12:40:12 CET 2013
 | 
			
		||||
 | 
			
		||||
    Add support for old PES HDTV recording.
 | 
			
		||||
    Disable trickspeed hack, to prevent ffmpeg crash.
 | 
			
		||||
    Makes X11 server arguments configurable.
 | 
			
		||||
    Add german translation.
 | 
			
		||||
 | 
			
		||||
User FireFly
 | 
			
		||||
Date: Sun Nov 18 21:15:50 CET 2012
 | 
			
		||||
 | 
			
		||||
    Add german translation.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Thu Nov 15 22:28:55 CET 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.5.2
 | 
			
		||||
 | 
			
		||||
User  maverick-me
 | 
			
		||||
Date: Mon Nov 5 23:13:42 CET 2012
 | 
			
		||||
 | 
			
		||||
    Fix 3d OSD position.
 | 
			
		||||
 | 
			
		||||
User  maverick-me
 | 
			
		||||
Date: Tue Oct 30 16:50:25 CET 2012
 | 
			
		||||
 | 
			
		||||
    Add support to change the OSD for 3d SBS/TB streams.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Tue Oct 30 12:11:25 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Use software decoder for still-pictures.
 | 
			
		||||
    Add Feature #1103: change audio devices without vdr restart.
 | 
			
		||||
    Fix bug #1089: Vdpau decoder used wrong number of mpeg reference frames.
 | 
			
		||||
    Fix bug: with some streams endless loop in pes audio parser.
 | 
			
		||||
    Report correct video size in cSoftHdDevice::GetVideoSize.
 | 
			
		||||
    Add picture adjustment support for vdpau.
 | 
			
		||||
    Revert "mpeg_vdpau" back to "mpegvideo_vdpau".
 | 
			
		||||
    Fix bug: Can't use software decoder with VDPAU.
 | 
			
		||||
    Resume plugin, if suspend control stops.
 | 
			
		||||
    Removes old audio code (!USE_AUDIORING).
 | 
			
		||||
    Use -DOSD_DEBUG to debug OSD.
 | 
			
		||||
 | 
			
		||||
User arttupii
 | 
			
		||||
Date: Tue Aug 7 16:46:23 2012 +0200
 | 
			
		||||
 | 
			
		||||
    Fix bug #909: Subtitles destroy menu.
 | 
			
		||||
    Fix bug #1003: Subtitles overlapping.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Fri Jul 27 19:15:48 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Free used X11 resources colormap, pixmap, cursor.
 | 
			
		||||
    Fix bug: spelling USE_VAPI wrong, missing functions.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Tue Jul  3 16:35:46 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.5.1
 | 
			
		||||
    Add commandline support to disable hardware decoder.
 | 
			
		||||
    Display frame statistics in plugin menu.
 | 
			
		||||
    Fix bug: 100% CPU use during playback.
 | 
			
		||||
    Fix bug: audio use 100% CPU during pause.
 | 
			
		||||
    Guard audio skip against old PTS values.
 | 
			
		||||
    Improved audio skip, after channel switch.
 | 
			
		||||
    Setup add preview of collapsed tree.
 | 
			
		||||
    Fix bug: dvd plugin times out.
 | 
			
		||||
    Makes OSD size configurable.
 | 
			
		||||
    Support display with non-square pixels.
 | 
			
		||||
    Initial ADTS (AAC+) support.
 | 
			
		||||
    Fix bug #959: log flooded with service messages.
 | 
			
		||||
 | 
			
		||||
User durchflieger
 | 
			
		||||
Date: Mon Apr 30 14:46:51 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Adds VDR DFAtmo Plugin support.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Mon Apr 30 13:56:26 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Fix bug: don't normalize or compress pass-through samples.
 | 
			
		||||
    Make audio ring buffer size a multiple of 3,5,7,8.
 | 
			
		||||
    Add reset ring buffer support.
 | 
			
		||||
    Fix bug: alloca wrong size for audio buffer.
 | 
			
		||||
    Handle jump in stream like stream start.
 | 
			
		||||
    Always compile audio drift correction.
 | 
			
		||||
    Add audio drift correction configuration to the setup.
 | 
			
		||||
 | 
			
		||||
User mini73
 | 
			
		||||
Date: Fri Apr 20 16:51:14 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Add support for svdr command "stat".
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Fri Apr 20 16:05:40 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Made showing black picture configurable.
 | 
			
		||||
    Show black picture, if no video stream is available.
 | 
			
		||||
    Setup split into foldable sections.
 | 
			
		||||
    Adds show cursor on pointer move and hide after 200ms.
 | 
			
		||||
    Adds Hot-key support for auto-crop enable/disable/toggle.
 | 
			
		||||
    Adds detached start mode.
 | 
			
		||||
    Fix bug: VDPAU looses preemption callback.
 | 
			
		||||
    Fix bug: X11 server keeps sending USR1 signals, which confuses suspend.
 | 
			
		||||
    Show message for hot-keys.
 | 
			
		||||
    Fix bug: playback errors with old PES recordings.
 | 
			
		||||
    Adds Hot-key support for 4:3 zoom modes.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Sat Apr  7 20:21:16 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.5.0
 | 
			
		||||
    Change audio/video delay with hot-key.
 | 
			
		||||
    Enable/disable/toggle fullscreen with hot-key (Feature #930).
 | 
			
		||||
 | 
			
		||||
User: CafeDelMar
 | 
			
		||||
Date: Thu Apr  5 22:44:06 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Cutting pixels are now configured for each resolution.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Thu Apr 5 15:47:59 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Buffer less video and audio.
 | 
			
		||||
    Fix 100% cpu use, with mp3 plugin.
 | 
			
		||||
    Audio/Video sync rewrite, trick-speed support moved to video.
 | 
			
		||||
    Faster VdpauBlackSurface version.
 | 
			
		||||
    Fix bug: VideoSetPts wrong position for multi frame packets.
 | 
			
		||||
 | 
			
		||||
User: CafeDelMar
 | 
			
		||||
Date: Mon Mar 26 20:45:54 CEST 2012
 | 
			
		||||
 | 
			
		||||
    Add VideoSkipPixels support.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Fri Mar 23 18:43:20 CET 2012
 | 
			
		||||
 | 
			
		||||
    Add optional argument (display) to ATTA svdrp commmand.
 | 
			
		||||
    Wakeup display to show OSD for remote learning mode.
 | 
			
		||||
    Support switching the primary device with svdrp.
 | 
			
		||||
    Disable and reenable screen saver and DPMS.
 | 
			
		||||
    Video source code cleanup.
 | 
			
		||||
    Fix fast backward with some h264 streams.
 | 
			
		||||
    Make soft start sync setup menu configurable.
 | 
			
		||||
    Fix bug: StillPicture NAL end of sequence is 10 and not 0x10.
 | 
			
		||||
    Fix bug: AudioEnqueue crash without sound card.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Sun Mar  4 22:35:36 CET 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.4.9
 | 
			
		||||
    Experimental ac3 audio drift correction support.
 | 
			
		||||
    Removes LPCM detection from TS parser.
 | 
			
		||||
    Rewrote video/audio start code.
 | 
			
		||||
    Add support for attach/detach plugin.
 | 
			
		||||
    OSS needs bigger audio buffers.
 | 
			
		||||
    Improved audio drift correction support.
 | 
			
		||||
    Experimental audio drift correction support.
 | 
			
		||||
    Add SVDRP HOTK command support.
 | 
			
		||||
    Increased audio buffer time for PES packets.
 | 
			
		||||
    Support configuration and set of video background.
 | 
			
		||||
    Survive lost X11 display.
 | 
			
		||||
    Fix bug: 100% cpu use with plugins like mp3.
 | 
			
		||||
    Wakeup display thread on channel switch, osd can now be shown without
 | 
			
		||||
    video.
 | 
			
		||||
    Makes 60Hz display mode configurable with setup.conf.
 | 
			
		||||
    Support downmix of AC-3 to stero.
 | 
			
		||||
    New audio PES packet parser.
 | 
			
		||||
    Fix bug: Grabbing a JPG image fails while suspended.
 | 
			
		||||
    Add support for hot keys.
 | 
			
		||||
    Add support to use characters input in edit mode.
 | 
			
		||||
    Adds trick speed support.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Thu Feb 16 09:59:14 CET 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.4.8
 | 
			
		||||
    Fix bug: wrong start of video packet.
 | 
			
		||||
    VDPAU: Enables inverse telecine configuration.
 | 
			
		||||
    Find AC3 (Dolby Digital) inside PES packet.
 | 
			
		||||
    Fix bug: audio increments invalid audio PTS.
 | 
			
		||||
    Fix bug: dvd plugin not working.
 | 
			
		||||
    Fix bug: used frame-> instead of video_ctx-> for old libav/ffmpeg.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Mon Feb 13 23:20:26 CET 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.4.7
 | 
			
		||||
 | 
			
		||||
User FireFly
 | 
			
		||||
Date: Mon Feb 13 20:14:11 CET 2012
 | 
			
		||||
 | 
			
		||||
    Fix bug: unscaled jpeg includes PNG header.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Mon Feb 13 14:58:26 CET 2012
 | 
			
		||||
 | 
			
		||||
    VDPAU: Studio levels could be configured in the setup menu.
 | 
			
		||||
    Window size defaults to fullscreen, if no geometry is given.
 | 
			
		||||
 | 
			
		||||
User m.Rcu
 | 
			
		||||
Date: Sun Feb 12 20:28:22 CET 2012
 | 
			
		||||
 | 
			
		||||
    Jpeg screengrab use VDR RgbToJpeg function.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Sun Feb 12 20:14:43 CET 2012
 | 
			
		||||
 | 
			
		||||
    Add play/pause audio support.
 | 
			
		||||
    Fix bug: audible glitch when switching AC-3 pass-through <-> none.
 | 
			
		||||
    Fix bug: mpeg stills not displayed.
 | 
			
		||||
    Detect audio stream type only after stream switch.
 | 
			
		||||
    Detect more h264 streams with leading zeros.
 | 
			
		||||
    VDPAU: support for studio levels added.
 | 
			
		||||
    Add support for skip chroma deinterlace to software deinterlacer.
 | 
			
		||||
    Type of software deinterlacer now configurable from setup menu.
 | 
			
		||||
    Mixer channel could be set through command line option.
 | 
			
		||||
    Fix bug: LFE moved to wrong position.
 | 
			
		||||
    Guard suspend/resume against multiple calls.
 | 
			
		||||
    Add support for AAC LATM audio streams.
 | 
			
		||||
    Fix bug: alsa and ffmpeg use different channel layout.
 | 
			
		||||
    Support more LPCM sample rates and number of channels.
 | 
			
		||||
    Quick&dirty support for mpeg LPCM streams.
 | 
			
		||||
    Workaround for text2skin undrawn OSD areas.
 | 
			
		||||
    Detect dvb LPCM stream and ignore it.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Thu Feb  2 23:29:35 CET 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.4.6
 | 
			
		||||
    Warn only on the first duplicated frame in sequence.
 | 
			
		||||
    Increase audio buffer, if bigger audio delay is used.
 | 
			
		||||
    Makes SkipLines configure in setup menu.
 | 
			
		||||
    Auto-crop only enabled with normal 4:3 display mode.
 | 
			
		||||
    Vaapi updates OSD when cropping changes.
 | 
			
		||||
    Add A-V info output and compile time option.
 | 
			
		||||
    Fix bug: VA-API intel software decoder broken by aspect commit.
 | 
			
		||||
    Add support for 4:3 output modes.
 | 
			
		||||
    Quicker auto-crop after channel switch.
 | 
			
		||||
    Add auto-crop support for Intel VA-API backend.
 | 
			
		||||
    Fix bug: Auto-Crop logo skip didn't use displayed width.
 | 
			
		||||
    Workaround for mpeg2 FFMpeg + VA-API + Intel GPU hung.
 | 
			
		||||
    Fix bug: Missing vaSyncSurface and vaDestroyImage.
 | 
			
		||||
    Fix bug: Only black picture with VA-API hw decoder.
 | 
			
		||||
 | 
			
		||||
User HelAu
 | 
			
		||||
Date: Mon Jan 30 16:54:47 CET 2012
 | 
			
		||||
 | 
			
		||||
    Add support to start the plugin in suspended mode.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Mon Jan 30 15:58:21 CET 2012
 | 
			
		||||
 | 
			
		||||
    Finished rewrite of video code, to support output modules.
 | 
			
		||||
    Add aspect change support to software decoder path.
 | 
			
		||||
    Repair software decoder with vaapi vdpau backend.
 | 
			
		||||
    Add workaround for Intel VA-API MPEG GPU hung.
 | 
			
		||||
 | 
			
		||||
User johns
 | 
			
		||||
Date: Sat Jan 28 13:32:12 CET 2012
 | 
			
		||||
 | 
			
		||||
    Release Version 0.4.5
 | 
			
		||||
    Add configurable skip lines at video top and bottom.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										223
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										223
									
								
								Makefile
									
									
									
									
									
								
							@@ -6,151 +6,183 @@
 | 
			
		||||
# The official name of this plugin.
 | 
			
		||||
# This name will be used in the '-P...' option of VDR to load the plugin.
 | 
			
		||||
# By default the main source file also carries this name.
 | 
			
		||||
# IMPORTANT: the presence of this macro is important for the Make.config
 | 
			
		||||
# file. So it must be defined, even if it is not used here!
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
PLUGIN = softhddevice
 | 
			
		||||
 | 
			
		||||
### Configuration (edit this for your needs)
 | 
			
		||||
 | 
			
		||||
    # support alsa audio output module
 | 
			
		||||
ALSA ?= $(shell pkg-config --exists alsa && echo 1)
 | 
			
		||||
    # support OSS audio output module
 | 
			
		||||
OSS ?= 1
 | 
			
		||||
    # support VDPAU video output modue
 | 
			
		||||
VDPAU ?= $(shell pkg-config --exists vdpau && echo 1)
 | 
			
		||||
    # support VA-API video output modue
 | 
			
		||||
VAAPI ?= $(shell pkg-config --exists libva && echo 1)
 | 
			
		||||
    # screensaver disable/enable
 | 
			
		||||
SCREENSAVER ?= 1
 | 
			
		||||
    # use ffmpeg libswresample
 | 
			
		||||
SWRESAMPLE ?= $(shell pkg-config --exists libswresample && echo 1)
 | 
			
		||||
 | 
			
		||||
CONFIG := # -DDEBUG #-DOSD_DEBUG	# enable debug output+functions
 | 
			
		||||
#CONFIG += -DSTILL_DEBUG=2		# still picture debug verbose level
 | 
			
		||||
 | 
			
		||||
CONFIG += -DAV_INFO -DAV_INFO_TIME=3000	# info/debug a/v sync
 | 
			
		||||
CONFIG += -DUSE_PIP			# PIP support
 | 
			
		||||
#CONFIG += -DHAVE_PTHREAD_NAME		# supports new pthread_setname_np
 | 
			
		||||
#CONFIG += -DNO_TS_AUDIO		# disable ts audio parser
 | 
			
		||||
#CONFIG += -DUSE_TS_VIDEO		# build new ts video parser
 | 
			
		||||
#CONFIG += -DUSE_MPEG_COMPLETE		# support only complete mpeg packets
 | 
			
		||||
#CONFIG += -DUSE_VDR_SPU		# use VDR SPU decoder.
 | 
			
		||||
 | 
			
		||||
ifeq ($(ALSA),1)
 | 
			
		||||
CONFIG += -DUSE_ALSA
 | 
			
		||||
_CFLAGS += $(shell pkg-config --cflags alsa)
 | 
			
		||||
LIBS += $(shell pkg-config --libs alsa)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(OSS),1)
 | 
			
		||||
CONFIG += -DUSE_OSS
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VDPAU),1)
 | 
			
		||||
CONFIG += -DUSE_VDPAU
 | 
			
		||||
_CFLAGS += $(shell pkg-config --cflags vdpau)
 | 
			
		||||
LIBS += $(shell pkg-config --libs vdpau)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VAAPI),1)
 | 
			
		||||
CONFIG += -DUSE_VAAPI
 | 
			
		||||
_CFLAGS += $(shell pkg-config --cflags libva-x11 libva)
 | 
			
		||||
LIBS += $(shell pkg-config --libs libva-x11 libva)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(SCREENSAVER),1)
 | 
			
		||||
CONFIG += -DUSE_SCREENSAVER
 | 
			
		||||
_CFLAGS += $(shell pkg-config --cflags xcb-screensaver xcb-dpms)
 | 
			
		||||
LIBS += $(shell pkg-config --libs xcb-screensaver xcb-dpms)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(SWRESAMPLE),1)
 | 
			
		||||
CONFIG += -DUSE_SWRESAMPLE
 | 
			
		||||
_CFLAGS += $(shell pkg-config --cflags libswresample)
 | 
			
		||||
LIBS += $(shell pkg-config --libs libswresample)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
_CFLAGS += $(shell pkg-config --cflags libavcodec x11 x11-xcb xcb xcb-icccm)
 | 
			
		||||
LIBS += -lrt $(shell pkg-config --libs libavcodec x11 x11-xcb xcb xcb-icccm)
 | 
			
		||||
 | 
			
		||||
### The version number of this plugin (taken from the main source file):
 | 
			
		||||
 | 
			
		||||
VERSION = $(shell grep 'static const char \*const VERSION *=' $(PLUGIN).cpp | awk '{ print $$7 }' | sed -e 's/[";]//g')
 | 
			
		||||
GIT_REV = $(shell git describe --always 2>/dev/null)
 | 
			
		||||
 | 
			
		||||
### Configuration (edit this for your needs)
 | 
			
		||||
 | 
			
		||||
CONFIG := #-DDEBUG
 | 
			
		||||
#CONFIG += -DHAVE_PTHREAD_NAME
 | 
			
		||||
CONFIG += $(shell pkg-config --exists vdpau && echo "-DUSE_VDPAU")
 | 
			
		||||
CONFIG += $(shell pkg-config --exists libva && echo "-DUSE_VAAPI")
 | 
			
		||||
CONFIG += $(shell pkg-config --exists alsa && echo "-DUSE_ALSA")
 | 
			
		||||
CONFIG += $(shell ls /usr/lib/libjpeg* >/dev/null 2>&1 && echo "-DUSE_JPEG")
 | 
			
		||||
CONFIG += -DUSE_OSS
 | 
			
		||||
 | 
			
		||||
### The C++ compiler and options:
 | 
			
		||||
 | 
			
		||||
CC       ?= gcc
 | 
			
		||||
CXX      ?= g++
 | 
			
		||||
CFLAGS   ?=	-g -O2 -W -Wall -Wextra -Winit-self \
 | 
			
		||||
		-Wdeclaration-after-statement
 | 
			
		||||
CXXFLAGS ?= -g -O2 -W -Wall -Wextra -Woverloaded-virtual
 | 
			
		||||
 | 
			
		||||
### The directory environment:
 | 
			
		||||
 | 
			
		||||
VDRDIR ?= ../../..
 | 
			
		||||
LIBDIR ?= ../../lib
 | 
			
		||||
# Use package data if installed...otherwise assume we're under the VDR source directory:
 | 
			
		||||
PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
 | 
			
		||||
LIBDIR = $(call PKGCFG,libdir)
 | 
			
		||||
LOCDIR = $(call PKGCFG,locdir)
 | 
			
		||||
PLGCFG = $(call PKGCFG,plgcfg)
 | 
			
		||||
#
 | 
			
		||||
TMPDIR ?= /tmp
 | 
			
		||||
 | 
			
		||||
### Make sure that necessary options are included:
 | 
			
		||||
### The compiler options:
 | 
			
		||||
 | 
			
		||||
include $(VDRDIR)/Make.global
 | 
			
		||||
export CFLAGS	= $(call PKGCFG,cflags)
 | 
			
		||||
export CXXFLAGS = $(call PKGCFG,cxxflags)
 | 
			
		||||
 | 
			
		||||
ifeq ($(CFLAGS),)
 | 
			
		||||
$(error CFLAGS not set)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(CXXFLAGS),)
 | 
			
		||||
$(error CXXFLAGS not set)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
### The version number of VDR's plugin API:
 | 
			
		||||
 | 
			
		||||
APIVERSION = $(call PKGCFG,apiversion)
 | 
			
		||||
 | 
			
		||||
### Allow user defined options to overwrite defaults:
 | 
			
		||||
 | 
			
		||||
-include $(VDRDIR)/Make.config
 | 
			
		||||
 | 
			
		||||
### The version number of VDR's plugin API (taken from VDR's "config.h"):
 | 
			
		||||
 | 
			
		||||
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
 | 
			
		||||
-include $(PLGCFG)
 | 
			
		||||
 | 
			
		||||
### The name of the distribution archive:
 | 
			
		||||
 | 
			
		||||
ARCHIVE = $(PLUGIN)-$(VERSION)
 | 
			
		||||
PACKAGE = vdr-$(ARCHIVE)
 | 
			
		||||
 | 
			
		||||
### Includes, Defines and dependencies (add further entries here):
 | 
			
		||||
### The name of the shared object file:
 | 
			
		||||
 | 
			
		||||
INCLUDES += -I$(VDRDIR)/include
 | 
			
		||||
SOFILE = libvdr-$(PLUGIN).so
 | 
			
		||||
 | 
			
		||||
DEFINES += $(CONFIG) -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' \
 | 
			
		||||
### Includes and Defines (add further entries here):
 | 
			
		||||
 | 
			
		||||
INCLUDES +=
 | 
			
		||||
 | 
			
		||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -D_GNU_SOURCE $(CONFIG) \
 | 
			
		||||
	$(if $(GIT_REV), -DGIT_REV='"$(GIT_REV)"')
 | 
			
		||||
 | 
			
		||||
_CFLAGS = $(DEFINES) $(INCLUDES) \
 | 
			
		||||
	$(shell pkg-config --cflags libavcodec libavformat) \
 | 
			
		||||
	`pkg-config --cflags x11 x11-xcb xcb xcb-xv xcb-shm xcb-dpms xcb-atom\
 | 
			
		||||
		xcb-screensaver xcb-randr xcb-glx xcb-icccm xcb-keysyms`\
 | 
			
		||||
	`pkg-config --cflags gl glu` \
 | 
			
		||||
	$(if $(findstring USE_VDPAU,$(CONFIG)), \
 | 
			
		||||
	            `pkg-config --cflags vdpau`) \
 | 
			
		||||
	$(if $(findstring USE_VAAPI,$(CONFIG)), \
 | 
			
		||||
	            `pkg-config --cflags libva-x11 libva-glx libva`) \
 | 
			
		||||
	$(if $(findstring USE_ALSA,$(CONFIG)), \
 | 
			
		||||
	            `pkg-config --cflags alsa`)
 | 
			
		||||
### Make it standard
 | 
			
		||||
 | 
			
		||||
#override _CFLAGS  += -Werror
 | 
			
		||||
override CXXFLAGS += $(_CFLAGS)
 | 
			
		||||
override CFLAGS   += $(_CFLAGS)
 | 
			
		||||
 | 
			
		||||
LIBS += -lrt \
 | 
			
		||||
	$(shell pkg-config --libs libavcodec libavformat) \
 | 
			
		||||
	`pkg-config --libs x11 x11-xcb xcb xcb-xv xcb-shm xcb-dpms xcb-atom\
 | 
			
		||||
		xcb-screensaver xcb-randr xcb-glx xcb-icccm xcb-keysyms`\
 | 
			
		||||
	`pkg-config --libs gl glu` \
 | 
			
		||||
	$(if $(findstring USE_VDPAU,$(CONFIG)), \
 | 
			
		||||
	            `pkg-config --libs vdpau`) \
 | 
			
		||||
	$(if $(findstring USE_VAAPI,$(CONFIG)), \
 | 
			
		||||
	            `pkg-config --libs libva-x11 libva-glx libva`) \
 | 
			
		||||
	$(if $(findstring USE_ALSA,$(CONFIG)), \
 | 
			
		||||
	            `pkg-config --libs alsa`) \
 | 
			
		||||
	$(if $(findstring USE_JPEG,$(CONFIG)), \
 | 
			
		||||
	            -ljpeg)
 | 
			
		||||
override CXXFLAGS += $(_CFLAGS) $(DEFINES) $(INCLUDES) \
 | 
			
		||||
    -g -W -Wall -Wextra -Winit-self -Werror=overloaded-virtual
 | 
			
		||||
override CFLAGS	  += $(_CFLAGS) $(DEFINES) $(INCLUDES) \
 | 
			
		||||
    -g -W -Wall -Wextra -Winit-self -Wdeclaration-after-statement
 | 
			
		||||
 | 
			
		||||
### The object files (add further files here):
 | 
			
		||||
 | 
			
		||||
OBJS = $(PLUGIN).o softhddev.o video.o audio.o codec.o ringbuffer.o
 | 
			
		||||
 | 
			
		||||
SRCS = $(wildcard $(OBJS:.o=.c)) $(PLUGIN).cpp
 | 
			
		||||
 | 
			
		||||
### The main target:
 | 
			
		||||
 | 
			
		||||
all: libvdr-$(PLUGIN).so i18n
 | 
			
		||||
 | 
			
		||||
### Implicit rules:
 | 
			
		||||
#
 | 
			
		||||
#%.o: %.cpp
 | 
			
		||||
#	$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
 | 
			
		||||
all: $(SOFILE) i18n
 | 
			
		||||
 | 
			
		||||
### Dependencies:
 | 
			
		||||
 | 
			
		||||
MAKEDEP = $(CC) -MM -MG
 | 
			
		||||
MAKEDEP = $(CXX) -MM -MG
 | 
			
		||||
DEPFILE = .dependencies
 | 
			
		||||
$(DEPFILE): Makefile
 | 
			
		||||
	@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(SRCS) >$@
 | 
			
		||||
 | 
			
		||||
$(OBJS): Makefile
 | 
			
		||||
	@$(MAKEDEP) $(CXXFLAGS) $(SRCS) > $@
 | 
			
		||||
 | 
			
		||||
-include $(DEPFILE)
 | 
			
		||||
 | 
			
		||||
### Internationalization (I18N):
 | 
			
		||||
 | 
			
		||||
PODIR     = po
 | 
			
		||||
LOCALEDIR = $(VDRDIR)/locale
 | 
			
		||||
I18Npo    = $(wildcard $(PODIR)/*.po)
 | 
			
		||||
I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
 | 
			
		||||
I18Npot   = $(PODIR)/$(PLUGIN).pot
 | 
			
		||||
PODIR	  = po
 | 
			
		||||
I18Npo	  = $(wildcard $(PODIR)/*.po)
 | 
			
		||||
I18Nmo	  = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
 | 
			
		||||
I18Nmsgs  = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
 | 
			
		||||
I18Npot	  = $(PODIR)/$(PLUGIN).pot
 | 
			
		||||
 | 
			
		||||
%.mo: %.po
 | 
			
		||||
	msgfmt -c -o $@ $<
 | 
			
		||||
 | 
			
		||||
$(I18Npot): $(wildcard *.cpp)  $(wildcard *.c)
 | 
			
		||||
$(I18Npot): $(SRCS)
 | 
			
		||||
	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP \
 | 
			
		||||
	-k_ -k_N --package-name=VDR --package-version=$(VDRVERSION) \
 | 
			
		||||
	--msgid-bugs-address='<see README>' -o $@ $^
 | 
			
		||||
	-k_ -k_N --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) \
 | 
			
		||||
	--msgid-bugs-address='<see README>' -o $@ `ls $^`
 | 
			
		||||
 | 
			
		||||
%.po: $(I18Npot)
 | 
			
		||||
	msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
 | 
			
		||||
	msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
 | 
			
		||||
	@touch $@
 | 
			
		||||
 | 
			
		||||
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
 | 
			
		||||
	@mkdir -p $(dir $@)
 | 
			
		||||
	cp $< $@
 | 
			
		||||
$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
 | 
			
		||||
	install -D -m644 $< $@
 | 
			
		||||
 | 
			
		||||
.PHONY: i18n
 | 
			
		||||
i18n: $(I18Nmsgs) $(I18Npot)
 | 
			
		||||
i18n: $(I18Nmo) $(I18Npot)
 | 
			
		||||
 | 
			
		||||
install-i18n: $(I18Nmsgs)
 | 
			
		||||
 | 
			
		||||
### Targets:
 | 
			
		||||
 | 
			
		||||
libvdr-$(PLUGIN).so: $(OBJS) Makefile
 | 
			
		||||
	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -fPIC $(OBJS) -o $@ $(LIBS)
 | 
			
		||||
	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 | 
			
		||||
$(OBJS): Makefile
 | 
			
		||||
 | 
			
		||||
$(SOFILE): $(OBJS)
 | 
			
		||||
	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@
 | 
			
		||||
 | 
			
		||||
install-lib: $(SOFILE)
 | 
			
		||||
	install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
 | 
			
		||||
 | 
			
		||||
install: install-lib install-i18n
 | 
			
		||||
 | 
			
		||||
dist: $(I18Npo) clean
 | 
			
		||||
	@-rm -rf $(TMPDIR)/$(ARCHIVE)
 | 
			
		||||
@@ -161,19 +193,20 @@ dist: $(I18Npo) clean
 | 
			
		||||
	@echo Distribution package created as $(PACKAGE).tgz
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot
 | 
			
		||||
	@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
 | 
			
		||||
	@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
 | 
			
		||||
 | 
			
		||||
install:	libvdr-$(PLUGIN).so
 | 
			
		||||
	cp --remove-destination libvdr-$(PLUGIN).so \
 | 
			
		||||
		/usr/lib/vdr/plugins/libvdr-$(PLUGIN).so.$(APIVERSION)
 | 
			
		||||
## Private Targets:
 | 
			
		||||
 | 
			
		||||
HDRS=	$(wildcard *.h)
 | 
			
		||||
 | 
			
		||||
indent:
 | 
			
		||||
	for i in $(wildcard $(OBJS:.o=.c)) $(HDRS); do \
 | 
			
		||||
		indent $$i; unexpand -a $$i > $$i.up; mv $$i.up $$i; \
 | 
			
		||||
	for i in $(SRCS) $(HDRS); do \
 | 
			
		||||
		indent $$i; \
 | 
			
		||||
		unexpand -a $$i | sed -e s/constconst/const/ > $$i.up; \
 | 
			
		||||
		mv $$i.up $$i; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
video_test: video.c Makefile
 | 
			
		||||
	$(CC) -DVIDEO_TEST -DVERSION='"$(VERSION)"' $(CFLAGS) $(LDFLAGS) $< $(LIBS) \
 | 
			
		||||
	-o $@
 | 
			
		||||
	$(CC) -DVIDEO_TEST -DVERSION='"$(VERSION)"' $(CFLAGS) $(LDFLAGS) $< \
 | 
			
		||||
	$(LIBS) -o $@
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										188
									
								
								Makefile-pre1.7.36
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								Makefile-pre1.7.36
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,188 @@
 | 
			
		||||
#
 | 
			
		||||
# Makefile for a Video Disk Recorder plugin
 | 
			
		||||
#
 | 
			
		||||
# $Id$
 | 
			
		||||
 | 
			
		||||
# The official name of this plugin.
 | 
			
		||||
# This name will be used in the '-P...' option of VDR to load the plugin.
 | 
			
		||||
# By default the main source file also carries this name.
 | 
			
		||||
# IMPORTANT: the presence of this macro is important for the Make.config
 | 
			
		||||
# file. So it must be defined, even if it is not used here!
 | 
			
		||||
#
 | 
			
		||||
PLUGIN = softhddevice
 | 
			
		||||
 | 
			
		||||
### The version number of this plugin (taken from the main source file):
 | 
			
		||||
 | 
			
		||||
VERSION = $(shell grep 'static const char \*const VERSION *=' $(PLUGIN).cpp | awk '{ print $$7 }' | sed -e 's/[";]//g')
 | 
			
		||||
GIT_REV = $(shell git describe --always 2>/dev/null)
 | 
			
		||||
 | 
			
		||||
### Configuration (edit this for your needs)
 | 
			
		||||
 | 
			
		||||
CONFIG := #-DDEBUG #-DOSD_DEBUG
 | 
			
		||||
CONFIG += -DAV_INFO -DAV_INFO_TIME=3000	# debug a/v sync
 | 
			
		||||
CONFIG += -DUSE_PIP			# PIP support
 | 
			
		||||
#CONFIG += -DHAVE_PTHREAD_NAME		# supports new pthread_setname_np
 | 
			
		||||
#CONFIG += -DNO_TS_AUDIO		# disable ts audio parser
 | 
			
		||||
#CONFIG += -DUSE_TS_VIDEO		# build new ts video parser
 | 
			
		||||
					# use ffmpeg libswresample
 | 
			
		||||
CONFIG += $(shell pkg-config --exists libswresample && echo "-DUSE_SWRESAMPLE")
 | 
			
		||||
CONFIG += -DUSE_SCREENSAVER		# use functions to disable screensaver
 | 
			
		||||
CONFIG += $(shell pkg-config --exists vdpau && echo "-DUSE_VDPAU")
 | 
			
		||||
CONFIG += $(shell pkg-config --exists libva && echo "-DUSE_VAAPI")
 | 
			
		||||
CONFIG += $(shell pkg-config --exists alsa && echo "-DUSE_ALSA")
 | 
			
		||||
CONFIG += -DUSE_OSS
 | 
			
		||||
 | 
			
		||||
### The C++ compiler and options:
 | 
			
		||||
 | 
			
		||||
CC	 ?= gcc
 | 
			
		||||
CXX	 ?= g++
 | 
			
		||||
CFLAGS	 ?=	-g -O2 -W -Wall -Wextra -Winit-self \
 | 
			
		||||
		-Wdeclaration-after-statement \
 | 
			
		||||
		-ftree-vectorize -msse3 -flax-vector-conversions -fPIC
 | 
			
		||||
CXXFLAGS ?= -g -O2 -W -Wall -Wextra -Werror=overloaded-virtual -fPIC
 | 
			
		||||
 | 
			
		||||
### The directory environment:
 | 
			
		||||
 | 
			
		||||
VDRDIR ?= ../../..
 | 
			
		||||
LIBDIR ?= ../../lib
 | 
			
		||||
TMPDIR ?= /tmp
 | 
			
		||||
 | 
			
		||||
### Make sure that necessary options are included:
 | 
			
		||||
 | 
			
		||||
-include $(VDRDIR)/Make.global
 | 
			
		||||
 | 
			
		||||
### Allow user defined options to overwrite defaults:
 | 
			
		||||
 | 
			
		||||
-include $(VDRDIR)/Make.config
 | 
			
		||||
 | 
			
		||||
### The version number of VDR's plugin API (taken from VDR's "config.h"):
 | 
			
		||||
 | 
			
		||||
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
 | 
			
		||||
 | 
			
		||||
### The name of the distribution archive:
 | 
			
		||||
 | 
			
		||||
ARCHIVE = $(PLUGIN)-$(VERSION)
 | 
			
		||||
PACKAGE = vdr-$(ARCHIVE)
 | 
			
		||||
 | 
			
		||||
### Includes, Defines and dependencies (add further entries here):
 | 
			
		||||
 | 
			
		||||
INCLUDES += -I$(VDRDIR)/include
 | 
			
		||||
 | 
			
		||||
DEFINES += $(CONFIG) -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' \
 | 
			
		||||
	$(if $(GIT_REV), -DGIT_REV='"$(GIT_REV)"')
 | 
			
		||||
 | 
			
		||||
_CFLAGS = $(DEFINES) $(INCLUDES) \
 | 
			
		||||
	$(shell pkg-config --cflags libavcodec) \
 | 
			
		||||
	`pkg-config --cflags x11 x11-xcb xcb xcb-xv xcb-shm xcb-dpms xcb-atom\
 | 
			
		||||
		xcb-screensaver xcb-randr xcb-glx xcb-icccm xcb-keysyms`\
 | 
			
		||||
	`pkg-config --cflags gl glu` \
 | 
			
		||||
	$(if $(findstring USE_SWRESAMPLE,$(CONFIG)), \
 | 
			
		||||
		$(shell pkg-config --cflags libswresample)) \
 | 
			
		||||
	$(if $(findstring USE_VAAPI,$(CONFIG)), \
 | 
			
		||||
		`pkg-config --cflags libva-x11 libva-glx libva`) \
 | 
			
		||||
	$(if $(findstring USE_ALSA,$(CONFIG)), \
 | 
			
		||||
		`pkg-config --cflags alsa`)
 | 
			
		||||
 | 
			
		||||
#override _CFLAGS  += -Werror
 | 
			
		||||
override CXXFLAGS += $(_CFLAGS)
 | 
			
		||||
override CFLAGS	  += $(_CFLAGS)
 | 
			
		||||
 | 
			
		||||
LIBS += -lrt \
 | 
			
		||||
	$(shell pkg-config --libs libavcodec) \
 | 
			
		||||
	`pkg-config --libs x11 x11-xcb xcb xcb-xv xcb-shm xcb-dpms xcb-atom\
 | 
			
		||||
		xcb-screensaver xcb-randr xcb-glx xcb-icccm xcb-keysyms`\
 | 
			
		||||
	`pkg-config --libs gl glu` \
 | 
			
		||||
	$(if $(findstring USE_SWRESAMPLE,$(CONFIG)), \
 | 
			
		||||
		$(shell pkg-config --libs libswresample)) \
 | 
			
		||||
	$(if $(findstring USE_VDPAU,$(CONFIG)), \
 | 
			
		||||
		`pkg-config --libs vdpau`) \
 | 
			
		||||
	$(if $(findstring USE_VAAPI,$(CONFIG)), \
 | 
			
		||||
		`pkg-config --libs libva-x11 libva-glx libva`) \
 | 
			
		||||
	$(if $(findstring USE_ALSA,$(CONFIG)), \
 | 
			
		||||
		`pkg-config --libs alsa`)
 | 
			
		||||
 | 
			
		||||
### The object files (add further files here):
 | 
			
		||||
 | 
			
		||||
OBJS = $(PLUGIN).o softhddev.o video.o audio.o codec.o ringbuffer.o
 | 
			
		||||
SRCS = $(wildcard $(OBJS:.o=.c)) $(PLUGIN).cpp
 | 
			
		||||
 | 
			
		||||
### The main target:
 | 
			
		||||
 | 
			
		||||
all: libvdr-$(PLUGIN).so i18n
 | 
			
		||||
 | 
			
		||||
### Implicit rules:
 | 
			
		||||
#
 | 
			
		||||
#%.o: %.cpp
 | 
			
		||||
#	$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
 | 
			
		||||
 | 
			
		||||
### Dependencies:
 | 
			
		||||
 | 
			
		||||
MAKEDEP = $(CC) -MM -MG
 | 
			
		||||
DEPFILE = .dependencies
 | 
			
		||||
$(DEPFILE): Makefile
 | 
			
		||||
	@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(SRCS) >$@
 | 
			
		||||
 | 
			
		||||
$(OBJS): Makefile
 | 
			
		||||
 | 
			
		||||
-include $(DEPFILE)
 | 
			
		||||
 | 
			
		||||
### Internationalization (I18N):
 | 
			
		||||
 | 
			
		||||
PODIR	  = po
 | 
			
		||||
LOCALEDIR = $(VDRDIR)/locale
 | 
			
		||||
I18Npo	  = $(wildcard $(PODIR)/*.po)
 | 
			
		||||
I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
 | 
			
		||||
I18Npot	  = $(PODIR)/$(PLUGIN).pot
 | 
			
		||||
 | 
			
		||||
%.mo: %.po
 | 
			
		||||
	msgfmt -c -o $@ $<
 | 
			
		||||
 | 
			
		||||
$(I18Npot): $(wildcard *.cpp) $(wildcard *.c)
 | 
			
		||||
	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP \
 | 
			
		||||
	-k_ -k_N --package-name=VDR --package-version=$(VDRVERSION) \
 | 
			
		||||
	--msgid-bugs-address='<see README>' -o $@ $^
 | 
			
		||||
 | 
			
		||||
%.po: $(I18Npot)
 | 
			
		||||
	msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
 | 
			
		||||
	@touch $@
 | 
			
		||||
 | 
			
		||||
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
 | 
			
		||||
	@mkdir -p $(dir $@)
 | 
			
		||||
	cp $< $@
 | 
			
		||||
 | 
			
		||||
.PHONY: i18n
 | 
			
		||||
i18n: $(I18Nmsgs) $(I18Npot)
 | 
			
		||||
 | 
			
		||||
### Targets:
 | 
			
		||||
 | 
			
		||||
libvdr-$(PLUGIN).so: $(OBJS) Makefile
 | 
			
		||||
	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -fPIC $(OBJS) -o $@ $(LIBS)
 | 
			
		||||
	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 | 
			
		||||
 | 
			
		||||
dist: $(I18Npo) clean
 | 
			
		||||
	@-rm -rf $(TMPDIR)/$(ARCHIVE)
 | 
			
		||||
	@mkdir $(TMPDIR)/$(ARCHIVE)
 | 
			
		||||
	@cp -a * $(TMPDIR)/$(ARCHIVE)
 | 
			
		||||
	@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
 | 
			
		||||
	@-rm -rf $(TMPDIR)/$(ARCHIVE)
 | 
			
		||||
	@echo Distribution package created as $(PACKAGE).tgz
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot
 | 
			
		||||
 | 
			
		||||
install:	libvdr-$(PLUGIN).so
 | 
			
		||||
	cp --remove-destination libvdr-$(PLUGIN).so \
 | 
			
		||||
		/usr/lib/vdr/plugins/libvdr-$(PLUGIN).so.$(APIVERSION)
 | 
			
		||||
 | 
			
		||||
HDRS=	$(wildcard *.h)
 | 
			
		||||
 | 
			
		||||
indent:
 | 
			
		||||
	for i in $(SRCS) $(HDRS); do \
 | 
			
		||||
		indent $$i; \
 | 
			
		||||
		unexpand -a $$i | sed -e s/constconst/const/ > $$i.up; \
 | 
			
		||||
		mv $$i.up $$i; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
video_test: video.c Makefile
 | 
			
		||||
	$(CC) -DVIDEO_TEST -DVERSION='"$(VERSION)"' $(CFLAGS) $(LDFLAGS) $< $(LIBS) \
 | 
			
		||||
	-o $@
 | 
			
		||||
							
								
								
									
										216
									
								
								README.txt
									
									
									
									
									
								
							
							
						
						
									
										216
									
								
								README.txt
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
@file README.txt		@brief A software HD output device for VDR
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2011, 2012 by Johns.  All Rights Reserved.
 | 
			
		||||
Copyright (c) 2011 - 2013 by Johns.  All Rights Reserved.
 | 
			
		||||
 | 
			
		||||
Contributor(s):
 | 
			
		||||
 | 
			
		||||
@@ -20,24 +20,26 @@ $Id$
 | 
			
		||||
 | 
			
		||||
A software and GPU emulated HD output device plugin for VDR.
 | 
			
		||||
 | 
			
		||||
    o Video VA-API/VA-API (with intel, nvidia and amd backend supported)
 | 
			
		||||
    o Video CPU/VA-API
 | 
			
		||||
    o Video VDPAU/VDPAU
 | 
			
		||||
    o Video CPU/VDPAU
 | 
			
		||||
    o Audio FFMpeg/Alsa/Analog
 | 
			
		||||
    o Audio FFMpeg/Alsa/Digital
 | 
			
		||||
    o Audio FFMpeg/OSS/Analog
 | 
			
		||||
    o HDMI/SPDIF Passthrough
 | 
			
		||||
    o VA-API bob software deinterlace
 | 
			
		||||
    o Auto-crop
 | 
			
		||||
    o Video decoder CPU / VA-API / VDPAU
 | 
			
		||||
    o Video output VA-API / VDPAU
 | 
			
		||||
    o Audio FFMpeg / Alsa / Analog
 | 
			
		||||
    o Audio FFMpeg / Alsa / Digital
 | 
			
		||||
    o Audio FFMpeg / OSS / Analog
 | 
			
		||||
    o HDMI/SPDIF pass-through
 | 
			
		||||
    o Software volume, compression, normalize and channel resample
 | 
			
		||||
    o YaepgHD support / new >1.7.33 VDR ScaleVideo API support
 | 
			
		||||
    o Software deinterlacer Bob (VA-API only)
 | 
			
		||||
    o Autocrop
 | 
			
		||||
    o Grab image (VDPAU only)
 | 
			
		||||
    o Suspend / Dettach
 | 
			
		||||
    o Letterbox, Stretch and Center cut-out video display modes
 | 
			
		||||
    o atmo light support with plugin http://github.com/durchflieger/DFAtmo
 | 
			
		||||
    o PIP (Picture-in-Picture) (VDPAU only)
 | 
			
		||||
 | 
			
		||||
    o planned: Video VA-API/Opengl
 | 
			
		||||
    o planned: Video VDPAU/Opengl
 | 
			
		||||
    o planned: Video CPU/Xv
 | 
			
		||||
    o planned: Video CPU/Opengl
 | 
			
		||||
    o planned: Video decoder VA-API Branch: vaapi-ext/staging
 | 
			
		||||
    o planned: Video output XvBA / Opengl / Xv
 | 
			
		||||
    o planned: VA-API grab image
 | 
			
		||||
    o planned: Improved Software Deinterlacer (yadif or/and ffmpeg filters)
 | 
			
		||||
    o planned: Video XvBA/XvBA
 | 
			
		||||
    o planned: atmo light support
 | 
			
		||||
 | 
			
		||||
To compile you must have the 'requires' installed.
 | 
			
		||||
 | 
			
		||||
@@ -55,8 +57,8 @@ Install:
 | 
			
		||||
 | 
			
		||||
	git clone git://projects.vdr-developer.org/vdr-plugin-softhddevice.git
 | 
			
		||||
	cd vdr-plugin-softhddevice
 | 
			
		||||
	make VDRDIR=<path-to-your-vdr-files> LIBDIR=.
 | 
			
		||||
	gentoo: make VDRDIR=/usr/include/vdr LIBDIR=.
 | 
			
		||||
	make
 | 
			
		||||
	make install
 | 
			
		||||
 | 
			
		||||
	2a) tarball
 | 
			
		||||
 | 
			
		||||
@@ -65,10 +67,11 @@ Install:
 | 
			
		||||
 | 
			
		||||
	tar vxf vdr-softhddevice-*.tar.bz2
 | 
			
		||||
	cd softhddevice-*
 | 
			
		||||
	make VDRDIR=<path-to-your-vdr-files> LIBDIR=.
 | 
			
		||||
	make
 | 
			
		||||
	make install
 | 
			
		||||
 | 
			
		||||
	You can edit Makefile to enable/disable VDPAU / VA-API / Alsa / OSS
 | 
			
		||||
	support.
 | 
			
		||||
	support.  The default is to autodetect as much as possible.
 | 
			
		||||
 | 
			
		||||
Setup:	environment
 | 
			
		||||
------
 | 
			
		||||
@@ -76,20 +79,28 @@ Setup:	environment
 | 
			
		||||
 | 
			
		||||
	DISPLAY=:0.0
 | 
			
		||||
		x11 display name
 | 
			
		||||
	NO_HW=1
 | 
			
		||||
		if set don't use the hardware decoders
 | 
			
		||||
	NO_MPEG_HW=1
 | 
			
		||||
		if set don't use the hardware decoder for mpeg1/2
 | 
			
		||||
	STUDIO_LEVELS=1
 | 
			
		||||
		if set use studio levels with vdpau (deprecated use setup)
 | 
			
		||||
 | 
			
		||||
    only if alsa is configured
 | 
			
		||||
	ALSA_DEVICE=default
 | 
			
		||||
		alsa PCM device name
 | 
			
		||||
	ALSA_AC3_DEVICE=
 | 
			
		||||
		alsa AC3/pass-though device name
 | 
			
		||||
	ALSA_PASSTHROUGH_DEVICE=
 | 
			
		||||
		alsa pass-though (AC3,EAC3,DTS,...) device name
 | 
			
		||||
	ALSA_MIXER=default
 | 
			
		||||
		alsa control device name
 | 
			
		||||
	ALSA_MIXER_CHANNEL=PCM
 | 
			
		||||
		alsa control channel name
 | 
			
		||||
 | 
			
		||||
    only if oss is configured
 | 
			
		||||
	OSS_AUDIODEV=/dev/dsp
 | 
			
		||||
		oss dsp device name
 | 
			
		||||
	OSS_AC3_AUDIODEV=
 | 
			
		||||
		oss AC3/pass-though device name
 | 
			
		||||
	OSS_PASSTHROUGHDEV=
 | 
			
		||||
		oss pass-though (AC3,EAC3,DTS,...) device name
 | 
			
		||||
	OSS_MIXERDEV=/dev/mixer
 | 
			
		||||
		oss mixer device name
 | 
			
		||||
	OSS_MIXER_CHANNEL=pcm
 | 
			
		||||
@@ -99,13 +110,18 @@ Setup: /etc/vdr/setup.conf
 | 
			
		||||
------
 | 
			
		||||
	Following is supported:
 | 
			
		||||
 | 
			
		||||
	softhddevice.MakePrimary = 1
 | 
			
		||||
	softhddevice.MakePrimary = 0
 | 
			
		||||
	0 = no change, 1 make softhddevice primary at start
 | 
			
		||||
 | 
			
		||||
	softhddevice.HideMainMenuEntry = 0
 | 
			
		||||
	0 = show softhddevice main menu entry, 1 = hide entry
 | 
			
		||||
 | 
			
		||||
	<res> of the next parameters is 567i, 720p, 1080i_fake or 1080i.
 | 
			
		||||
	softhddevice.Osd.Width = 0
 | 
			
		||||
	0 = auto (=display, unscaled) n = fixed osd size scaled for display
 | 
			
		||||
	softhddevice.Osd.Height = 0
 | 
			
		||||
	0 = auto (=display, unscaled) n = fixed osd size scaled for display
 | 
			
		||||
 | 
			
		||||
	<res> of the next parameters is 576i, 720p, 1080i_fake or 1080i.
 | 
			
		||||
	1080i_fake is 1280x1080 or 1440x1080
 | 
			
		||||
	1080i is "real" 1920x1080
 | 
			
		||||
 | 
			
		||||
@@ -119,6 +135,9 @@ Setup: /etc/vdr/setup.conf
 | 
			
		||||
	softhddevice.<res>.SkipChromaDeinterlace = 0
 | 
			
		||||
	0 = disabled, 1 = enabled (for slower cards, poor qualit<69>t)
 | 
			
		||||
 | 
			
		||||
	softhddevice.<res>.InverseTelecine = 0
 | 
			
		||||
	0 = disabled, 1 = enabled
 | 
			
		||||
 | 
			
		||||
	softhddevice.<res>.Denoise = 0
 | 
			
		||||
	0 .. 1000 noise reduction level (0 off, 1000 max)
 | 
			
		||||
 | 
			
		||||
@@ -126,13 +145,51 @@ Setup: /etc/vdr/setup.conf
 | 
			
		||||
	-1000 .. 1000 noise reduction level (0 off, -1000 max blur,
 | 
			
		||||
	    1000 max sharp)
 | 
			
		||||
 | 
			
		||||
	softhddevice.<res>.CutTopBottom = 0
 | 
			
		||||
	Cut 'n' pixels at at top and bottom of the video picture.
 | 
			
		||||
 | 
			
		||||
	softhddevice.<res>.CutLeftRight = 0
 | 
			
		||||
	Cut 'n' pixels at at left and right of the video picture.
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioDelay = 0
 | 
			
		||||
	+n or -n ms
 | 
			
		||||
	delay audio or delay video
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioPassthrough = 0
 | 
			
		||||
	0 = none, 1 = AC-3
 | 
			
		||||
	0 = none, 1 = PCM, 2 = MPA, 4 = AC-3, 8 = EAC-3, -X disable
 | 
			
		||||
 | 
			
		||||
	for AC-3 the pass-through device is used.
 | 
			
		||||
	for PCM/AC-3/EAC-3 the pass-through device is used and the audio
 | 
			
		||||
	stream is passed undecoded to the output device.
 | 
			
		||||
	z.b. 12 = AC-3+EAC-3, 13 = PCM+AC-3+EAC-3
 | 
			
		||||
	note: MPA/DTS/TrueHD/... aren't supported yet
 | 
			
		||||
	negative values disable passthrough
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioDownmix = 0
 | 
			
		||||
	0 = none, 1 = downmix
 | 
			
		||||
	Use ffmpeg/libav downmix of AC-3/EAC-3 audio to stereo.
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioSoftvol = 0
 | 
			
		||||
	0 = off, use hardware volume control
 | 
			
		||||
	1 = on, use software volume control
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioNormalize = 0
 | 
			
		||||
	0 = off, 1 = enable audio normalize
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioMaxNormalize = 0
 | 
			
		||||
	maximal volume factor/1000 of the normalize filter
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioCompression = 0
 | 
			
		||||
	0 = off, 1 = enable audio compression
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioMaxCompression = 0
 | 
			
		||||
	maximal volume factor/1000 of the compression filter
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioStereoDescent = 0
 | 
			
		||||
	reduce volume level (/1000) for stereo sources
 | 
			
		||||
 | 
			
		||||
	softhddevice.AudioBufferTime = 0
 | 
			
		||||
	0 = default (336 ms)
 | 
			
		||||
	1 - 1000 = size of the buffer in ms
 | 
			
		||||
 | 
			
		||||
	softhddevice.AutoCrop.Interval = 0
 | 
			
		||||
	0 disables auto-crop
 | 
			
		||||
@@ -146,6 +203,17 @@ Setup: /etc/vdr/setup.conf
 | 
			
		||||
	if detected crop area is too small, cut max 'n' pixels at top and
 | 
			
		||||
	bottom.
 | 
			
		||||
 | 
			
		||||
	softhddevice.Background = 0
 | 
			
		||||
	32bit RGBA background color
 | 
			
		||||
	(Red * 16777216 +  Green * 65536 + Blue * 256 + Alpha)
 | 
			
		||||
	or hex RRGGBBAA
 | 
			
		||||
	grey 127 * 16777216 + 127 * 65536 + 127 * 256 => 2139062016
 | 
			
		||||
	in the setup menu this is entered as (24bit RGB and 8bit Alpha)
 | 
			
		||||
	(Red * 65536 +  Green * 256 + Blue)
 | 
			
		||||
 | 
			
		||||
	softhddevice.StudioLevels = 0
 | 
			
		||||
		0 use PC levels (0-255) with vdpau.
 | 
			
		||||
		1 use studio levels (16-235) with vdpau.
 | 
			
		||||
 | 
			
		||||
	softhddevice.Suspend.Close = 0
 | 
			
		||||
	1 suspend closes x11 window, connection and audio device.
 | 
			
		||||
@@ -154,6 +222,53 @@ Setup: /etc/vdr/setup.conf
 | 
			
		||||
	softhddevice.Suspend.X11 = 0
 | 
			
		||||
	1 suspend stops X11 server (not working yet)
 | 
			
		||||
 | 
			
		||||
	softhddevice.60HzMode = 0
 | 
			
		||||
	0 disable 60Hz display mode
 | 
			
		||||
	1 enable 60Hz display mode
 | 
			
		||||
 | 
			
		||||
	softhddevice.SoftStartSync = 0
 | 
			
		||||
	0 disable soft start of audio/video sync
 | 
			
		||||
	1 enable soft start of audio/video sync
 | 
			
		||||
 | 
			
		||||
	softhddevice.BlackPicture = 0
 | 
			
		||||
	0 disable black picture during channel switch
 | 
			
		||||
	1 enable black picture during channel switch
 | 
			
		||||
 | 
			
		||||
	softhddevice.Video4to3DisplayFormat = 1
 | 
			
		||||
	0 pan and scan
 | 
			
		||||
	1 letter box
 | 
			
		||||
	2 center cut-out
 | 
			
		||||
 | 
			
		||||
	softhddevice.VideoOtherDisplayFormat = 1
 | 
			
		||||
	0 pan and scan
 | 
			
		||||
	1 pillar box
 | 
			
		||||
	2 center cut-out
 | 
			
		||||
 | 
			
		||||
	softhddevice.pip.X = 79
 | 
			
		||||
	softhddevice.pip.Y = 78
 | 
			
		||||
	softhddevice.pip.Width = 18
 | 
			
		||||
	softhddevice.pip.Height = 18
 | 
			
		||||
	PIP pip window position and size in percent.
 | 
			
		||||
 | 
			
		||||
	softhddevice.pip.VideoX = 0
 | 
			
		||||
	softhddevice.pip.VideoY = 0
 | 
			
		||||
	softhddevice.pip.VideoWidth = 0
 | 
			
		||||
	softhddevice.pip.VideoHeight = 0
 | 
			
		||||
	PIP video window position and size in percent.
 | 
			
		||||
 | 
			
		||||
	softhddevice.pip.Alt.X = 0
 | 
			
		||||
	softhddevice.pip.Alt.Y = 50
 | 
			
		||||
	softhddevice.pip.Alt.Width = 0
 | 
			
		||||
	softhddevice.pip.Alt.Height = 50
 | 
			
		||||
	PIP alternative pip window position and size in percent.
 | 
			
		||||
 | 
			
		||||
	softhddevice.pip.Alt.VideoX = 0
 | 
			
		||||
	softhddevice.pip.Alt.VideoY = 0
 | 
			
		||||
	softhddevice.pip.Alt.VideoWidth = 0
 | 
			
		||||
	softhddevice.pip.Alt.VideoHeight = 50
 | 
			
		||||
	PIP alternative video window position and size in percent.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Setup: /etc/vdr/remote.conf
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
@@ -187,8 +302,32 @@ Commandline:
 | 
			
		||||
SVDRP:
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
	Use 'svdrpsend.pl plug softhddevice HELP' to see the SVDRP commands
 | 
			
		||||
	help and which are supported by the plugin.
 | 
			
		||||
	Use 'svdrpsend.pl plug softhddevice HELP'
 | 
			
		||||
	or 'svdrpsend plug softhddevice HELP' to see the SVDRP commands help
 | 
			
		||||
	and which are supported by the plugin.
 | 
			
		||||
 | 
			
		||||
Keymacros:
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
	See keymacros.conf how to setup the macros.
 | 
			
		||||
 | 
			
		||||
	This are the supported key sequences:
 | 
			
		||||
 | 
			
		||||
	@softhddevice Blue 1 0		disable pass-through
 | 
			
		||||
	@softhddevice Blue 1 1		enable pass-through
 | 
			
		||||
	@softhddevice Blue 1 2		toggle pass-through
 | 
			
		||||
	@softhddevice Blue 1 3		decrease audio delay by 10ms
 | 
			
		||||
	@softhddevice Blue 1 4		increase audio delay by 10ms
 | 
			
		||||
	@softhddevice Blue 2 0		disable fullscreen
 | 
			
		||||
	@softhddevice Blue 2 1		enable fullscreen
 | 
			
		||||
	@softhddevice Blue 2 2		toggle fullscreen
 | 
			
		||||
	@softhddevice Blue 2 3		disable auto-crop
 | 
			
		||||
	@softhddevice Blue 2 4		enable auto-crop
 | 
			
		||||
	@softhddevice Blue 2 5		toggle auto-crop
 | 
			
		||||
	@softhddevice Blue 3 0		stretch 4:3 to 16:9
 | 
			
		||||
	@softhddevice Blue 3 1		letter box 4:3 in 16:9
 | 
			
		||||
	@softhddevice Blue 3 2		center cut-out 4:3 to 16:9
 | 
			
		||||
	@softhddevice Blue 3 9		rotate 4:3 to 16:9 zoom mode
 | 
			
		||||
 | 
			
		||||
Running:
 | 
			
		||||
--------
 | 
			
		||||
@@ -200,8 +339,18 @@ Warning:
 | 
			
		||||
--------
 | 
			
		||||
	libav is not supported, expect many bugs with it.
 | 
			
		||||
 | 
			
		||||
Known Bugs:
 | 
			
		||||
-----------
 | 
			
		||||
	VA-API doesn't v-sync h264 interlaced streams
 | 
			
		||||
	vdr-image not working
 | 
			
		||||
 | 
			
		||||
Requires:
 | 
			
		||||
---------
 | 
			
		||||
	media-video/vdr (version >=1.7.xx)
 | 
			
		||||
		Video Disk Recorder - turns a pc into a powerful set top box
 | 
			
		||||
		for DVB.
 | 
			
		||||
		http://www.tvdr.de/
 | 
			
		||||
 | 
			
		||||
	media-video/ffmpeg (version >=0.7)
 | 
			
		||||
		Complete solution to record, convert and stream audio and
 | 
			
		||||
		video. Includes libavcodec.
 | 
			
		||||
@@ -226,6 +375,11 @@ Requires:
 | 
			
		||||
	x11-libs/xvba-video
 | 
			
		||||
		XVBA Backend for Video Acceleration (VA) API
 | 
			
		||||
		http://www.freedesktop.org/wiki/Software/vaapi
 | 
			
		||||
 | 
			
		||||
	x11-libs/libvdpau
 | 
			
		||||
		VDPAU wrapper and trace libraries
 | 
			
		||||
		http://www.freedesktop.org/wiki/Software/VDPAU
 | 
			
		||||
 | 
			
		||||
	x11-libs/libxcb,
 | 
			
		||||
		X C-language Bindings library
 | 
			
		||||
		http://xcb.freedesktop.org
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										88
									
								
								Todo
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								Todo
									
									
									
									
									
								
							@@ -19,104 +19,114 @@ GNU Affero General Public License for more details.
 | 
			
		||||
$Id: $
 | 
			
		||||
 | 
			
		||||
missing:
 | 
			
		||||
    software deinterlace (yadif, ...)
 | 
			
		||||
    software decoder with software deinterlace
 | 
			
		||||
    zoom/fit-zoom 4:3 (SetVideoDisplayFormat, SetVideoFormat?)
 | 
			
		||||
    ITU BT601, ITU BT709 (HD), RGB studio levels (16-235)?
 | 
			
		||||
    more software deinterlace (yadif, ...)
 | 
			
		||||
    more software decoder with software deinterlace
 | 
			
		||||
    suspend output / energie saver: stop and restart X11
 | 
			
		||||
    suspend plugin didn't restore full-screen (is this wanted?)
 | 
			
		||||
    Option deinterlace off / deinterlace force!
 | 
			
		||||
    Make output drivers better modular (under construction).
 | 
			
		||||
 | 
			
		||||
crash:
 | 
			
		||||
    AudioPlayHandlerThread -> pthread_cond_wait
 | 
			
		||||
    ColorSpace aren't configurable with the gui.
 | 
			
		||||
    works for me: restart vdr not working, when started x11 was killed.
 | 
			
		||||
 | 
			
		||||
video:
 | 
			
		||||
    subtitle not cleared
 | 
			
		||||
    subtitle could be asyncron
 | 
			
		||||
    reduce warnings after channel switch
 | 
			
		||||
    grab image with hardware and better scaling support
 | 
			
		||||
    suspendoutput didn't show logo or black pictures
 | 
			
		||||
	(must detect video format to show image)
 | 
			
		||||
    hard channel switch
 | 
			
		||||
    skip line not configurable from setup menu.
 | 
			
		||||
    yaepghd changed position is lost on channel switch
 | 
			
		||||
    pause (live tv) has sometime problems with SAT1 HD Pro7 HD
 | 
			
		||||
    radio show black background
 | 
			
		||||
    radio no need to wait on video buffers
 | 
			
		||||
    starting with radio and own X11 server, shows no video
 | 
			
		||||
    some low-bandwidth tv channels have hiccups.
 | 
			
		||||
    check start with 24Hz display rate
 | 
			
		||||
    crash with ffmpeg without vaapi and vdpau.
 | 
			
		||||
    still-picture of PES recordings should use VideoMpegEnqueue.
 | 
			
		||||
 | 
			
		||||
vdpau:
 | 
			
		||||
    software deinterlace path not working.
 | 
			
		||||
    OSD looses transparency, during channel switch.
 | 
			
		||||
    OSD looses transparency, while moving cut marks.
 | 
			
		||||
 | 
			
		||||
libva:
 | 
			
		||||
    yaepghd (VaapiSetOutputPosition) support
 | 
			
		||||
    can associate only displayed part of osd
 | 
			
		||||
    grab image for va-api
 | 
			
		||||
    still many:
 | 
			
		||||
    remove stderr output of libva init
 | 
			
		||||
    still many: (workaround export NO_MPEG_HW=1)
 | 
			
		||||
    [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
 | 
			
		||||
    [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 ...
 | 
			
		||||
    missing OSD support for 3d SBS / Top-Bottom streams, like VPDAU.
 | 
			
		||||
    PIP support / multistream handling
 | 
			
		||||
    VA-AP VaapiCleanup crash after channel without video.
 | 
			
		||||
 | 
			
		||||
libva: branch vaapi-ext
 | 
			
		||||
    add support for vaapi-ext
 | 
			
		||||
libva: branch vaapi-ext / staging
 | 
			
		||||
    add support for vaapi-ext / staging
 | 
			
		||||
 | 
			
		||||
libva-intel-driver:
 | 
			
		||||
    deinterlace only supported with vaapi-ext
 | 
			
		||||
    1080i does no v-sync (sometimes correct working with vaapi-ext)
 | 
			
		||||
    OSD has sometimes wrong size (workaround written)
 | 
			
		||||
    software decoder needs UV swab
 | 
			
		||||
    sometimes software decoder deinterlace isn't working and 1080i channels
 | 
			
		||||
    show artefacts
 | 
			
		||||
 | 
			
		||||
libva-vdpau-driver:
 | 
			
		||||
    G210/GT520 OSD update too slow (needs hardware problem workaround)
 | 
			
		||||
    hangup on exit (VaapiDelDecoder -> VaapiCleanup
 | 
			
		||||
	-> vaDestroyContext -> pthread_rwlock_wrlock)
 | 
			
		||||
    with auto-crop OSD has wrong position
 | 
			
		||||
    OSD still has some problems with auto-crop and 4:3 zoom.
 | 
			
		||||
 | 
			
		||||
libva-xvba-driver:
 | 
			
		||||
    with auto-crop OSD has wrong position
 | 
			
		||||
 | 
			
		||||
x11:
 | 
			
		||||
    disable screensaver
 | 
			
		||||
    skip multiple configure-notify, handle only the last one.
 | 
			
		||||
    support embedded mode
 | 
			
		||||
 | 
			
		||||
audio:
 | 
			
		||||
    write TS -> PES parser, which feeds audio before the next start packet
 | 
			
		||||
    Combine alsa+oss ringbuffer code.
 | 
			
		||||
    Make alsa thread/polled and oss thread/polled output module runtime
 | 
			
		||||
    selectable.
 | 
			
		||||
    software volume support
 | 
			
		||||
    Mute should do a real mute and not only set volume to zero.
 | 
			
		||||
    Starting suspended and muted, didn't register the mute.
 | 
			
		||||
    Relaxed audio sync checks at end of packet and already in sync
 | 
			
		||||
    samplerate problem resume/suspend.
 | 
			
		||||
    only wait for video start, if video is running.
 | 
			
		||||
    Not primary device, don't use and block audio/video.
 | 
			
		||||
    multiple open of audio device, reduce them.
 | 
			
		||||
    Not all channel conversions are written (f.e. 2->3 ... 5->6 ...)
 | 
			
		||||
 | 
			
		||||
audio/alsa:
 | 
			
		||||
    better downmix of >2 channels on 2 channel hardware
 | 
			
		||||
    remix support of unsupported sample rates
 | 
			
		||||
    libav supports only resample of mono to 2 channels
 | 
			
		||||
    ffmpeg didn't support resample of 5 to 2 channels
 | 
			
		||||
 | 
			
		||||
audio/oss:
 | 
			
		||||
    alsa oss emulation mixer "pcm" not working
 | 
			
		||||
    oss4 mixer channel not working
 | 
			
		||||
    ring buffer overflow with alsa oss emulation
 | 
			
		||||
 | 
			
		||||
HDMI/SPDIF Passthrough:
 | 
			
		||||
    only AC-3 written
 | 
			
		||||
    Channels are wrong setup, if changing setting during operation.
 | 
			
		||||
    support oss pass-through
 | 
			
		||||
 | 
			
		||||
playback of recording
 | 
			
		||||
    pause is not reset, when replay exit
 | 
			
		||||
    replay/pause need 100% cpu
 | 
			
		||||
    pause is not reset, when replay exit (fixed?)
 | 
			
		||||
    replay/pause need 100% cpu (fixed?)
 | 
			
		||||
 | 
			
		||||
plugins:
 | 
			
		||||
    mp3 plugin needs 100% cpu (bad ::Poll)
 | 
			
		||||
 | 
			
		||||
setup:
 | 
			
		||||
    Setup of decoder type.
 | 
			
		||||
    Setup of output type.
 | 
			
		||||
    Setup of display type.
 | 
			
		||||
    Setup 4:3 zoom type
 | 
			
		||||
    Some setup parameters are not used until restart.
 | 
			
		||||
	Can a notice be added to the setup menu?
 | 
			
		||||
 | 
			
		||||
unsorted:
 | 
			
		||||
    Menu -> Setup -> Plugins -> skingenigmang -> General
 | 
			
		||||
	-> Try 8bpp single area: no, has missing parts.
 | 
			
		||||
    stoping vdr while plugin is suspended opens and closes a window.
 | 
			
		||||
    svdrp prim: support plugin names for device numbers.
 | 
			
		||||
    Workaround exists: hangup PipVideoStream -> Vdpau_get_format -> xcb -> poll
 | 
			
		||||
	+ lock DecoderLockMutex
 | 
			
		||||
 | 
			
		||||
future features (not planed for 1.0 - 1.5)
 | 
			
		||||
 | 
			
		||||
    video out with xv
 | 
			
		||||
    video out with opengl
 | 
			
		||||
    video out with xvba
 | 
			
		||||
    software decoder for xv / opengl
 | 
			
		||||
    atmolight support
 | 
			
		||||
    multistream handling
 | 
			
		||||
    pip support
 | 
			
		||||
    save and use auto-crop with channel zapping
 | 
			
		||||
 | 
			
		||||
    upmix stereo to AC-3
 | 
			
		||||
    upmix stereo to AC-3 (supported by alsa plugin)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								audio.h
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								audio.h
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
///
 | 
			
		||||
///	@file audio.h		@brief Audio module headerfile
 | 
			
		||||
///
 | 
			
		||||
///	Copyright (c) 2009 - 2012 by Johns.  All Rights Reserved.
 | 
			
		||||
///	Copyright (c) 2009 - 2013 by Johns.  All Rights Reserved.
 | 
			
		||||
///
 | 
			
		||||
///	Contributor(s):
 | 
			
		||||
///
 | 
			
		||||
@@ -31,20 +31,34 @@ extern void AudioEnqueue(const void *, int);	///< buffer audio samples
 | 
			
		||||
extern void AudioFlushBuffers(void);	///< flush audio buffers
 | 
			
		||||
extern void AudioPoller(void);		///< poll audio events/handling
 | 
			
		||||
extern int AudioFreeBytes(void);	///< free bytes in audio output
 | 
			
		||||
 | 
			
		||||
//extern int AudioUsedBytes(void);	///< used bytes in audio output
 | 
			
		||||
extern uint64_t AudioGetDelay(void);	///< get current audio delay
 | 
			
		||||
extern int AudioUsedBytes(void);	///< used bytes in audio output
 | 
			
		||||
extern int64_t AudioGetDelay(void);	///< get current audio delay
 | 
			
		||||
extern void AudioSetClock(int64_t);	///< set audio clock base
 | 
			
		||||
extern int64_t AudioGetClock();		///< get current audio clock
 | 
			
		||||
extern void AudioSetVolume(int);	///< set volume
 | 
			
		||||
extern int AudioSetup(int *, int *, int);	///< setup audio output
 | 
			
		||||
 | 
			
		||||
//extern void AudioPlay(void);		///< play audio
 | 
			
		||||
//extern void AudioPause(void);		///< pause audio
 | 
			
		||||
extern void AudioPlay(void);		///< play audio
 | 
			
		||||
extern void AudioPause(void);		///< pause audio
 | 
			
		||||
 | 
			
		||||
extern void AudioSetBufferTime(int);	///< set audio buffer time
 | 
			
		||||
extern void AudioSetSoftvol(int);	///< enable/disable softvol
 | 
			
		||||
extern void AudioSetNormalize(int, int);	///< set normalize parameters
 | 
			
		||||
extern void AudioSetCompression(int, int);	///< set compression parameters
 | 
			
		||||
extern void AudioSetStereoDescent(int);	///< set stereo loudness descent
 | 
			
		||||
 | 
			
		||||
extern void AudioSetDevice(const char *);	///< set PCM audio device
 | 
			
		||||
extern void AudioSetDeviceAC3(const char *);	///< set Passthrough device
 | 
			
		||||
 | 
			
		||||
    /// set pass-through device
 | 
			
		||||
extern void AudioSetPassthroughDevice(const char *);
 | 
			
		||||
extern void AudioSetChannel(const char *);	///< set mixer channel
 | 
			
		||||
extern void AudioInit(void);		///< setup audio module
 | 
			
		||||
extern void AudioExit(void);		///< cleanup and exit audio module
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
//	Variables
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
extern char AudioAlsaDriverBroken;	///< disable broken driver message
 | 
			
		||||
 | 
			
		||||
/// @}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								codec.h
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								codec.h
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
///
 | 
			
		||||
///	@file codec.h	@brief Codec module headerfile
 | 
			
		||||
///
 | 
			
		||||
///	Copyright (c) 2009 - 2012 by Johns.  All Rights Reserved.
 | 
			
		||||
///	Copyright (c) 2009 - 2013 by Johns.  All Rights Reserved.
 | 
			
		||||
///
 | 
			
		||||
///	Contributor(s):
 | 
			
		||||
///
 | 
			
		||||
@@ -23,6 +23,16 @@
 | 
			
		||||
/// @addtogroup Codec
 | 
			
		||||
/// @{
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
//	Defines
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#define CodecPCM 0x01			///< PCM bit mask
 | 
			
		||||
#define CodecMPA 0x02			///< MPA bit mask (planned)
 | 
			
		||||
#define CodecAC3 0x04			///< AC-3 bit mask
 | 
			
		||||
#define CodecEAC3 0x08			///< EAC-3 bit mask
 | 
			
		||||
#define CodecDTS 0x10			///< DTS bit mask (planned)
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
//	Typedefs
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
@@ -67,6 +77,15 @@ extern void CodecAudioOpen(AudioDecoder *, const char *, int);
 | 
			
		||||
    /// Close audio codec.
 | 
			
		||||
extern void CodecAudioClose(AudioDecoder *);
 | 
			
		||||
 | 
			
		||||
    /// Set audio drift correction.
 | 
			
		||||
extern void CodecSetAudioDrift(int);
 | 
			
		||||
 | 
			
		||||
    /// Set audio pass-through.
 | 
			
		||||
extern void CodecSetAudioPassthrough(int);
 | 
			
		||||
 | 
			
		||||
    /// Set audio downmix.
 | 
			
		||||
extern void CodecSetAudioDownmix(int);
 | 
			
		||||
 | 
			
		||||
    /// Decode an audio packet.
 | 
			
		||||
extern void CodecAudioDecode(AudioDecoder *, const AVPacket *);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								misc.h
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								misc.h
									
									
									
									
									
								
							@@ -107,6 +107,31 @@ static inline void Syslog(const int level, const char *format, ...)
 | 
			
		||||
#define Debug(level, fmt...)		/* disabled */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef AV_NOPTS_VALUE
 | 
			
		||||
#define AV_NOPTS_VALUE INT64_C(0x8000000000000000)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
**	Nice time-stamp string.
 | 
			
		||||
**
 | 
			
		||||
**	@param ts	dvb time stamp
 | 
			
		||||
*/
 | 
			
		||||
static inline const char *Timestamp2String(int64_t ts)
 | 
			
		||||
{
 | 
			
		||||
    static char buf[4][16];
 | 
			
		||||
    static int idx;
 | 
			
		||||
 | 
			
		||||
    if (ts == (int64_t) AV_NOPTS_VALUE) {
 | 
			
		||||
	return "--:--:--.---";
 | 
			
		||||
    }
 | 
			
		||||
    idx = (idx + 1) % 3;
 | 
			
		||||
    snprintf(buf[idx], sizeof(buf[idx]), "%2d:%02d:%02d.%03d",
 | 
			
		||||
	(int)(ts / (90 * 3600000)), (int)((ts / (90 * 60000)) % 60),
 | 
			
		||||
	(int)((ts / (90 * 1000)) % 60), (int)((ts / 90) % 1000));
 | 
			
		||||
 | 
			
		||||
    return buf[idx];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
**	Get ticks in ms.
 | 
			
		||||
**
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1366
									
								
								po/de_DE.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1366
									
								
								po/de_DE.po
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										20
									
								
								ringbuffer.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ringbuffer.c
									
									
									
									
									
								
							@@ -48,6 +48,18 @@ struct _ring_buffer_
 | 
			
		||||
    atomic_t Filled;			///< how many of the buffer is used
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
**	Reset ring buffer pointers.
 | 
			
		||||
**
 | 
			
		||||
**	@param rb	Ring buffer to reset read/write pointers.
 | 
			
		||||
*/
 | 
			
		||||
void RingBufferReset(RingBuffer * rb)
 | 
			
		||||
{
 | 
			
		||||
    rb->ReadPointer = rb->Buffer;
 | 
			
		||||
    rb->WritePointer = rb->Buffer;
 | 
			
		||||
    atomic_set(&rb->Filled, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
**	Allocate a new ring buffer.
 | 
			
		||||
**
 | 
			
		||||
@@ -69,10 +81,8 @@ RingBuffer *RingBufferNew(size_t size)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rb->Size = size;
 | 
			
		||||
    rb->ReadPointer = rb->Buffer;
 | 
			
		||||
    rb->WritePointer = rb->Buffer;
 | 
			
		||||
    rb->BufferEnd = rb->Buffer + size;
 | 
			
		||||
    atomic_set(&rb->Filled, 0);
 | 
			
		||||
    RingBufferReset(rb);
 | 
			
		||||
 | 
			
		||||
    return rb;
 | 
			
		||||
}
 | 
			
		||||
@@ -89,7 +99,7 @@ void RingBufferDel(RingBuffer * rb)
 | 
			
		||||
/**
 | 
			
		||||
**	Advance write pointer in ring buffer.
 | 
			
		||||
**
 | 
			
		||||
**	@param rb	Ring buffer to adance write pointer.
 | 
			
		||||
**	@param rb	Ring buffer to advance write pointer.
 | 
			
		||||
**	@param cnt	Number of bytes to be adavanced.
 | 
			
		||||
**
 | 
			
		||||
**	@returns	Number of bytes that could be advanced in ring buffer.
 | 
			
		||||
@@ -198,7 +208,7 @@ size_t RingBufferGetWritePointer(RingBuffer * rb, void **wp)
 | 
			
		||||
/**
 | 
			
		||||
**	Advance read pointer in ring buffer.
 | 
			
		||||
**
 | 
			
		||||
**	@param rb	Ring buffer to adance read pointer.
 | 
			
		||||
**	@param rb	Ring buffer to advance read pointer.
 | 
			
		||||
**	@param cnt	Number of bytes to be advanced.
 | 
			
		||||
**
 | 
			
		||||
**	@returns	Number of bytes that could be advanced in ring buffer.
 | 
			
		||||
 
 | 
			
		||||
@@ -23,13 +23,16 @@
 | 
			
		||||
/// @addtogroup Ringbuffer
 | 
			
		||||
/// @{
 | 
			
		||||
 | 
			
		||||
    ///< ring buffer typedef
 | 
			
		||||
    /// ring buffer typedef
 | 
			
		||||
typedef struct _ring_buffer_ RingBuffer;
 | 
			
		||||
 | 
			
		||||
    ///< create new ring buffer
 | 
			
		||||
    /// reset ring buffer pointers
 | 
			
		||||
extern void RingBufferReset(RingBuffer *);
 | 
			
		||||
 | 
			
		||||
    /// create new ring buffer
 | 
			
		||||
extern RingBuffer *RingBufferNew(size_t);
 | 
			
		||||
 | 
			
		||||
    ///< free ring buffer
 | 
			
		||||
    /// free ring buffer
 | 
			
		||||
extern void RingBufferDel(RingBuffer *);
 | 
			
		||||
 | 
			
		||||
    /// write into ring buffer
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3041
									
								
								softhddev.c
									
									
									
									
									
								
							
							
						
						
									
										3041
									
								
								softhddev.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										36
									
								
								softhddev.h
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								softhddev.h
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
///
 | 
			
		||||
///	@file softhddev.h	@brief software HD device plugin header file.
 | 
			
		||||
///
 | 
			
		||||
///	Copyright (c) 2011 - 2012 by Johns.  All Rights Reserved.
 | 
			
		||||
///	Copyright (c) 2011 - 2013 by Johns.  All Rights Reserved.
 | 
			
		||||
///
 | 
			
		||||
///	Contributor(s):
 | 
			
		||||
///
 | 
			
		||||
@@ -37,8 +37,8 @@ extern "C"
 | 
			
		||||
 | 
			
		||||
    /// C plugin play audio packet
 | 
			
		||||
    extern int PlayAudio(const uint8_t *, int, uint8_t);
 | 
			
		||||
    /// C plugin mute audio
 | 
			
		||||
    extern void Mute(void);
 | 
			
		||||
    /// C plugin play TS audio packet
 | 
			
		||||
    extern int PlayTsAudio(const uint8_t *, int);
 | 
			
		||||
    /// C plugin set audio volume
 | 
			
		||||
    extern void SetVolumeDevice(int);
 | 
			
		||||
 | 
			
		||||
@@ -50,13 +50,21 @@ extern "C"
 | 
			
		||||
    extern uint8_t *GrabImage(int *, int, int, int, int);
 | 
			
		||||
 | 
			
		||||
    /// C plugin set play mode
 | 
			
		||||
    extern void SetPlayMode(void);
 | 
			
		||||
    extern int SetPlayMode(int);
 | 
			
		||||
    /// C plugin get current system time counter
 | 
			
		||||
    extern int64_t GetSTC(void);
 | 
			
		||||
    /// C plugin get video stream size and aspect
 | 
			
		||||
    extern void GetVideoSize(int *, int *, double *);
 | 
			
		||||
    /// C plugin set trick speed
 | 
			
		||||
    extern void TrickSpeed(int);
 | 
			
		||||
    /// C plugin clears all video and audio data from the device
 | 
			
		||||
    extern void Clear(void);
 | 
			
		||||
    /// C plugin sets the device into play mode
 | 
			
		||||
    extern void Play(void);
 | 
			
		||||
    /// C plugin sets the device into "freeze frame" mode
 | 
			
		||||
    extern void Freeze(void);
 | 
			
		||||
    /// C plugin mute audio
 | 
			
		||||
    extern void Mute(void);
 | 
			
		||||
    /// C plugin display I-frame as a still picture.
 | 
			
		||||
    extern void StillPicture(const uint8_t *, int);
 | 
			
		||||
    /// C plugin poll if ready
 | 
			
		||||
@@ -72,9 +80,11 @@ extern "C"
 | 
			
		||||
    /// C plugin exit + cleanup
 | 
			
		||||
    extern void SoftHdDeviceExit(void);
 | 
			
		||||
    /// C plugin start code
 | 
			
		||||
    extern void Start(void);
 | 
			
		||||
    extern int Start(void);
 | 
			
		||||
    /// C plugin stop code
 | 
			
		||||
    extern void Stop(void);
 | 
			
		||||
    /// C plugin house keeping
 | 
			
		||||
    extern void Housekeeping(void);
 | 
			
		||||
    /// C plugin main thread hook
 | 
			
		||||
    extern void MainThreadHook(void);
 | 
			
		||||
 | 
			
		||||
@@ -82,6 +92,22 @@ extern "C"
 | 
			
		||||
    extern void Suspend(int, int, int);
 | 
			
		||||
    /// Resume plugin
 | 
			
		||||
    extern void Resume(void);
 | 
			
		||||
 | 
			
		||||
    /// Get decoder statistics
 | 
			
		||||
    extern void GetStats(int *, int *, int *, int *);
 | 
			
		||||
    /// C plugin scale video
 | 
			
		||||
    extern void ScaleVideo(int, int, int, int);
 | 
			
		||||
 | 
			
		||||
    /// Set Pip position
 | 
			
		||||
    extern void PipSetPosition(int, int, int, int, int, int, int, int);
 | 
			
		||||
    /// Pip start
 | 
			
		||||
    extern void PipStart(int, int, int, int, int, int, int, int);
 | 
			
		||||
    /// Pip stop
 | 
			
		||||
    extern void PipStop(void);
 | 
			
		||||
    /// Pip play video packet
 | 
			
		||||
    extern int PipPlayVideo(const uint8_t *, int);
 | 
			
		||||
 | 
			
		||||
    extern const char *X11DisplayName;	///< x11 display name
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2690
									
								
								softhddevice.cpp
									
									
									
									
									
								
							
							
						
						
									
										2690
									
								
								softhddevice.cpp
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										65
									
								
								softhddevice_service.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								softhddevice_service.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
///
 | 
			
		||||
///	@file softhddev_service.h @brief software HD device service header file.
 | 
			
		||||
///
 | 
			
		||||
///	Copyright (c) 2012 by durchflieger.  All Rights Reserved.
 | 
			
		||||
///
 | 
			
		||||
///	Contributor(s):
 | 
			
		||||
///
 | 
			
		||||
///	License: AGPLv3
 | 
			
		||||
///
 | 
			
		||||
///	This program is free software: you can redistribute it and/or modify
 | 
			
		||||
///	it under the terms of the GNU Affero General Public License as
 | 
			
		||||
///	published by the Free Software Foundation, either version 3 of the
 | 
			
		||||
///	License.
 | 
			
		||||
///
 | 
			
		||||
///	This program is distributed in the hope that it will be useful,
 | 
			
		||||
///	but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
///	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
///	GNU Affero General Public License for more details.
 | 
			
		||||
///
 | 
			
		||||
///	$Id$
 | 
			
		||||
//////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define ATMO_GRAB_SERVICE	"SoftHDDevice-AtmoGrabService-v1.0"
 | 
			
		||||
#define ATMO1_GRAB_SERVICE	"SoftHDDevice-AtmoGrabService-v1.1"
 | 
			
		||||
#define OSD_3DMODE_SERVICE	"SoftHDDevice-Osd3DModeService-v1.0"
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
{ GRAB_IMG_RGBA_FORMAT_B8G8R8A8 };
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
    int structSize;
 | 
			
		||||
 | 
			
		||||
    // request data
 | 
			
		||||
    int analyseSize;
 | 
			
		||||
    int clippedOverscan;
 | 
			
		||||
 | 
			
		||||
    // reply data
 | 
			
		||||
    int imgType;
 | 
			
		||||
    int imgSize;
 | 
			
		||||
    int width;
 | 
			
		||||
    int height;
 | 
			
		||||
    void *img;
 | 
			
		||||
} SoftHDDevice_AtmoGrabService_v1_0_t;
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
    int Mode;
 | 
			
		||||
} SoftHDDevice_Osd3DModeService_v1_0_t;
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
    // request/reply data
 | 
			
		||||
 | 
			
		||||
    int width;
 | 
			
		||||
    int height;
 | 
			
		||||
 | 
			
		||||
    // reply data
 | 
			
		||||
 | 
			
		||||
    int size;
 | 
			
		||||
 | 
			
		||||
    void *img;
 | 
			
		||||
} SoftHDDevice_AtmoGrabService_v1_1_t;
 | 
			
		||||
							
								
								
									
										74
									
								
								vdr-softhddevice-9999-pre1.7.36.ebuild
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								vdr-softhddevice-9999-pre1.7.36.ebuild
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
# Copyright 1999-2012 Gentoo Foundation
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
# $Header: $
 | 
			
		||||
 | 
			
		||||
EAPI="4"
 | 
			
		||||
 | 
			
		||||
inherit eutils vdr-plugin-2
 | 
			
		||||
 | 
			
		||||
if [[ ${PV} == "9999" ]] ; then
 | 
			
		||||
		inherit git-2
 | 
			
		||||
		EGIT_REPO_URI="git://projects.vdr-developer.org/vdr-plugin-softhddevice.git"
 | 
			
		||||
else
 | 
			
		||||
		SRC_URI="http://projects.vdr-developer.org/attachments/download/838/${P}.tgz"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DESCRIPTION="A software and GPU emulated HD output device plugin for VDR."
 | 
			
		||||
HOMEPAGE="http://projects.vdr-developer.org/projects/show/plg-softhddevice"
 | 
			
		||||
SRC_URI=""
 | 
			
		||||
 | 
			
		||||
LICENSE="AGPL-3"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
KEYWORDS="~x86 ~amd64"
 | 
			
		||||
IUSE="vaapi vdpau alsa oss yaepg opengl debug"
 | 
			
		||||
 | 
			
		||||
DEPEND=">=x11-libs/libxcb-1.8
 | 
			
		||||
		x11-libs/xcb-util
 | 
			
		||||
		x11-libs/xcb-util-wm
 | 
			
		||||
		x11-libs/xcb-util-keysyms
 | 
			
		||||
		x11-libs/xcb-util-renderutil
 | 
			
		||||
		x11-libs/libX11
 | 
			
		||||
		opengl? ( virtual/opengl )
 | 
			
		||||
		>=virtual/ffmpeg-0.7
 | 
			
		||||
		sys-devel/gettext
 | 
			
		||||
		sys-devel/make
 | 
			
		||||
		dev-util/pkgconfig
 | 
			
		||||
		yaepg? ( >=media-video/vdr-1.7.23[yaepg] )
 | 
			
		||||
		!yaepg? ( >=media-video/vdr-1.7.23 )
 | 
			
		||||
		vdpau? ( x11-libs/libvdpau virtual/ffmpeg[vdpau] )
 | 
			
		||||
		vaapi? ( x11-libs/libva virtual/ffmpeg[vaapi] )
 | 
			
		||||
		alsa? ( media-libs/alsa-lib )
 | 
			
		||||
		oss? ( sys-kernel/linux-headers )
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
src_prepare() {
 | 
			
		||||
		vdr-plugin-2_src_prepare
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_compile() {
 | 
			
		||||
		local myconf
 | 
			
		||||
 | 
			
		||||
		myconf="-DHAVE_PTHREAD_NAME -DAV_INFO -DAV_INFO_TIME=15000"
 | 
			
		||||
		use vdpau && myconf="${myconf} -DUSE_VDPAU"
 | 
			
		||||
		use vaapi && myconf="${myconf} -DUSE_VAAPI"
 | 
			
		||||
		use alsa && myconf="${myconf} -DUSE_ALSA"
 | 
			
		||||
		use oss && myconf="${myconf} -DUSE_OSS"
 | 
			
		||||
		use debug && myconf="${myconf} -DDEBUG"
 | 
			
		||||
 | 
			
		||||
		#vdr-plugin-2_src_compile
 | 
			
		||||
		cd "${S}"
 | 
			
		||||
 | 
			
		||||
		BUILD_TARGETS=${BUILD_TARGETS:-${VDRPLUGIN_MAKE_TARGET:-all}}
 | 
			
		||||
 | 
			
		||||
		emake ${BUILD_PARAMS} CONFIG="${myconf}" \
 | 
			
		||||
				${BUILD_TARGETS} \
 | 
			
		||||
				LOCALEDIR="${TMP_LOCALE_DIR}" \
 | 
			
		||||
				LIBDIR="${S}" \
 | 
			
		||||
				TMPDIR="${T}" \
 | 
			
		||||
		|| die "emake failed"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_install() {
 | 
			
		||||
		vdr-plugin-2_src_install
 | 
			
		||||
}
 | 
			
		||||
@@ -2,73 +2,64 @@
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
# $Header: $
 | 
			
		||||
 | 
			
		||||
EAPI="3"
 | 
			
		||||
EAPI="5"
 | 
			
		||||
 | 
			
		||||
inherit eutils vdr-plugin
 | 
			
		||||
inherit flag-o-matic toolchain-funcs vdr-plugin-2 eutils
 | 
			
		||||
 | 
			
		||||
if [[ ${PV} == "9999" ]] ; then
 | 
			
		||||
		inherit git-2
 | 
			
		||||
		EGIT_REPO_URI="git://projects.vdr-developer.org/vdr-plugin-softhddevice.git"
 | 
			
		||||
if [ "${PV}" = "9999" ]; then
 | 
			
		||||
	inherit git-2
 | 
			
		||||
	EGIT_REPO_URI="git://projects.vdr-developer.org/vdr-plugin-softhddevice.git"
 | 
			
		||||
	KEYWORDS=""
 | 
			
		||||
else
 | 
			
		||||
		SRC_URI="http://projects.vdr-developer.org/attachments/download/838/${P}.tgz"
 | 
			
		||||
	SRC_URI="mirror://vdr-developerorg/889/${P}.tgz"
 | 
			
		||||
	KEYWORDS="~amd64 ~x86"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DESCRIPTION="A software and GPU emulated HD output device plugin for VDR."
 | 
			
		||||
DESCRIPTION="Software and GPU emulated HD output device plugin for VDR"
 | 
			
		||||
HOMEPAGE="http://projects.vdr-developer.org/projects/show/plg-softhddevice"
 | 
			
		||||
SRC_URI=""
 | 
			
		||||
 | 
			
		||||
LICENSE="AGPL-3"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
KEYWORDS="~x86 ~amd64"
 | 
			
		||||
IUSE="vaapi vdpau alsa oss yaepg opengl jpeg"
 | 
			
		||||
IUSE="alsa oss vaapi vdpau yaepg xscreensaver debug"
 | 
			
		||||
 | 
			
		||||
DEPEND=">=x11-libs/libxcb-1.7
 | 
			
		||||
		x11-libs/xcb-util
 | 
			
		||||
		x11-libs/xcb-util-wm
 | 
			
		||||
		x11-libs/xcb-util-keysyms
 | 
			
		||||
		x11-libs/xcb-util-renderutil
 | 
			
		||||
		x11-libs/libX11
 | 
			
		||||
		opengl? ( virtual/opengl )
 | 
			
		||||
		>=media-video/ffmpeg-0.7
 | 
			
		||||
		sys-devel/gettext
 | 
			
		||||
		sys-devel/make
 | 
			
		||||
		dev-util/pkgconfig
 | 
			
		||||
		yaepg? ( >=media-video/vdr-1.7[yaepg] )
 | 
			
		||||
		!yaepg? ( >=media-video/vdr-1.7 )
 | 
			
		||||
		vdpau? ( x11-libs/libvdpau )
 | 
			
		||||
		vaapi? ( x11-libs/libva )
 | 
			
		||||
		alsa? ( media-libs/alsa-lib )
 | 
			
		||||
		oss? ( sys-kernel/linux-headers )
 | 
			
		||||
		jpeg? ( virtual/jpeg )
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
src_prepare() {
 | 
			
		||||
		vdr-plugin_src_prepare
 | 
			
		||||
}
 | 
			
		||||
RDEPEND=">=media-video/vdr-1.7
 | 
			
		||||
	>=virtual/ffmpeg-0.7[vdpau?,vaapi?]
 | 
			
		||||
	x11-libs/libX11
 | 
			
		||||
	>=x11-libs/libxcb-1.8
 | 
			
		||||
	x11-libs/xcb-util-wm
 | 
			
		||||
	alsa? ( media-libs/alsa-lib )
 | 
			
		||||
	vdpau? ( x11-libs/libvdpau )
 | 
			
		||||
	vaapi? ( x11-libs/libva )
 | 
			
		||||
	alsa? ( media-libs/alsa-lib )
 | 
			
		||||
	yaepg? ( >=media-video/vdr-1.7[yaepg] )"
 | 
			
		||||
DEPEND="${RDEPEND}
 | 
			
		||||
	x11-libs/xcb-util
 | 
			
		||||
	sys-devel/gettext
 | 
			
		||||
	virtual/pkgconfig
 | 
			
		||||
	oss? ( sys-kernel/linux-headers )"
 | 
			
		||||
 | 
			
		||||
src_compile() {
 | 
			
		||||
		local myconf
 | 
			
		||||
	local myconf
 | 
			
		||||
 | 
			
		||||
		myconf="-DHAVE_PTHREAD_NAME"
 | 
			
		||||
		use vdpau && myconf="${myconf} -DUSE_VDPAU"
 | 
			
		||||
		use vaapi && myconf="${myconf} -DUSE_VAAPI"
 | 
			
		||||
		use alsa && myconf="${myconf} -DUSE_ALSA"
 | 
			
		||||
		use oss && myconf="${myconf} -DUSE_OSS"
 | 
			
		||||
		use jpeg && myconf="${myconf} -DUSE_JPEG"
 | 
			
		||||
	myconf+=" ALSA=$(usex alsa 1 0)"
 | 
			
		||||
	myconf+=" OSS=$(usex oss 1 0)"
 | 
			
		||||
	myconf+=" VDPAU=$(usex vdpau 1 0)"
 | 
			
		||||
	myconf+=" VAAPI=$(usex vaapi 1 0)"
 | 
			
		||||
	myconf+=" SCREENSAVER=$(usex xscreensaver 1 0)"
 | 
			
		||||
	if has_version ">=media-video/ffmpeg-0.8" ; then
 | 
			
		||||
		myconf+=" SWRESAMPLE=1"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
		emake all CC="$(tc-getCC)" CFLAGS="${CFLAGS}" \
 | 
			
		||||
			LDFLAGS="${LDFLAGS}" CONFIG="${myconf}" LIBDIR="." || die
 | 
			
		||||
	append-cflags -DHAVE_PTHREAD_NAME -D_GNU_SOURCE
 | 
			
		||||
	append-cxxflags -DHAVE_PTHREAD_NAME -D_GNU_SOURCE
 | 
			
		||||
	tc-export CC CXX
 | 
			
		||||
 | 
			
		||||
	BUILD_PARAMS="${myconf}"
 | 
			
		||||
	vdr-plugin-2_src_compile
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_install() {
 | 
			
		||||
		vdr-plugin_src_install
 | 
			
		||||
	vdr-plugin-2_src_install
 | 
			
		||||
 | 
			
		||||
		dodir /etc/vdr/plugins || die
 | 
			
		||||
 | 
			
		||||
		insinto /etc/vdr/plugins
 | 
			
		||||
		fowners -R vdr:vdr /etc/vdr || die
 | 
			
		||||
 | 
			
		||||
		#insinto /etc/conf.d
 | 
			
		||||
		#doins vdr.softhddevice
 | 
			
		||||
	dodoc ChangeLog README.txt
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										127
									
								
								video.h
									
									
									
									
									
								
							
							
						
						
									
										127
									
								
								video.h
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
///
 | 
			
		||||
///	@file video.h	@brief Video module header file
 | 
			
		||||
///
 | 
			
		||||
///	Copyright (c) 2009 - 2012 by Johns.  All Rights Reserved.
 | 
			
		||||
///	Copyright (c) 2009 - 2013 by Johns.  All Rights Reserved.
 | 
			
		||||
///
 | 
			
		||||
///	Contributor(s):
 | 
			
		||||
///
 | 
			
		||||
@@ -30,33 +30,46 @@
 | 
			
		||||
    /// Video hardware decoder typedef
 | 
			
		||||
typedef struct _video_hw_decoder_ VideoHwDecoder;
 | 
			
		||||
 | 
			
		||||
    /// Video output stream typedef
 | 
			
		||||
typedef struct __video_stream__ VideoStream;
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
//	Variables
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
extern char VideoHardwareDecoder;	///< flag use hardware decoder
 | 
			
		||||
extern char VideoIgnoreRepeatPict;	///< disable repeat pict warning
 | 
			
		||||
extern int VideoAudioDelay;		///< audio/video delay
 | 
			
		||||
extern char ConfigStartX11Server;	///< flag start the x11 server
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
//	Prototypes
 | 
			
		||||
//----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
    /// Allocate new video hardware decoder.
 | 
			
		||||
extern VideoHwDecoder *VideoNewHwDecoder(void);
 | 
			
		||||
extern VideoHwDecoder *VideoNewHwDecoder(VideoStream *);
 | 
			
		||||
 | 
			
		||||
    /// Deallocate video hardware decoder.
 | 
			
		||||
extern void VideoDelHwDecoder(VideoHwDecoder *);
 | 
			
		||||
 | 
			
		||||
#ifdef LIBAVCODEC_VERSION
 | 
			
		||||
    /// Get and allocate a video hardware surface.
 | 
			
		||||
extern unsigned VideoGetSurface(VideoHwDecoder *);
 | 
			
		||||
extern unsigned VideoGetSurface(VideoHwDecoder *, const AVCodecContext *);
 | 
			
		||||
 | 
			
		||||
    /// Release a video hardware surface
 | 
			
		||||
extern void VideoReleaseSurface(VideoHwDecoder *, unsigned);
 | 
			
		||||
 | 
			
		||||
#ifdef LIBAVCODEC_VERSION
 | 
			
		||||
    /// Render a ffmpeg frame.
 | 
			
		||||
extern void VideoRenderFrame(VideoHwDecoder *, AVCodecContext *, AVFrame *);
 | 
			
		||||
 | 
			
		||||
    /// Get ffmpeg vaapi context.
 | 
			
		||||
extern struct vaapi_context *VideoGetVaapiContext(VideoHwDecoder *);
 | 
			
		||||
 | 
			
		||||
    /// Callback to negotiate the PixelFormat.
 | 
			
		||||
extern enum PixelFormat Video_get_format(VideoHwDecoder *, AVCodecContext *,
 | 
			
		||||
    const enum PixelFormat *);
 | 
			
		||||
 | 
			
		||||
    /// Render a ffmpeg frame.
 | 
			
		||||
extern void VideoRenderFrame(VideoHwDecoder *, const AVCodecContext *,
 | 
			
		||||
    const AVFrame *);
 | 
			
		||||
 | 
			
		||||
    /// Get ffmpeg vaapi context.
 | 
			
		||||
extern struct vaapi_context *VideoGetVaapiContext(VideoHwDecoder *);
 | 
			
		||||
 | 
			
		||||
#ifdef AVCODEC_VDPAU_H
 | 
			
		||||
    /// Draw vdpau render state.
 | 
			
		||||
extern void VideoDrawRenderState(VideoHwDecoder *,
 | 
			
		||||
@@ -70,15 +83,48 @@ extern void VideoPollEvent(void);
 | 
			
		||||
    /// Wakeup display handler.
 | 
			
		||||
extern void VideoDisplayWakeup(void);
 | 
			
		||||
 | 
			
		||||
    /// Set video device.
 | 
			
		||||
extern void VideoSetDevice(const char *);
 | 
			
		||||
 | 
			
		||||
    /// Get video driver name.
 | 
			
		||||
extern const char *VideoGetDriverName(void);
 | 
			
		||||
 | 
			
		||||
    /// Set video geometry.
 | 
			
		||||
extern int VideoSetGeometry(const char *);
 | 
			
		||||
 | 
			
		||||
    /// Set 60Hz display mode.
 | 
			
		||||
extern void VideoSet60HzMode(int);
 | 
			
		||||
 | 
			
		||||
    /// Set soft start audio/video sync.
 | 
			
		||||
extern void VideoSetSoftStartSync(int);
 | 
			
		||||
 | 
			
		||||
    /// Set show black picture during channel switch.
 | 
			
		||||
extern void VideoSetBlackPicture(int);
 | 
			
		||||
 | 
			
		||||
    /// Set brightness adjustment.
 | 
			
		||||
extern void VideoSetBrightness(int);
 | 
			
		||||
 | 
			
		||||
    /// Set contrast adjustment.
 | 
			
		||||
extern void VideoSetContrast(int);
 | 
			
		||||
 | 
			
		||||
    /// Set saturation adjustment.
 | 
			
		||||
extern void VideoSetSaturation(int);
 | 
			
		||||
 | 
			
		||||
    /// Set hue adjustment.
 | 
			
		||||
extern void VideoSetHue(int);
 | 
			
		||||
 | 
			
		||||
    /// Set video output position.
 | 
			
		||||
extern void VideoSetOutputPosition(int, int, int, int);
 | 
			
		||||
extern void VideoSetOutputPosition(VideoHwDecoder *, int, int, int, int);
 | 
			
		||||
 | 
			
		||||
    /// Set video mode.
 | 
			
		||||
extern void VideoSetVideoMode(int, int, int, int);
 | 
			
		||||
 | 
			
		||||
    /// Set 4:3 display format.
 | 
			
		||||
extern void VideoSet4to3DisplayFormat(int);
 | 
			
		||||
 | 
			
		||||
    /// Set other display format.
 | 
			
		||||
extern void VideoSetOtherDisplayFormat(int);
 | 
			
		||||
 | 
			
		||||
    /// Set video fullscreen mode.
 | 
			
		||||
extern void VideoSetFullscreen(int);
 | 
			
		||||
 | 
			
		||||
@@ -88,6 +134,9 @@ extern void VideoSetDeinterlace(int[]);
 | 
			
		||||
    /// Set skip chroma deinterlace.
 | 
			
		||||
extern void VideoSetSkipChromaDeinterlace(int[]);
 | 
			
		||||
 | 
			
		||||
    /// Set inverse telecine.
 | 
			
		||||
extern void VideoSetInverseTelecine(int[]);
 | 
			
		||||
 | 
			
		||||
    /// Set scaling.
 | 
			
		||||
extern void VideoSetScaling(int[]);
 | 
			
		||||
 | 
			
		||||
@@ -97,8 +146,17 @@ extern void VideoSetDenoise(int[]);
 | 
			
		||||
    /// Set sharpen.
 | 
			
		||||
extern void VideoSetSharpen(int[]);
 | 
			
		||||
 | 
			
		||||
    /// Set skip lines.
 | 
			
		||||
extern void VideoSetSkipLines(int);
 | 
			
		||||
    /// Set cut top and bottom.
 | 
			
		||||
extern void VideoSetCutTopBottom(int[]);
 | 
			
		||||
 | 
			
		||||
    /// Set cut left and right.
 | 
			
		||||
extern void VideoSetCutLeftRight(int[]);
 | 
			
		||||
 | 
			
		||||
    /// Set studio levels.
 | 
			
		||||
extern void VideoSetStudioLevels(int);
 | 
			
		||||
 | 
			
		||||
    /// Set background.
 | 
			
		||||
extern void VideoSetBackground(uint32_t);
 | 
			
		||||
 | 
			
		||||
    /// Set audio delay.
 | 
			
		||||
extern void VideoSetAudioDelay(int);
 | 
			
		||||
@@ -115,18 +173,55 @@ extern void VideoOsdDrawARGB(int, int, int, int, const uint8_t *);
 | 
			
		||||
    /// Get OSD size.
 | 
			
		||||
extern void VideoGetOsdSize(int *, int *);
 | 
			
		||||
 | 
			
		||||
extern int64_t VideoGetClock(void);	///< Get video clock.
 | 
			
		||||
    /// Set OSD size.
 | 
			
		||||
extern void VideoSetOsdSize(int, int);
 | 
			
		||||
 | 
			
		||||
    /// Set Osd 3D Mode
 | 
			
		||||
extern void VideoSetOsd3DMode(int);
 | 
			
		||||
 | 
			
		||||
    /// Set video clock.
 | 
			
		||||
extern void VideoSetClock(VideoHwDecoder *, int64_t);
 | 
			
		||||
 | 
			
		||||
    /// Get video clock.
 | 
			
		||||
extern int64_t VideoGetClock(const VideoHwDecoder *);
 | 
			
		||||
 | 
			
		||||
    /// Set closing flag.
 | 
			
		||||
extern void VideoSetClosing(VideoHwDecoder *);
 | 
			
		||||
 | 
			
		||||
    /// Reset start of frame counter
 | 
			
		||||
extern void VideoResetStart(VideoHwDecoder *);
 | 
			
		||||
 | 
			
		||||
    /// Set trick play speed.
 | 
			
		||||
extern void VideoSetTrickSpeed(VideoHwDecoder *, int);
 | 
			
		||||
 | 
			
		||||
    /// Grab screen.
 | 
			
		||||
extern uint8_t *VideoGrab(int *, int *, int *, int);
 | 
			
		||||
 | 
			
		||||
    /// Grab screen raw.
 | 
			
		||||
extern uint8_t *VideoGrabService(int *, int *, int *);
 | 
			
		||||
 | 
			
		||||
    /// Get decoder statistics.
 | 
			
		||||
extern void VideoGetStats(VideoHwDecoder *, int *, int *, int *, int *);
 | 
			
		||||
 | 
			
		||||
    /// Get video stream size
 | 
			
		||||
extern void VideoGetVideoSize(VideoHwDecoder *, int *, int *, int *, int *);
 | 
			
		||||
 | 
			
		||||
extern void VideoOsdInit(void);		///< Setup osd.
 | 
			
		||||
extern void VideoOsdExit(void);		///< Cleanup osd.
 | 
			
		||||
 | 
			
		||||
extern void VideoInit(const char *);	///< Setup video module.
 | 
			
		||||
extern void VideoExit(void);		///< Cleanup and exit video module.
 | 
			
		||||
 | 
			
		||||
extern void VideoFlushInput(void);	///< Flush video input buffers.
 | 
			
		||||
extern int VideoDecode(void);		///< Decode video input buffers.
 | 
			
		||||
    /// Poll video input buffers.
 | 
			
		||||
extern int VideoPollInput(VideoStream *);
 | 
			
		||||
 | 
			
		||||
    /// Decode video input buffers.
 | 
			
		||||
extern int VideoDecodeInput(VideoStream *);
 | 
			
		||||
 | 
			
		||||
    /// Get number of input buffers.
 | 
			
		||||
extern int VideoGetBuffers(const VideoStream *);
 | 
			
		||||
 | 
			
		||||
       /// Raise the frontend window
 | 
			
		||||
extern int VideoRaiseWindow();
 | 
			
		||||
 | 
			
		||||
/// @}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user