diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | Todo | 14 | ||||
-rw-r--r-- | softhddev.c | 11 | ||||
-rw-r--r-- | softhddevice.cpp | 11 | ||||
-rw-r--r-- | video.c | 10 |
5 files changed, 28 insertions, 20 deletions
@@ -1,5 +1,5 @@ User johns -Date: +Date: Sat Jan 21 15:49:16 CET 2012 Release Version 0.4.0 VDPAU: Add grab image support. @@ -25,14 +25,15 @@ missing: ITU BT601, ITU BT709 (HD), RGB studio levels (16-235)? suspend output / energie saver: stop audio, stop video, configurable Option deinterlace off / deinterlace force! - Make output drivers better modular. + Make output drivers better modular (under construction). video: subtitle not cleared subtitle could be asyncron + reduce warnings after channel switch vdpau: - VdpPreemptionCallback handling + VdpPreemptionCallback handling (under construction) hard channel switch suspendoutput didn't show logo or black picture. @@ -41,10 +42,14 @@ libva: yaepghd (VaapiSetOutputPosition) support can associate ony displayed part of osd auto crop for va-api + grab image for va-api + +libva: branch vaapi-ext + add support for vaapi-ext libva-intel-driver: intel still has hangups most with 1080i - 1080i does no v-sync (workaround written) + 1080i does no v-sync (workaround written, fixed with vaapi-ext) OSD has sometimes wrong size (workaround written) libva-vdpau-driver: @@ -91,7 +96,6 @@ setup: Setup 4:3 zoom type Some setup parameters are not used until restart. Can a notice be added to the setup menu? - 576i, 720p, fake 1080i, 1080i unsorted: Menu -> Setup -> Plugins -> skingenigmang -> General @@ -105,5 +109,7 @@ future features (not planed for 1.0 - 1.5) software decoder for xv / opengl atmolight support multistream handling + pip support + grab image with jpeg upmix stereo to AC-3 diff --git a/softhddev.c b/softhddev.c index 4ddf06c..af0bd8c 100644 --- a/softhddev.c +++ b/softhddev.c @@ -1140,8 +1140,12 @@ static void StartXServer(void) */ void SoftHdDeviceExit(void) { - // lets hope that vdr does a good thead cleanup - // no it doesn't do a good thread cleanup + // lets hope that vdr does a good thread cleanup + + VideoOsdExit(); + VideoExit(); + AudioExit(); + if (MyVideoDecoder) { CodecVideoClose(MyVideoDecoder); // FIXME: CodecDelVideoDecoder(MyVideoDecoder); @@ -1153,9 +1157,6 @@ void SoftHdDeviceExit(void) MyAudioDecoder = NULL; } - VideoOsdExit(); - VideoExit(); - AudioExit(); CodecExit(); VideoPacketExit(); diff --git a/softhddevice.cpp b/softhddevice.cpp index cbfd242..f48f263 100644 --- a/softhddevice.cpp +++ b/softhddevice.cpp @@ -148,12 +148,13 @@ class cSoftOsd:public cOsd cSoftOsd::cSoftOsd(int left, int top, uint level) :cOsd(left, top, level) { - // FIXME: OsdWidth/OsdHeight not correct! - dsyslog("[softhddev]%s: %dx%d+%d+%d, %d\n", __FUNCTION__, OsdWidth(), - OsdHeight(), left, top, level); + /* FIXME: OsdWidth/OsdHeight not correct! + dsyslog("[softhddev]%s: %dx%d+%d+%d, %d\n", __FUNCTION__, OsdWidth(), + OsdHeight(), left, top, level); + */ this->Level = level; - //SetActive(true); + SetActive(true); } cSoftOsd::~cSoftOsd(void) @@ -847,7 +848,7 @@ uchar *cSoftHdDevice::GrabImage(int &size, bool jpeg, int quality, int width, dsyslog("[softhddev]%s: %d, %d, %d, %dx%d\n", __FUNCTION__, size, jpeg, quality, width, height); - return ::GrabImage(&size, jpeg, quality, width, height); + return::GrabImage(&size, jpeg, quality, width, height); } ////////////////////////////////////////////////////////////////////////////// @@ -991,7 +991,7 @@ static void AutoCropDetect(AutoCropCtx * autocrop, int width, int height, } } - if (y1 > SKIP_Y || x1 > SKIP_X) { + if (0 && (y1 > SKIP_Y || x1 > SKIP_X)) { Debug(3, "video/autocrop: top=%d bottom=%d left=%d right=%d\n", y1, y2, x1, x2); } @@ -6981,12 +6981,12 @@ static void VideoEvent(void) case MapNotify: Debug(3, "video/event: MapNotify\n"); - // µwn workaround + // µwm workaround xcb_change_window_attributes(Connection, VideoWindow, XCB_CW_CURSOR, &VideoBlankCursor); break; case Expose: - Debug(3, "video/event: Expose\n"); + //Debug(3, "video/event: Expose\n"); break; case ReparentNotify: Debug(3, "video/event: ReparentNotify\n"); @@ -7330,7 +7330,7 @@ static void VideoSetPts(int64_t * pts_p, int interlaced, const AVFrame * frame) } } if (*pts_p != pts) { - Debug(3, + Debug(4, "video: %#012" PRIx64 "->%#012" PRIx64 " %4" PRId64 " pts\n", *pts_p, pts, pts - *pts_p); *pts_p = pts; @@ -7708,7 +7708,7 @@ void VideoSetVideoMode( __attribute__ ((unused)) int x, __attribute__ ((unused)) int y, int width, int height) { - Debug(3, "video: %s %dx%d%+d%+d\n", __FUNCTION__, width, height, x, y); + Debug(4, "video: %s %dx%d%+d%+d\n", __FUNCTION__, width, height, x, y); if ((unsigned)width == VideoWindowWidth && (unsigned)height == VideoWindowHeight) { |