mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 17:16:51 +00:00
Compare commits
235 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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
|
.*.swp
|
||||||
.gdb_history
|
.gdb_history
|
||||||
# work directory
|
# work directory
|
||||||
chaos
|
.chaos
|
||||||
# generated files
|
# generated files
|
||||||
.dependencies
|
.dependencies
|
||||||
libvdr-softhddevice.so*
|
libvdr-softhddevice.so*
|
||||||
|
|||||||
247
ChangeLog
247
ChangeLog
@@ -1,5 +1,250 @@
|
|||||||
User johns
|
User johns
|
||||||
Date:
|
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
|
Release Version 0.4.5
|
||||||
Add configurable skip lines at video top and bottom.
|
Add configurable skip lines at video top and bottom.
|
||||||
|
|||||||
47
Makefile
47
Makefile
@@ -18,21 +18,24 @@ GIT_REV = $(shell git describe --always 2>/dev/null)
|
|||||||
|
|
||||||
### Configuration (edit this for your needs)
|
### Configuration (edit this for your needs)
|
||||||
|
|
||||||
CONFIG := #-DDEBUG
|
CONFIG := #-DDEBUG #-DOSD_DEBUG
|
||||||
#CONFIG += -DHAVE_PTHREAD_NAME
|
CONFIG += -DAV_INFO -DAV_INFO_TIME=3000 # debug a/v sync
|
||||||
|
#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 += $(shell pkg-config --exists vdpau && echo "-DUSE_VDPAU")
|
CONFIG += $(shell pkg-config --exists vdpau && echo "-DUSE_VDPAU")
|
||||||
CONFIG += $(shell pkg-config --exists libva && echo "-DUSE_VAAPI")
|
CONFIG += $(shell pkg-config --exists libva && echo "-DUSE_VAAPI")
|
||||||
CONFIG += $(shell pkg-config --exists alsa && echo "-DUSE_ALSA")
|
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
|
CONFIG += -DUSE_OSS
|
||||||
|
|
||||||
### The C++ compiler and options:
|
### The C++ compiler and options:
|
||||||
|
|
||||||
CC ?= gcc
|
CC ?= gcc
|
||||||
CXX ?= g++
|
CXX ?= g++
|
||||||
CFLAGS ?= -g -O2 -W -Wall -Wextra -Winit-self \
|
CFLAGS ?= -g -O2 -W -Wall -Wextra -Winit-self \
|
||||||
-Wdeclaration-after-statement
|
-Wdeclaration-after-statement \
|
||||||
CXXFLAGS ?= -g -O2 -W -Wall -Wextra -Woverloaded-virtual
|
-ftree-vectorize -msse3 -flax-vector-conversions
|
||||||
|
CXXFLAGS ?= -g -O2 -W -Wall -Wextra -Werror=overloaded-virtual
|
||||||
|
|
||||||
### The directory environment:
|
### The directory environment:
|
||||||
|
|
||||||
@@ -42,7 +45,7 @@ TMPDIR ?= /tmp
|
|||||||
|
|
||||||
### Make sure that necessary options are included:
|
### Make sure that necessary options are included:
|
||||||
|
|
||||||
include $(VDRDIR)/Make.global
|
-include $(VDRDIR)/Make.global
|
||||||
|
|
||||||
### Allow user defined options to overwrite defaults:
|
### Allow user defined options to overwrite defaults:
|
||||||
|
|
||||||
@@ -65,34 +68,32 @@ DEFINES += $(CONFIG) -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' \
|
|||||||
$(if $(GIT_REV), -DGIT_REV='"$(GIT_REV)"')
|
$(if $(GIT_REV), -DGIT_REV='"$(GIT_REV)"')
|
||||||
|
|
||||||
_CFLAGS = $(DEFINES) $(INCLUDES) \
|
_CFLAGS = $(DEFINES) $(INCLUDES) \
|
||||||
$(shell pkg-config --cflags libavcodec libavformat) \
|
$(shell pkg-config --cflags libavcodec) \
|
||||||
`pkg-config --cflags x11 x11-xcb xcb xcb-xv xcb-shm xcb-dpms xcb-atom\
|
`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`\
|
xcb-screensaver xcb-randr xcb-glx xcb-icccm xcb-keysyms`\
|
||||||
`pkg-config --cflags gl glu` \
|
`pkg-config --cflags gl glu` \
|
||||||
$(if $(findstring USE_VDPAU,$(CONFIG)), \
|
$(if $(findstring USE_VDPAU,$(CONFIG)), \
|
||||||
`pkg-config --cflags vdpau`) \
|
`pkg-config --cflags vdpau`) \
|
||||||
$(if $(findstring USE_VAAPI,$(CONFIG)), \
|
$(if $(findstring USE_VAAPI,$(CONFIG)), \
|
||||||
`pkg-config --cflags libva-x11 libva-glx libva`) \
|
`pkg-config --cflags libva-x11 libva-glx libva`) \
|
||||||
$(if $(findstring USE_ALSA,$(CONFIG)), \
|
$(if $(findstring USE_ALSA,$(CONFIG)), \
|
||||||
`pkg-config --cflags alsa`)
|
`pkg-config --cflags alsa`)
|
||||||
|
|
||||||
#override _CFLAGS += -Werror
|
#override _CFLAGS += -Werror
|
||||||
override CXXFLAGS += $(_CFLAGS)
|
override CXXFLAGS += $(_CFLAGS)
|
||||||
override CFLAGS += $(_CFLAGS)
|
override CFLAGS += $(_CFLAGS)
|
||||||
|
|
||||||
LIBS += -lrt \
|
LIBS += -lrt \
|
||||||
$(shell pkg-config --libs libavcodec libavformat) \
|
$(shell pkg-config --libs libavcodec) \
|
||||||
`pkg-config --libs x11 x11-xcb xcb xcb-xv xcb-shm xcb-dpms xcb-atom\
|
`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`\
|
xcb-screensaver xcb-randr xcb-glx xcb-icccm xcb-keysyms`\
|
||||||
`pkg-config --libs gl glu` \
|
`pkg-config --libs gl glu` \
|
||||||
$(if $(findstring USE_VDPAU,$(CONFIG)), \
|
$(if $(findstring USE_VDPAU,$(CONFIG)), \
|
||||||
`pkg-config --libs vdpau`) \
|
`pkg-config --libs vdpau`) \
|
||||||
$(if $(findstring USE_VAAPI,$(CONFIG)), \
|
$(if $(findstring USE_VAAPI,$(CONFIG)), \
|
||||||
`pkg-config --libs libva-x11 libva-glx libva`) \
|
`pkg-config --libs libva-x11 libva-glx libva`) \
|
||||||
$(if $(findstring USE_ALSA,$(CONFIG)), \
|
$(if $(findstring USE_ALSA,$(CONFIG)), \
|
||||||
`pkg-config --libs alsa`) \
|
`pkg-config --libs alsa`)
|
||||||
$(if $(findstring USE_JPEG,$(CONFIG)), \
|
|
||||||
-ljpeg)
|
|
||||||
|
|
||||||
### The object files (add further files here):
|
### The object files (add further files here):
|
||||||
|
|
||||||
@@ -121,11 +122,11 @@ $(OBJS): Makefile
|
|||||||
|
|
||||||
### Internationalization (I18N):
|
### Internationalization (I18N):
|
||||||
|
|
||||||
PODIR = po
|
PODIR = po
|
||||||
LOCALEDIR = $(VDRDIR)/locale
|
LOCALEDIR = $(VDRDIR)/locale
|
||||||
I18Npo = $(wildcard $(PODIR)/*.po)
|
I18Npo = $(wildcard $(PODIR)/*.po)
|
||||||
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
|
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
|
||||||
I18Npot = $(PODIR)/$(PLUGIN).pot
|
I18Npot = $(PODIR)/$(PLUGIN).pot
|
||||||
|
|
||||||
%.mo: %.po
|
%.mo: %.po
|
||||||
msgfmt -c -o $@ $<
|
msgfmt -c -o $@ $<
|
||||||
|
|||||||
153
README.txt
153
README.txt
@@ -20,24 +20,25 @@ $Id$
|
|||||||
|
|
||||||
A software and GPU emulated HD output device plugin for VDR.
|
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 decoder CPU / VA-API / VDPAU
|
||||||
o Video CPU/VA-API
|
o Video output VA-API / VDPAU
|
||||||
o Video VDPAU/VDPAU
|
o Audio FFMpeg / Alsa / Analog
|
||||||
o Video CPU/VDPAU
|
o Audio FFMpeg / Alsa / Digital
|
||||||
o Audio FFMpeg/Alsa/Analog
|
o Audio FFMpeg / OSS / Analog
|
||||||
o Audio FFMpeg/Alsa/Digital
|
o HDMI/SPDIF pass-through
|
||||||
o Audio FFMpeg/OSS/Analog
|
o Software volume, compression, normalize and channel resample
|
||||||
o HDMI/SPDIF Passthrough
|
o YaepgHD support
|
||||||
o VA-API bob software deinterlace
|
o Software deinterlacer Bob (VA-API only)
|
||||||
o Auto-crop
|
o Autocrop
|
||||||
|
o Grab image (VDPAU only)
|
||||||
|
o Suspend
|
||||||
|
o Letterbox, Stretch and Center cut-out video display modes
|
||||||
|
o atmo light support with plugin http://github.com/durchflieger/DFAtmo
|
||||||
|
|
||||||
o planned: Video VA-API/Opengl
|
o planned: Video decoder VA-API Branch: vaapi-ext/staging
|
||||||
o planned: Video VDPAU/Opengl
|
o planned: Video output XvBA / Opengl / Xv
|
||||||
o planned: Video CPU/Xv
|
o planned: VA-API grab image
|
||||||
o planned: Video CPU/Opengl
|
|
||||||
o planned: Improved Software Deinterlacer (yadif or/and ffmpeg filters)
|
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.
|
To compile you must have the 'requires' installed.
|
||||||
|
|
||||||
@@ -76,6 +77,13 @@ Setup: environment
|
|||||||
|
|
||||||
DISPLAY=:0.0
|
DISPLAY=:0.0
|
||||||
x11 display name
|
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
|
only if alsa is configured
|
||||||
ALSA_DEVICE=default
|
ALSA_DEVICE=default
|
||||||
alsa PCM device name
|
alsa PCM device name
|
||||||
@@ -85,6 +93,7 @@ Setup: environment
|
|||||||
alsa control device name
|
alsa control device name
|
||||||
ALSA_MIXER_CHANNEL=PCM
|
ALSA_MIXER_CHANNEL=PCM
|
||||||
alsa control channel name
|
alsa control channel name
|
||||||
|
|
||||||
only if oss is configured
|
only if oss is configured
|
||||||
OSS_AUDIODEV=/dev/dsp
|
OSS_AUDIODEV=/dev/dsp
|
||||||
oss dsp device name
|
oss dsp device name
|
||||||
@@ -99,13 +108,18 @@ Setup: /etc/vdr/setup.conf
|
|||||||
------
|
------
|
||||||
Following is supported:
|
Following is supported:
|
||||||
|
|
||||||
softhddevice.MakePrimary = 1
|
softhddevice.MakePrimary = 0
|
||||||
0 = no change, 1 make softhddevice primary at start
|
0 = no change, 1 make softhddevice primary at start
|
||||||
|
|
||||||
softhddevice.HideMainMenuEntry = 0
|
softhddevice.HideMainMenuEntry = 0
|
||||||
0 = show softhddevice main menu entry, 1 = hide entry
|
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_fake is 1280x1080 or 1440x1080
|
||||||
1080i is "real" 1920x1080
|
1080i is "real" 1920x1080
|
||||||
|
|
||||||
@@ -119,6 +133,9 @@ Setup: /etc/vdr/setup.conf
|
|||||||
softhddevice.<res>.SkipChromaDeinterlace = 0
|
softhddevice.<res>.SkipChromaDeinterlace = 0
|
||||||
0 = disabled, 1 = enabled (for slower cards, poor qualit<69>t)
|
0 = disabled, 1 = enabled (for slower cards, poor qualit<69>t)
|
||||||
|
|
||||||
|
softhddevice.<res>.InverseTelecine = 0
|
||||||
|
0 = disabled, 1 = enabled
|
||||||
|
|
||||||
softhddevice.<res>.Denoise = 0
|
softhddevice.<res>.Denoise = 0
|
||||||
0 .. 1000 noise reduction level (0 off, 1000 max)
|
0 .. 1000 noise reduction level (0 off, 1000 max)
|
||||||
|
|
||||||
@@ -126,14 +143,48 @@ Setup: /etc/vdr/setup.conf
|
|||||||
-1000 .. 1000 noise reduction level (0 off, -1000 max blur,
|
-1000 .. 1000 noise reduction level (0 off, -1000 max blur,
|
||||||
1000 max sharp)
|
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
|
softhddevice.AudioDelay = 0
|
||||||
+n or -n ms
|
+n or -n ms
|
||||||
|
delay audio or delay video
|
||||||
|
|
||||||
softhddevice.AudioPassthrough = 0
|
softhddevice.AudioPassthrough = 0
|
||||||
0 = none, 1 = AC-3
|
0 = none, 1 = AC-3
|
||||||
|
|
||||||
for AC-3 the pass-through device is used.
|
for AC-3 the pass-through device is used.
|
||||||
|
|
||||||
|
softhddevice.AudioDownmix = 0
|
||||||
|
0 = none, 1 = downmix
|
||||||
|
downmix AC-3 to stero.
|
||||||
|
|
||||||
|
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
|
softhddevice.AutoCrop.Interval = 0
|
||||||
0 disables auto-crop
|
0 disables auto-crop
|
||||||
n each 'n' frames auto-crop is checked.
|
n each 'n' frames auto-crop is checked.
|
||||||
@@ -146,6 +197,17 @@ Setup: /etc/vdr/setup.conf
|
|||||||
if detected crop area is too small, cut max 'n' pixels at top and
|
if detected crop area is too small, cut max 'n' pixels at top and
|
||||||
bottom.
|
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
|
softhddevice.Suspend.Close = 0
|
||||||
1 suspend closes x11 window, connection and audio device.
|
1 suspend closes x11 window, connection and audio device.
|
||||||
@@ -154,6 +216,23 @@ Setup: /etc/vdr/setup.conf
|
|||||||
softhddevice.Suspend.X11 = 0
|
softhddevice.Suspend.X11 = 0
|
||||||
1 suspend stops X11 server (not working yet)
|
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
|
||||||
|
|
||||||
|
VideoDisplayFormat = ?
|
||||||
|
0 pan and scan
|
||||||
|
1 letter box
|
||||||
|
2 center cut-out
|
||||||
|
|
||||||
Setup: /etc/vdr/remote.conf
|
Setup: /etc/vdr/remote.conf
|
||||||
------
|
------
|
||||||
|
|
||||||
@@ -187,8 +266,32 @@ Commandline:
|
|||||||
SVDRP:
|
SVDRP:
|
||||||
------
|
------
|
||||||
|
|
||||||
Use 'svdrpsend.pl plug softhddevice HELP' to see the SVDRP commands
|
Use 'svdrpsend.pl plug softhddevice HELP'
|
||||||
help and which are supported by the plugin.
|
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:
|
Running:
|
||||||
--------
|
--------
|
||||||
@@ -200,6 +303,11 @@ Warning:
|
|||||||
--------
|
--------
|
||||||
libav is not supported, expect many bugs with it.
|
libav is not supported, expect many bugs with it.
|
||||||
|
|
||||||
|
Known Bugs:
|
||||||
|
-----------
|
||||||
|
VA-API doesn't v-sync 1080i streams
|
||||||
|
vdr-image not working
|
||||||
|
|
||||||
Requires:
|
Requires:
|
||||||
---------
|
---------
|
||||||
media-video/ffmpeg (version >=0.7)
|
media-video/ffmpeg (version >=0.7)
|
||||||
@@ -226,6 +334,11 @@ Requires:
|
|||||||
x11-libs/xvba-video
|
x11-libs/xvba-video
|
||||||
XVBA Backend for Video Acceleration (VA) API
|
XVBA Backend for Video Acceleration (VA) API
|
||||||
http://www.freedesktop.org/wiki/Software/vaapi
|
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,
|
x11-libs/libxcb,
|
||||||
X C-language Bindings library
|
X C-language Bindings library
|
||||||
http://xcb.freedesktop.org
|
http://xcb.freedesktop.org
|
||||||
|
|||||||
78
Todo
78
Todo
@@ -19,82 +19,93 @@ GNU Affero General Public License for more details.
|
|||||||
$Id: $
|
$Id: $
|
||||||
|
|
||||||
missing:
|
missing:
|
||||||
software deinterlace (yadif, ...)
|
more software deinterlace (yadif, ...)
|
||||||
software decoder with software deinterlace
|
more software decoder with software deinterlace
|
||||||
zoom/fit-zoom 4:3 (SetVideoDisplayFormat, SetVideoFormat?)
|
|
||||||
ITU BT601, ITU BT709 (HD), RGB studio levels (16-235)?
|
|
||||||
suspend output / energie saver: stop and restart X11
|
suspend output / energie saver: stop and restart X11
|
||||||
|
suspend plugin didn't restore full-screen (is this wanted?)
|
||||||
Option deinterlace off / deinterlace force!
|
Option deinterlace off / deinterlace force!
|
||||||
Make output drivers better modular (under construction).
|
ColorSpace aren't configurable with the gui.
|
||||||
|
works for me: restart vdr not working, when started x11 was killed.
|
||||||
crash:
|
|
||||||
AudioPlayHandlerThread -> pthread_cond_wait
|
|
||||||
|
|
||||||
video:
|
video:
|
||||||
subtitle not cleared
|
subtitle not cleared
|
||||||
subtitle could be asyncron
|
subtitle could be asyncron
|
||||||
reduce warnings after channel switch
|
|
||||||
grab image with hardware and better scaling support
|
grab image with hardware and better scaling support
|
||||||
suspendoutput didn't show logo or black pictures
|
yaepghd changed position is lost on channel switch
|
||||||
(must detect video format to show image)
|
pause (live tv) has sometime problems with SAT1 HD Pro7 HD
|
||||||
hard channel switch
|
radio show black background
|
||||||
skip line not configurable from setup menu.
|
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.
|
||||||
|
|
||||||
vdpau:
|
vdpau:
|
||||||
|
software deinterlace path not working.
|
||||||
|
OSD looses transparency, during channel switch.
|
||||||
|
OSD looses transparency, while moving cut marks.
|
||||||
|
|
||||||
libva:
|
libva:
|
||||||
yaepghd (VaapiSetOutputPosition) support
|
yaepghd (VaapiSetOutputPosition) support
|
||||||
can associate only displayed part of osd
|
can associate only displayed part of osd
|
||||||
grab image for va-api
|
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_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
|
||||||
[drm:i915_wait_request] *ERROR* i915_wait_request returns -11 ...
|
[drm:i915_wait_request] *ERROR* i915_wait_request returns -11 ...
|
||||||
|
missing OSD support for 3d SBS / Top-Bottom streams, like VPDAU.
|
||||||
|
|
||||||
libva: branch vaapi-ext
|
libva: branch vaapi-ext / staging
|
||||||
add support for vaapi-ext
|
add support for vaapi-ext / staging
|
||||||
|
|
||||||
libva-intel-driver:
|
libva-intel-driver:
|
||||||
|
deinterlace only supported with vaapi-ext
|
||||||
1080i does no v-sync (sometimes correct working with vaapi-ext)
|
1080i does no v-sync (sometimes correct working with vaapi-ext)
|
||||||
OSD has sometimes wrong size (workaround written)
|
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:
|
libva-vdpau-driver:
|
||||||
G210/GT520 OSD update too slow (needs hardware problem workaround)
|
G210/GT520 OSD update too slow (needs hardware problem workaround)
|
||||||
hangup on exit (VaapiDelDecoder -> VaapiCleanup
|
hangup on exit (VaapiDelDecoder -> VaapiCleanup
|
||||||
-> vaDestroyContext -> pthread_rwlock_wrlock)
|
-> 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:
|
libva-xvba-driver:
|
||||||
with auto-crop OSD has wrong position
|
|
||||||
|
|
||||||
x11:
|
x11:
|
||||||
disable screensaver
|
skip multiple configure-notify, handle only the last one.
|
||||||
|
support embedded mode
|
||||||
|
|
||||||
audio:
|
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
|
Make alsa thread/polled and oss thread/polled output module runtime
|
||||||
selectable.
|
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:
|
audio/alsa:
|
||||||
better downmix of >2 channels on 2 channel hardware
|
|
||||||
remix support of unsupported sample rates
|
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:
|
audio/oss:
|
||||||
alsa oss emulation mixer "pcm" not working
|
alsa oss emulation mixer "pcm" not working
|
||||||
|
oss4 mixer channel not working
|
||||||
ring buffer overflow with alsa oss emulation
|
ring buffer overflow with alsa oss emulation
|
||||||
|
|
||||||
HDMI/SPDIF Passthrough:
|
HDMI/SPDIF Passthrough:
|
||||||
only AC-3 written
|
only AC-3 written
|
||||||
Channels are wrong setup, if changing setting during operation.
|
|
||||||
support oss pass-through
|
|
||||||
|
|
||||||
playback of recording
|
playback of recording
|
||||||
pause is not reset, when replay exit
|
pause is not reset, when replay exit (fixed?)
|
||||||
replay/pause need 100% cpu
|
replay/pause need 100% cpu (fixed?)
|
||||||
|
|
||||||
|
plugins:
|
||||||
|
mp3 plugin needs 100% cpu (bad ::Poll)
|
||||||
|
|
||||||
setup:
|
setup:
|
||||||
Setup of decoder type.
|
Setup of decoder type.
|
||||||
@@ -105,9 +116,8 @@ setup:
|
|||||||
Can a notice be added to the setup menu?
|
Can a notice be added to the setup menu?
|
||||||
|
|
||||||
unsorted:
|
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.
|
stoping vdr while plugin is suspended opens and closes a window.
|
||||||
|
svdrp prim: support plugin names for device numbers.
|
||||||
|
|
||||||
future features (not planed for 1.0 - 1.5)
|
future features (not planed for 1.0 - 1.5)
|
||||||
|
|
||||||
@@ -115,8 +125,8 @@ future features (not planed for 1.0 - 1.5)
|
|||||||
video out with opengl
|
video out with opengl
|
||||||
video out with xvba
|
video out with xvba
|
||||||
software decoder for xv / opengl
|
software decoder for xv / opengl
|
||||||
atmolight support
|
|
||||||
multistream handling
|
multistream handling
|
||||||
pip support
|
pip support
|
||||||
|
save and use auto-crop with channel zapping
|
||||||
|
|
||||||
upmix stereo to AC-3
|
upmix stereo to AC-3 (supported by alsa plugin)
|
||||||
|
|||||||
24
audio.h
24
audio.h
@@ -31,20 +31,32 @@ extern void AudioEnqueue(const void *, int); ///< buffer audio samples
|
|||||||
extern void AudioFlushBuffers(void); ///< flush audio buffers
|
extern void AudioFlushBuffers(void); ///< flush audio buffers
|
||||||
extern void AudioPoller(void); ///< poll audio events/handling
|
extern void AudioPoller(void); ///< poll audio events/handling
|
||||||
extern int AudioFreeBytes(void); ///< free bytes in audio output
|
extern int AudioFreeBytes(void); ///< free bytes in audio output
|
||||||
|
extern int AudioUsedBytes(void); ///< used bytes in audio output
|
||||||
//extern int AudioUsedBytes(void); ///< used bytes in audio output
|
extern int64_t AudioGetDelay(void); ///< get current audio delay
|
||||||
extern uint64_t AudioGetDelay(void); ///< get current audio delay
|
|
||||||
extern void AudioSetClock(int64_t); ///< set audio clock base
|
extern void AudioSetClock(int64_t); ///< set audio clock base
|
||||||
extern int64_t AudioGetClock(); ///< get current audio clock
|
extern int64_t AudioGetClock(); ///< get current audio clock
|
||||||
extern void AudioSetVolume(int); ///< set volume
|
extern void AudioSetVolume(int); ///< set volume
|
||||||
extern int AudioSetup(int *, int *, int); ///< setup audio output
|
extern int AudioSetup(int *, int *, int); ///< setup audio output
|
||||||
|
|
||||||
//extern void AudioPlay(void); ///< play audio
|
extern void AudioPlay(void); ///< play audio
|
||||||
//extern void AudioPause(void); ///< pause 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 AudioSetDevice(const char *); ///< set PCM audio device
|
||||||
extern void AudioSetDeviceAC3(const char *); ///< set Passthrough device
|
extern void AudioSetDeviceAC3(const char *); ///< set pass-through device
|
||||||
|
extern void AudioSetChannel(const char *); ///< set mixer channel
|
||||||
extern void AudioInit(void); ///< setup audio module
|
extern void AudioInit(void); ///< setup audio module
|
||||||
extern void AudioExit(void); ///< cleanup and exit audio module
|
extern void AudioExit(void); ///< cleanup and exit audio module
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Variables
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
extern char AudioAlsaDriverBroken; ///< disable broken driver message
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|||||||
9
codec.h
9
codec.h
@@ -67,6 +67,15 @@ extern void CodecAudioOpen(AudioDecoder *, const char *, int);
|
|||||||
/// Close audio codec.
|
/// Close audio codec.
|
||||||
extern void CodecAudioClose(AudioDecoder *);
|
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.
|
/// Decode an audio packet.
|
||||||
extern void CodecAudioDecode(AudioDecoder *, const AVPacket *);
|
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 */
|
#define Debug(level, fmt...) /* disabled */
|
||||||
#endif
|
#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.
|
** Get ticks in ms.
|
||||||
**
|
**
|
||||||
|
|||||||
20
ringbuffer.c
20
ringbuffer.c
@@ -48,6 +48,18 @@ struct _ring_buffer_
|
|||||||
atomic_t Filled; ///< how many of the buffer is used
|
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.
|
** Allocate a new ring buffer.
|
||||||
**
|
**
|
||||||
@@ -69,10 +81,8 @@ RingBuffer *RingBufferNew(size_t size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
rb->Size = size;
|
rb->Size = size;
|
||||||
rb->ReadPointer = rb->Buffer;
|
|
||||||
rb->WritePointer = rb->Buffer;
|
|
||||||
rb->BufferEnd = rb->Buffer + size;
|
rb->BufferEnd = rb->Buffer + size;
|
||||||
atomic_set(&rb->Filled, 0);
|
RingBufferReset(rb);
|
||||||
|
|
||||||
return rb;
|
return rb;
|
||||||
}
|
}
|
||||||
@@ -89,7 +99,7 @@ void RingBufferDel(RingBuffer * rb)
|
|||||||
/**
|
/**
|
||||||
** Advance write pointer in ring buffer.
|
** 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.
|
** @param cnt Number of bytes to be adavanced.
|
||||||
**
|
**
|
||||||
** @returns Number of bytes that could be advanced in ring buffer.
|
** @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.
|
** 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.
|
** @param cnt Number of bytes to be advanced.
|
||||||
**
|
**
|
||||||
** @returns Number of bytes that could be advanced in ring buffer.
|
** @returns Number of bytes that could be advanced in ring buffer.
|
||||||
|
|||||||
@@ -23,13 +23,16 @@
|
|||||||
/// @addtogroup Ringbuffer
|
/// @addtogroup Ringbuffer
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
///< ring buffer typedef
|
/// ring buffer typedef
|
||||||
typedef struct _ring_buffer_ RingBuffer;
|
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);
|
extern RingBuffer *RingBufferNew(size_t);
|
||||||
|
|
||||||
///< free ring buffer
|
/// free ring buffer
|
||||||
extern void RingBufferDel(RingBuffer *);
|
extern void RingBufferDel(RingBuffer *);
|
||||||
|
|
||||||
/// write into ring buffer
|
/// write into ring buffer
|
||||||
|
|||||||
2137
softhddev.c
2137
softhddev.c
File diff suppressed because it is too large
Load Diff
21
softhddev.h
21
softhddev.h
@@ -37,8 +37,8 @@ extern "C"
|
|||||||
|
|
||||||
/// C plugin play audio packet
|
/// C plugin play audio packet
|
||||||
extern int PlayAudio(const uint8_t *, int, uint8_t);
|
extern int PlayAudio(const uint8_t *, int, uint8_t);
|
||||||
/// C plugin mute audio
|
/// C plugin play TS audio packet
|
||||||
extern void Mute(void);
|
extern int PlayTsAudio(const uint8_t *, int);
|
||||||
/// C plugin set audio volume
|
/// C plugin set audio volume
|
||||||
extern void SetVolumeDevice(int);
|
extern void SetVolumeDevice(int);
|
||||||
|
|
||||||
@@ -50,13 +50,21 @@ extern "C"
|
|||||||
extern uint8_t *GrabImage(int *, int, int, int, int);
|
extern uint8_t *GrabImage(int *, int, int, int, int);
|
||||||
|
|
||||||
/// C plugin set play mode
|
/// 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
|
/// C plugin clears all video and audio data from the device
|
||||||
extern void Clear(void);
|
extern void Clear(void);
|
||||||
/// C plugin sets the device into play mode
|
/// C plugin sets the device into play mode
|
||||||
extern void Play(void);
|
extern void Play(void);
|
||||||
/// C plugin sets the device into "freeze frame" mode
|
/// C plugin sets the device into "freeze frame" mode
|
||||||
extern void Freeze(void);
|
extern void Freeze(void);
|
||||||
|
/// C plugin mute audio
|
||||||
|
extern void Mute(void);
|
||||||
/// C plugin display I-frame as a still picture.
|
/// C plugin display I-frame as a still picture.
|
||||||
extern void StillPicture(const uint8_t *, int);
|
extern void StillPicture(const uint8_t *, int);
|
||||||
/// C plugin poll if ready
|
/// C plugin poll if ready
|
||||||
@@ -72,9 +80,11 @@ extern "C"
|
|||||||
/// C plugin exit + cleanup
|
/// C plugin exit + cleanup
|
||||||
extern void SoftHdDeviceExit(void);
|
extern void SoftHdDeviceExit(void);
|
||||||
/// C plugin start code
|
/// C plugin start code
|
||||||
extern void Start(void);
|
extern int Start(void);
|
||||||
/// C plugin stop code
|
/// C plugin stop code
|
||||||
extern void Stop(void);
|
extern void Stop(void);
|
||||||
|
/// C plugin house keeping
|
||||||
|
extern void Housekeeping(void);
|
||||||
/// C plugin main thread hook
|
/// C plugin main thread hook
|
||||||
extern void MainThreadHook(void);
|
extern void MainThreadHook(void);
|
||||||
|
|
||||||
@@ -82,6 +92,9 @@ extern "C"
|
|||||||
extern void Suspend(int, int, int);
|
extern void Suspend(int, int, int);
|
||||||
/// Resume plugin
|
/// Resume plugin
|
||||||
extern void Resume(void);
|
extern void Resume(void);
|
||||||
|
|
||||||
|
/// Get decoder statistics
|
||||||
|
extern void GetStats(int *, int *, int *, int *);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
1828
softhddevice.cpp
1828
softhddevice.cpp
File diff suppressed because it is too large
Load Diff
50
softhddevice_service.h
Normal file
50
softhddevice_service.h
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
///
|
||||||
|
/// @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 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;
|
||||||
@@ -21,26 +21,25 @@ SRC_URI=""
|
|||||||
LICENSE="AGPL-3"
|
LICENSE="AGPL-3"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~x86 ~amd64"
|
KEYWORDS="~x86 ~amd64"
|
||||||
IUSE="vaapi vdpau alsa oss yaepg opengl jpeg"
|
IUSE="vaapi vdpau alsa oss yaepg opengl debug"
|
||||||
|
|
||||||
DEPEND=">=x11-libs/libxcb-1.7
|
DEPEND=">=x11-libs/libxcb-1.8
|
||||||
x11-libs/xcb-util
|
x11-libs/xcb-util
|
||||||
x11-libs/xcb-util-wm
|
x11-libs/xcb-util-wm
|
||||||
x11-libs/xcb-util-keysyms
|
x11-libs/xcb-util-keysyms
|
||||||
x11-libs/xcb-util-renderutil
|
x11-libs/xcb-util-renderutil
|
||||||
x11-libs/libX11
|
x11-libs/libX11
|
||||||
opengl? ( virtual/opengl )
|
opengl? ( virtual/opengl )
|
||||||
>=media-video/ffmpeg-0.7
|
>=virtual/ffmpeg-0.7
|
||||||
sys-devel/gettext
|
sys-devel/gettext
|
||||||
sys-devel/make
|
sys-devel/make
|
||||||
dev-util/pkgconfig
|
dev-util/pkgconfig
|
||||||
yaepg? ( >=media-video/vdr-1.7[yaepg] )
|
yaepg? ( >=media-video/vdr-1.7.23[yaepg] )
|
||||||
!yaepg? ( >=media-video/vdr-1.7 )
|
!yaepg? ( >=media-video/vdr-1.7.23 )
|
||||||
vdpau? ( x11-libs/libvdpau )
|
vdpau? ( x11-libs/libvdpau virtual/ffmpeg[vdpau] )
|
||||||
vaapi? ( x11-libs/libva )
|
vaapi? ( x11-libs/libva virtual/ffmpeg[vaapi] )
|
||||||
alsa? ( media-libs/alsa-lib )
|
alsa? ( media-libs/alsa-lib )
|
||||||
oss? ( sys-kernel/linux-headers )
|
oss? ( sys-kernel/linux-headers )
|
||||||
jpeg? ( virtual/jpeg )
|
|
||||||
"
|
"
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
@@ -55,7 +54,7 @@ src_compile() {
|
|||||||
use vaapi && myconf="${myconf} -DUSE_VAAPI"
|
use vaapi && myconf="${myconf} -DUSE_VAAPI"
|
||||||
use alsa && myconf="${myconf} -DUSE_ALSA"
|
use alsa && myconf="${myconf} -DUSE_ALSA"
|
||||||
use oss && myconf="${myconf} -DUSE_OSS"
|
use oss && myconf="${myconf} -DUSE_OSS"
|
||||||
use jpeg && myconf="${myconf} -DUSE_JPEG"
|
use debug && myconf="${myconf} -DDEBUG"
|
||||||
|
|
||||||
emake all CC="$(tc-getCC)" CFLAGS="${CFLAGS}" \
|
emake all CC="$(tc-getCC)" CFLAGS="${CFLAGS}" \
|
||||||
LDFLAGS="${LDFLAGS}" CONFIG="${myconf}" LIBDIR="." || die
|
LDFLAGS="${LDFLAGS}" CONFIG="${myconf}" LIBDIR="." || die
|
||||||
@@ -64,10 +63,11 @@ src_compile() {
|
|||||||
src_install() {
|
src_install() {
|
||||||
vdr-plugin_src_install
|
vdr-plugin_src_install
|
||||||
|
|
||||||
dodir /etc/vdr/plugins || die
|
dodoc README.txt
|
||||||
|
|
||||||
insinto /etc/vdr/plugins
|
#dodir /etc/vdr/plugins || die
|
||||||
fowners -R vdr:vdr /etc/vdr || die
|
#insinto /etc/vdr/plugins
|
||||||
|
#fowners -R vdr:vdr /etc/vdr || die
|
||||||
|
|
||||||
#insinto /etc/conf.d
|
#insinto /etc/conf.d
|
||||||
#doins vdr.softhddevice
|
#doins vdr.softhddevice
|
||||||
|
|||||||
102
video.h
102
video.h
@@ -30,6 +30,14 @@
|
|||||||
/// Video hardware decoder typedef
|
/// Video hardware decoder typedef
|
||||||
typedef struct _video_hw_decoder_ VideoHwDecoder;
|
typedef struct _video_hw_decoder_ VideoHwDecoder;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Variables
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
extern char VideoHardwareDecoder; ///< flag use hardware decoder
|
||||||
|
extern char VideoIgnoreRepeatPict; ///< disable repeat pict warning
|
||||||
|
extern int VideoAudioDelay; ///< audio/video delay
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// Prototypes
|
// Prototypes
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
@@ -47,16 +55,17 @@ extern unsigned VideoGetSurface(VideoHwDecoder *);
|
|||||||
extern void VideoReleaseSurface(VideoHwDecoder *, unsigned);
|
extern void VideoReleaseSurface(VideoHwDecoder *, unsigned);
|
||||||
|
|
||||||
#ifdef LIBAVCODEC_VERSION
|
#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.
|
/// Callback to negotiate the PixelFormat.
|
||||||
extern enum PixelFormat Video_get_format(VideoHwDecoder *, AVCodecContext *,
|
extern enum PixelFormat Video_get_format(VideoHwDecoder *, AVCodecContext *,
|
||||||
const enum PixelFormat *);
|
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
|
#ifdef AVCODEC_VDPAU_H
|
||||||
/// Draw vdpau render state.
|
/// Draw vdpau render state.
|
||||||
extern void VideoDrawRenderState(VideoHwDecoder *,
|
extern void VideoDrawRenderState(VideoHwDecoder *,
|
||||||
@@ -70,15 +79,45 @@ extern void VideoPollEvent(void);
|
|||||||
/// Wakeup display handler.
|
/// Wakeup display handler.
|
||||||
extern void VideoDisplayWakeup(void);
|
extern void VideoDisplayWakeup(void);
|
||||||
|
|
||||||
|
/// Set video device.
|
||||||
|
extern void VideoSetDevice(const char *);
|
||||||
|
|
||||||
|
/// Get video driver name.
|
||||||
|
extern const char *VideoGetDriverName(void);
|
||||||
|
|
||||||
/// Set video geometry.
|
/// Set video geometry.
|
||||||
extern int VideoSetGeometry(const char *);
|
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.
|
/// Set video output position.
|
||||||
extern void VideoSetOutputPosition(int, int, int, int);
|
extern void VideoSetOutputPosition(int, int, int, int);
|
||||||
|
|
||||||
/// Set video mode.
|
/// Set video mode.
|
||||||
extern void VideoSetVideoMode(int, int, int, int);
|
extern void VideoSetVideoMode(int, int, int, int);
|
||||||
|
|
||||||
|
/// Set display format.
|
||||||
|
extern void VideoSetDisplayFormat(int);
|
||||||
|
|
||||||
/// Set video fullscreen mode.
|
/// Set video fullscreen mode.
|
||||||
extern void VideoSetFullscreen(int);
|
extern void VideoSetFullscreen(int);
|
||||||
|
|
||||||
@@ -88,6 +127,9 @@ extern void VideoSetDeinterlace(int[]);
|
|||||||
/// Set skip chroma deinterlace.
|
/// Set skip chroma deinterlace.
|
||||||
extern void VideoSetSkipChromaDeinterlace(int[]);
|
extern void VideoSetSkipChromaDeinterlace(int[]);
|
||||||
|
|
||||||
|
/// Set inverse telecine.
|
||||||
|
extern void VideoSetInverseTelecine(int[]);
|
||||||
|
|
||||||
/// Set scaling.
|
/// Set scaling.
|
||||||
extern void VideoSetScaling(int[]);
|
extern void VideoSetScaling(int[]);
|
||||||
|
|
||||||
@@ -97,8 +139,17 @@ extern void VideoSetDenoise(int[]);
|
|||||||
/// Set sharpen.
|
/// Set sharpen.
|
||||||
extern void VideoSetSharpen(int[]);
|
extern void VideoSetSharpen(int[]);
|
||||||
|
|
||||||
/// Set skip lines.
|
/// Set cut top and bottom.
|
||||||
extern void VideoSetSkipLines(int);
|
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.
|
/// Set audio delay.
|
||||||
extern void VideoSetAudioDelay(int);
|
extern void VideoSetAudioDelay(int);
|
||||||
@@ -115,18 +166,47 @@ extern void VideoOsdDrawARGB(int, int, int, int, const uint8_t *);
|
|||||||
/// Get OSD size.
|
/// Get OSD size.
|
||||||
extern void VideoGetOsdSize(int *, int *);
|
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.
|
/// Grab screen.
|
||||||
extern uint8_t *VideoGrab(int *, int *, int *, int);
|
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 VideoOsdInit(void); ///< Setup osd.
|
||||||
extern void VideoOsdExit(void); ///< Cleanup osd.
|
extern void VideoOsdExit(void); ///< Cleanup osd.
|
||||||
|
|
||||||
extern void VideoInit(const char *); ///< Setup video module.
|
extern void VideoInit(const char *); ///< Setup video module.
|
||||||
extern void VideoExit(void); ///< Cleanup and exit video module.
|
extern void VideoExit(void); ///< Cleanup and exit video module.
|
||||||
|
|
||||||
extern void VideoFlushInput(void); ///< Flush video input buffers.
|
extern int VideoPollInput(void); ///< Poll video input buffers.
|
||||||
extern int VideoDecode(void); ///< Decode video input buffers.
|
extern int VideoDecodeInput(void); ///< Decode video input buffers.
|
||||||
|
extern int VideoGetBuffers(void); ///< Get number of input buffers.
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|||||||
Reference in New Issue
Block a user