Okay, I went back and did some research on my problem
and I bring it to the group again.

Freevo 1.5.4 (compiled from source)
DirectFB 0.9.24 (from source)
mmpython 0.4.9
pygame 1.7.1
fbxine 0.99.4
df_xine from DirectFB Extras 0.9.23

Patches to Freevo python files to add detection of
df_xine in setup.py and circumvent version checking in
xine.py (df_xine does not report a version number, -v
is used to set verbosity of output).

Debian 3.0, dist-upgraded to Sarge
Kernel 2.4.27 (from source, with AMD K7 optimizations)
This is an 'X-less' box. It all runs from the command
line

Matrox G400 Max DH card, running TV-Out from the
second head

Did I miss anything?

Okay. The main problem is Freevo cannot control
df_xine or fbxine when playing back DVDs. After a bit
of fiddling, I've narrowed this down to an issue with
DirectFB, because:

* DVD playback with df_xine or fbxine is unresponsive

* Video playback with mplayer (used for everything but
DVDs) responds to mplayer's key commands, but not
necessarily Freevo's key commands.

* Audio playback (mplayer) always responds to Freevo's
key commands

For example, right now Freevo's volume bindings are
'n' for decrease and 'm' for increase. If I play back
audio in mplayer (which uses OSS/ALSA, not DirectFB)
then n/m control volume. However, if I play back video
in mplayer (DVD Title or video file), n/m no longer
control volume, but '/' and '*' (mplayer's default
volume keys) on the keypad do. I believe this works
because mplayer will still respond to it's keyboard
commands when run with the -slave switch. df_xine and
fbxine ignore the keyboard and only listen to stdin
when run with --stdctl.

I can only conclude that video playback through
DirectFB is somehow blocking the stdin commands from
Freevo. I'm very suspicious of the 'virtual terminal'
stuff that DFB is supposed to do. If a child app runs
in a virtual terminal, will Freevo be able to
communicate with it? However, no combination of
'no-vt-switch' and 'no-vt-switching' in the directfbrc
file seems to make any difference.

Interesting to me, if I run df_xine with --stdctl over
telnet, when DirectFB fires up it reports the line:

(*) Direct/Thread: Running 'VT Switcher' (CRITICAL,
1093)...

Freevo also reports this line whenever the DirectFB
system initalizes.

But if I run fbxine with --stdctl (the only way it
will run from telnet), that line does NOT appear. In
both cases, all lines in directfbrc that deal with the
VT are commented out.

For what it's worth:

If Freevo starts fbxine, the terminal that appears
behind the video output is active: I can type things
into the command line and get responses, even as the
DVD plays back. This leads me to think Freevo has lost
the keyboard.

The above may also be the case with df_xine, but
df_xine does not show any of the terminal behind the
video when played back on the monitor, and blanks the
terminal monitor completely when played back on the
TV-Out.

Both df_xine and fbxine work fine outside of Freevo
when run normally (without the --stdctl command). They
respond to all keyboard commands. Both fbxine and
df_xine do not show a terminal behind the video in
this case. If df_xine is run with --layer=0 for
TV-Out, the terminal monitor remains black.

If I run fbxine with --stdctl from the terminal, I can
control it via stdin. I can also see my input and
fbxine's output because the terminal appears 'behind'
the DVD playback. However, when I quit fbxine, the
output remains until I press a key. Then all output is
instantly restored exactly as it was before running
fbxine (fbxine is running in a DFB virtual terminal?).

If I run df_xine with --stdctl from the terminal, I
can _not_ see any part of the terminal 'behind' the
video playback on the monitor. It also does _not_
respond to stdin commands.

If I run df_xine with --stdctl and --layer=0 (to force
it to TV-Out), the terminal monitor is blanked and the
video is output to the TV. However as above, it does
not respond to stdin commands.

If I run df_xine or fbxine with --stdctl from a telnet
session, they will respond to stdin commands sent over
the telnet session.

In all cases where df_xine or fbxine become
unresponsive from inside Freevo, if I terminate the
process manually (via Telnet), Freevo pops back up
once the child process ends. So I can assume Freevo is
working correctly, waiting for the child process to
end. There's just some kind of disconnect between the
keyboard and/or Freevo and/or the child process when
DirectFB is running.

Anyone have any clues they can offer? Even just a
nudge in the right direction? I'd love to whip this,
because otherwise my Freevo box is ready for
prime-time in the living room. I don't have a TV-Tuner
card yet, but I do have the webserver, recordserver
and tv_grab working near perfectly (so I can browse
the guide and set up recordings, just not view or
record anything).

I'd be happy to provide any debug logs (Freevo and
child-app) that may be needed.

Surely there are other G400 DH/DirectFB Freevoers out
there who have a working setup?

Thanks in advance.

James
Panorama City, CA  USA


        
                
__________________________________ 
Yahoo! for Good - Make a difference this year. 
http://brand.yahoo.com/cybergivingweek2005/


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Freevo-users mailing list
Freevo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-users

Reply via email to