Disko Forum logo Login  |  Register  |  Lost Password
Make MorphineTV/Disko display mode indenpendent

alanz
Posts: 21
graphgraph

Make MorphineTV/Disko display mode indenpendent 5 Years, 11 Months ago  
Hi, Guido,

In general STB SoC solution, a propriatery framebuffer driver will be comapnied with DirectFB. During insmod framebuffer driver, a display mode used as parameters will be transferred in framebuffer driver that will use it to determine how much frame data buffer will be allocated. EX. for 1920 x 1080, the frame data buffer will be larger than 1280 x 720's frame data buffer. This input display mode parameter is the global setting for both video and OSD output. So for a HD solution, the 1920 x 1080 or 1280 x 720 should be appropriate setting for the total composite output including video, and OSD on TV screen. But MorphineTV does not have to work in the same display resolution such as 1920 x 1080. But I found that if I define different mode for example 800 x 600 in morphinerc.xml, a fail message reported from framebuffer driver when doing mmsfbxxx. So I have to set the same display resolution as defined in framebuffer driver. I suggest that MorphineTV should work in itself's mode which will be optimized for UI display, and this resolution will just use a portion of frame data buffer allocated by framebuffer driver.

Best regards,
Alan Zhang
 
  The administrator has disabled public write access.
Make MorphineTV/Disko display mode indenpendent

Guido
Admin
Posts: 54
graphgraph

Re:Make MorphineTV/Disko display mode indenpendent 5 Years, 11 Months ago  
Hi Alan,

we discussed your requirement but we need more detailed information to make a decision.

Do you plan to setup the layers with two different resolutions? For example, the Videolayer in 1024x768 and the OSD layer in 720x576?

regards

guido
 
  The administrator has disabled public write access.
Make MorphineTV/Disko display mode indenpendent

alanz
Admin
Posts: 21
graphgraph

Re:Make MorphineTV/Disko display mode indenpendent 5 Years, 11 Months ago  
Hi, Guido,

I do not use VideoLayer in DirectFB because the pipeline for decoding,displaying video is maintained by a dedicated resources in CX2450x, and the these drivers are proprietary, not Linux-DVB APIs compliant. The ultimate TV signal is composited of several layers including Video, OSD, Background, Cursor etc. So as you can see that the final output unit must work in 1920 x 1080 or 1280 x 720 mode for optimizing displaying HD video, and this impacts the HD OSD layer also works in 1920 x 1080 mode. This HD OSD working mode does not mean that the OSD image objects have be to 1920 x 1080 resolution, they can be 720 x 576 for example, so just a sub-region of the total OSD resolution. This mechanism is supported by the chipset's driver, but it seems that MorphineTV/Disko does not just map its OSD images objects in the region that is defined in morphinerc.xml if below 1920 x 1080, and seems that MorphineTV/Disko will invoke DirectFB's low level func to set the resolution.

Best regards,
Alan Zhang
 
  The administrator has disabled public write access.
Make MorphineTV/Disko display mode indenpendent

Guido
Admin
Posts: 54
graphgraph

Re:Make MorphineTV/Disko display mode indenpendent 5 Years, 10 Months ago  
Hi Alan,

first of all we wish you a happy new year!!

We discussed your problem but we have problems to understand your requirement. Do you have a short code example that we can use as template?

A second way is to discuss your feature via chat. Do you use a chat client like ICQ or skype?

regards

Guido
 
  The administrator has disabled public write access.
Make MorphineTV/Disko display mode indenpendent

alanz
Admin
Posts: 21
graphgraph

Re:Make MorphineTV/Disko display mode indenpendent 5 Years, 10 Months ago  
Hi,Guido,
In fact, after I adjusted the code in DirectFBInit() to merge the cx24500 drivers' init and pipeline establishment, all the left things are running just like a normal DirectFB application. I attach my startup shell script file and morphinerc.xml file so you can see what is my configuration.

I really want to communicate with you guys via MSN on DISKO/MorphineTV application in STB, but NXP forbids IM inside intranet that is what I am fixing out via RealTunnel. I hope it will be fixed. My MSN account is my registered email address in DISKO forum that you can see.

Best regards,
Alan

-------------------Shell Scripts-----------------------
#!/bin/sh
/bin/rm -rf /dev/notifyq 2>&1 >/dev/null
/bin/rm -rf /dev/user_kal 2>&1 >/dev/null
/bin/rm -rf /dev/cnxt/cnxt_gen_drv 2>&1 >/dev/null
/bin/rm -rf /dev/fb0 2>&1 >/dev/null

/bin/mkdir -p /dev/cnxt

