Opened 20 years ago

Closed 20 years ago

#101 closed enhancement (invalid)

XVMC Colour OSD patch

Reported by: Ivor Hewitt <ivor@…> Owned by: danielk
Priority: minor Milestone: 0.20
Component: mythtv Version: head
Severity: medium Keywords: xvmc colour color osd
Cc: Ticket locked: no

Description

This is the current version of the xvmc colour osd patch. When used with the included xvmcosd theme, a 16 colour transparent on screen display is used. Still work in progress, but quite usable. Feedback welcome.

Attachments (3)

xvmcosd-6.diff (57.1 KB ) - added by Ivor Hewitt <ivor@…> 20 years ago.
xvmcosd.tar.bz2 (51.7 KB ) - added by Ivor Hewitt <ivor@…> 20 years ago.
OSD theme to go with patch
xvmcosd-cleanedup-v1.patch (66.9 KB ) - added by danielk 20 years ago.
Ivors patch w/some cleanup

Download all attachments as: .zip

Change History (20)

by Ivor Hewitt <ivor@…>, 20 years ago

Attachment: xvmcosd-6.diff added

by Ivor Hewitt <ivor@…>, 20 years ago

Attachment: xvmcosd.tar.bz2 added

OSD theme to go with patch

comment:1 by sim@…, 20 years ago

What revision is the patch against? I patched against 6831 and got the following error:

distcc g++ -c -pipe -Wall -W -Wall -Wno-switch -Os -fomit-frame-pointer `freetype-config --cflags` -D_REENTRANT -DPIC -fPIC  -DMMX -Di386 -DHAVE_DVDNAV -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -D_LARGEFILE_SOURCE -DUSING_OSS -DUSING_XV -DUSING_XVMC -DUSING_XVMCW -DUSING_XVMC_VLD -DUSING_FRONTEND -DUSING_V4L -DUSING_DVB -DUSING_DVB_EIT -DUSING_BACKEND -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -I/usr/share/qt3/mkspecs/default -I. -I../../../../../include -I../../../../../../include -I../.. -I../libmyth -I.. -Idvbdev -Impeg -I../libavcodec -I../libmythmpeg2 -I../../../../../../include/qt3 -o osdsurface.o osdsurface.cpp
osdsurface.cpp: In function `void (* blendtoargb_8_init(const
   YUVSurface*))(const YUVSurface*, unsigned char*, unsigned char*, unsigned
   char*, unsigned char*, unsigned char*)':
osdsurface.cpp:406: error: invalid conversion from `void (*)(YUVSurface*,
   unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned
   char*)' to `void (*)(const YUVSurface*, unsigned char*, unsigned char*,
   unsigned char*, unsigned char*, unsigned char*)'
osdsurface.cpp: In member function `void I44Surface::BlendToI44(unsigned char*,
   bool, unsigned int, unsigned int) const':
osdsurface.cpp:918: warning: unused parameter `bool ifirst'
osdsurface.cpp:918: warning: unused parameter `uint stride'
osdsurface.cpp:918: warning: unused parameter `uint height'
distcc[11371] ERROR: compile osdsurface.cpp on hermes failed
make[2]: *** [osdsurface.o] Error 1
make[2]: Leaving directory `/usr/local/src/Myth/mythtv/libs/libmythtv'
make[1]: *** [sub-libmythtv] Error 2
make[1]: Leaving directory `/usr/local/src/Myth/mythtv/libs'
make: *** [sub-libs] Error 2

It's Ubuntu Hoary in case it matters.

comment:2 by Ivor Hewitt <ivor@…>, 20 years ago

Owner: changed from Isaac Richards to ivor

Bah MMX.

Change line 306 of libs/libmythtv/osdsurface.cpp to:-

static inline void blendtoargb_8_mmx(const YUVSurface * /*surf*/, unsigned char *src,

comment:3 by sim@…, 20 years ago

Thanks, compiles now. I had a quick look and it does work.

comment:4 by mythdev@…, 20 years ago

Works perfectly for me to. When will it be included into svn?

comment:5 by Isaac Richards, 20 years ago

Haven't decided on it or not. The chroma-key OSD is a better approach, IMO.

comment:6 by mfgalizi@…, 20 years ago

Works great for me!

comment:7 by danielk, 20 years ago

Owner: changed from ivor to danielk
Status: newassigned

I'm going to look at this and implementing the chroma-key OSD in 0.20.

comment:8 by danielk, 20 years ago

Milestone: 0.20

comment:9 by ivor@…, 20 years ago

Hi Daniel, Let me know before you do. I have a patch against current svn and with a few more tweaks/fixes. I'll tidy it up and attach.

by danielk, 20 years ago

Attachment: xvmcosd-cleanedup-v1.patch added

Ivors patch w/some cleanup

comment:10 by danielk, 20 years ago

Ivor, a few things need to be addressed:

1/ Why break nVidia, Intel and ATI XvMC output? i.e. why break chromakeying? 2/ lots of formatting oddities, and un-needed formatting changes 3/ unrelated changes. It might be a good idea to do newline changes

earlier, but not in this patch...

4/ Compiler warning galore 5/ I marked some things with TODO that you might want to look at..

Also, if you broke this into smaller patches with as few dependencies as possible it would make my job much easier.

comment:11 by ivor, 20 years ago

Hi,

  1. I wasn't aware that it did. I had tried to write it to only kick in when you selected a matching theme. It should't break normal xvmc, I'll look into it.
  2. Well the patch has been lying around for nearly a year so naturally it's got a bit dusty.
  3. There shouldn't be any unrelated changes in there.
  4. Yup.
  5. Added to the bottom of my todo list. Need to sort out that palette code first. :)

Cheers,

comment:12 by anonymous, 20 years ago

LOL. ok I see the TODO is in fact on the palette code that I can't figure out at the moment! :) I'll raise the question on the dev list, basically I want a global palette on the osd/osdsurface available to all of the OSD components.

comment:13 by will@…, 20 years ago

has anyone got xvmcosd-cleanedup-v1.patch to apply against 0.19 ?

comment:14 by anonymous, 20 years ago

Actually, the Chromakey OSD fix (http://svn.mythtv.org/trac/changeset/7569) which is now in 0.19 allows a color OSD when using viaXvMC. The fix must be enabled by adding a setting to the database, which is described here

comment:15 by anonymous, 20 years ago

Sorry, the previous link should have been http://www.mythtv.org/wiki/index.php/XvMC

comment:16 by anonymous, 20 years ago

and that's got absolutely nothing to do with this ticket which is for rendering the osd using an XvMC surface.

comment:17 by danielk, 20 years ago

Resolution: invalid
Status: assignedclosed

Ivor, if you feel inspired to work on this patch again, feel free to reopen the ticket with the updated patch. I'm closing the ticket for now since it looks like an effectively dead ticket...

Note: See TracTickets for help on using tickets.