/bin/mknod /dev/cnxt/cnxt_gen_drv c 254 0
/bin/mknod /dev/notifyq c 254 1
/bin/mknod /dev/user_kal c 254 2
/bin/mknod /dev/iolib c 253 0
/bin/mknod /dev/fb0 c 29 0

/sbin/insmod /appfs/lib/modules/cnxt_kernel_kal.ko
/sbin/insmod /appfs/lib/modules/cnxt_base_drv.ko init=0

/sbin/insmod /appfs/lib/modules/cnxt_lnx_drv.ko

/sbin/insmod /appfs/lib/modules/cnxt_fb_drv.ko cnxtfb_standalone=1 cnxtfb_width=1920 cnxtfb_height=1080

/bin/mkdir /dev/shm
/bin/mount tmpfs /dev/shm -ttmpfs
/bin/echo -e "depth=32\npixelformat=ARGB\nno-vt\nno-debug\n" > /etc/directfbrc
/bin/echo -e "mode \"1920x1080 60Hz 32bit\"\n# D: 31.50 MHz, H: 37.500 kHz, V: 75.00 Hz\ngeometry 1920 1080 1920 2160 32\ntimings 31747 120 16 16 1 64 3\nendmode" > /etc/fb.modes
# /bin/echo -e "mode \"800x600 60Hz 32bit\"\n# D: 31.50 MHz, H: 37.500 kHz, V: 75.00 Hz\ngeometry 800 600 800 1200 32\ntimings 31747 120 16 16 1 64 3\nendmode" > /etc/fb.modes
export PATH=$PATH:/appfs/bin:/appfs/sbin
export LD_LIBRARY_PATH=/lib:/appfs/lib:/appfs/lib/morphine.tv:/appfs/lib/disko

/bin/echo "At the moment, we will setup env for Morphine.TV"
/appfs/etc/rc.d/init.d/messagebus start
/appfs/etc/rc.d/init.d/haldaemon start

cd /appfs/bin
# echo "Applying local configuration to the morphinerc.xml..."
# ./scripts/updatemorphinerc.sh /appfs/etc/morphinerc.xml /appfs/share/morphine.tv/db /appfs/share/morphine.tv /appfs/etc /appfs

if [ ! -f /appfs/share/morphine.tv/db/mmsconfigdb ]; then
echo "Creating database files..."
./sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/createconfigdb.sql
./sqlite3 /appfs/share/morphine.tv/db/mmsdatadb <./scripts/createdatadb.sql

echo "Creating database files for plugins..."
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_tv.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_dvd.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_video.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_music.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_cd.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_photo.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_weather.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_mixer.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_halplugin.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_filechooser.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_epgimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_videoimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_tvchannelimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_musicimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_photoimport.sql

fi

echo "Now, start Morphine.TV application for fun..."
./morphine --config=/appfs/etc/morphinerc.xml $@

------------------- morphinerc.xml -----------------------------

<mmsrc version="1.1.0">
<global>
<parameter name="logfile" value="/appfs/share/morphine.tv/logs/logfile" />
<parameter name="inputmap" value="default" />
<parameter name="prefix" value="/appfs" />
<parameter name="syi,Guido,
In fact, after I adjusted the code in DirectFBInit() to merge the cx24500 drivers' init and pipeline establishment, all the left things are running just like a normal DirectFB application. I attach my startup shell script file and morphinerc.xml file so you can see what is my configuration.

I really want to communicate with you guys via MSN on DISKO/MorphineTV application in STB, but NXP forbids IM inside intranet that is what I am fixing out via RealTunnel. I hope it will be fixed. My MSN account is my registered email address in DISKO forum that you can see.

Best regards,
Alan

-------------------Shell Scripts-----------------------
#!/bin/sh
/bin/rm -rf /dev/notifyq 2>&1 >/dev/null
/bin/rm -rf /dev/user_kal 2>&1 >/dev/null
/bin/rm -rf /dev/cnxt/cnxt_gen_drv 2>&1 >/dev/null
/bin/rm -rf /dev/fb0 2>&1 >/dev/null

/bin/mkdir -p /dev/cnxt

/bin/mknod /dev/cnxt/cnxt_gen_drv c 254 0
/bin/mknod /dev/notifyq c 254 1
/bin/mknod /dev/user_kal c 254 2
/bin/mknod /dev/iolib c 253 0
/bin/mknod /dev/fb0 c 29 0

/sbin/insmod /appfs/lib/modules/cnxt_kernel_kal.ko
/sbin/insmod /appfs/lib/modules/cnxt_base_drv.ko init=0

/sbin/insmod /appfs/lib/modules/cnxt_lnx_drv.ko

/sbin/insmod /appfs/lib/modules/cnxt_fb_drv.ko cnxtfb_standalone=1 cnxtfb_width=1920 cnxtfb_height=1080

/bin/mkdir /dev/shm
/bin/mount tmpfs /dev/shm -ttmpfs
/bin/echo -e "depth=32\npixelformat=ARGB\nno-vt\nno-debug\n" > /etc/directfbrc
/bin/echo -e "mode \"1920x1080 60Hz 32bit\"\n# D: 31.50 MHz, H: 37.500 kHz, V: 75.00 Hz\ngeometry 1920 1080 1920 2160 32\ntimings 31747 120 16 16 1 64 3\nendmode" > /etc/fb.modes
# /bin/echo -e "mode \"800x600 60Hz 32bit\"\n# D: 31.50 MHz, H: 37.500 kHz, V: 75.00 Hz\ngeometry 800 600 800 1200 32\ntimings 31747 120 16 16 1 64 3\nendmode" > /etc/fb.modes
export PATH=$PATH:/appfs/bin:/appfs/sbin
export LD_LIBRARY_PATH=/lib:/appfs/lib:/appfs/lib/morphine.tv:/appfs/lib/disko

/bin/echo "At the moment, we will setup env for Morphine.TV"
/appfs/etc/rc.d/init.d/messagebus start
/appfs/etc/rc.d/init.d/haldaemon start

cd /appfs/bin
# echo "Applying local configuration to the morphinerc.xml..."
# ./scripts/updatemorphinerc.sh /appfs/etc/morphinerc.xml /appfs/share/morphine.tv/db /appfs/share/morphine.tv /appfs/etc /appfs

if [ ! -f /appfs/share/morphine.tv/db/mmsconfigdb ]; then
echo "Creating database files..."
./sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/createconfigdb.sql
./sqlite3 /appfs/share/morphine.tv/db/mmsdatadb <./scripts/createdatadb.sql

echo "Creating database files for plugins..."
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_tv.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_dvd.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_video.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_music.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_cd.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_photo.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_weather.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_mixer.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_halplugin.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_filechooser.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_epgimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_videoimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_tvchannelimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_musicimport.sql
/appfs/bin/sqlite3 /appfs/share/morphine.tv/db/mmsconfigdb <./scripts/registerme_photoimport.sql

fi

echo "Now, start Morphine.TV application for fun..."
./morphine --config=/appfs/etc/morphinerc.xml $@

------------------- morphinerc.xml -----------------------------

<mmsrc version="1.1.0">
<global>
<parameter name="logfile" value="/appfs/share/morphine.tv/logs/logfile" />
<parameter name="inputmap" value="default" />
<parameter name="prefix" value="/appfs" />
<parameter name="sysconfig" value="/appfs/etc" />
<parameter name="data" value="/appfs/share/morphine.tv" />
<parameter name="theme" value="default" />
<parameter name="firstplugin" value="TV Plugin" />
<parameter name="shutdown" value="false"/>
<parameter name="shutdowncmd" value=""/>
</global>
<dbsettings type="config">
<parameter name="database" value="/appfs/share/morphine.tv/db/mmsconfigdb" />
</dbsettings>
<dbsettings type="data">
<parameter name="database" value="/appfs/share/morphine.tv/db/mmsdatadb" />
</dbsettings>
<dfbsettings >
<parameter name="xres" value="1920" />
<parameter name="yres" value="1080" />
<parameter name="outputtype" value="vesafb" />
<parameter name="videolayerid" value="0" />
<parameter name="videolayerpixelformat" value="ARGB" />
<parameter name="videolayeroptions" value="" />
<parameter name="videolayerbuffermode" value="BACKSYSTEM" />
<parameter name="graphicslayerid" value="0" />
<parameter name="graphicslayerpixelformat" value="ARGB" />
<parameter name="graphicslayeroptions" value="" />
<parameter name="graphicslayerbuffermode" value="BACKSYSTEM" />
<parameter name="vrect.x" value="0" />
<parameter name="vrect.y" value="0" />
<parameter name="vrect.w" value="1920" />
<parameter name="vrect.h" value="1080" />
<parameter name="touchrect.x" value="0" />
<parameter name="touchrect.y" value="0" />
<parameter name="touchrect.w" value="0" />
<parameter name="touchrect.h" value="0" />
<parameter name="pointer" value="false" />
<parameter name="graphicswindowpixelformat" value="ARGB"/>
<parameter name="graphicssurfacepixelformat" value="ARGB" />
<parameter name="extendedaccel" value="true" />
</dfbsettings>
</mmsrc>
 
  The administrator has disabled public write access.
Powered by FireBoard
get the latest posts directly to your desktop