>> > I've seen the EOF problem also. I got the impression that it is >> > speed related, i.e. if there is heavy load on the machine EOF >> > occurs more frequently. Nevertheless if you pipe the stream to a >> > file and then replay, there are no problems. Maybe the driver >> > replays values <0 through /dev/dvb/adapter0/dvr0 (don't know if >> > this is possible)?
I think iv found reason why these EOFs happen(on my system at least). Iv been doing some extessive tests with my own program that reads data from /dev/dvb/adapter0/dvr0 and pipes it to mplayer. Now this is what I think happens: When you play with say "cat /dev/dvb/adapter0/dvr0 | mplayer -" and move mplayers window and hold it there for few seconds, you get EOF, right? Now why this happens is that cat is being blocked(by mplayer) because cats write/fwrite() doesnt return. I ensured this is the case by making a small program to give graphical view about how much data was returned by read() when reading data from dvr0. So kernel driver will start doing some buffer but will, after some time, give up and return -1 to the reads caller - EOF Im not entirely sure if this has something to do with random EOFs though. Another thing is that while playing "bad" channels with no stream, cat gets blocked in kernel land, and causes some nasty issues when you try to shut down mplayer. I decided to solve these problems by writing a program that reads data from dvr0 by using two threads(one reads and one passes this data to stdout). This way mplayer can stop this "write thread" as long as my programs internal buffer is not full. I havent yet seen any EOFs with my program. You can find my "work around" program at: http://koti.mbnet.fi/~fre_ax/waround.tar.gz USAGE: ./waround | mplayer - NOTES: It uses 10 MB buffer by default. I also found reason why skystar2.o derefences NULL pointer with debug level 2:master_xfer function has missing check in the first loop... FIX: if (msgs[i].buf == NULL){ up(&tmp->i2c_sem); return -EINVAL; } I still get: DVB: registering frontend 0:0 (STV0299/TSA5059/SL1935 based)... master_xfer: read error ! 0, expected 1 message 0: flags=0x0, addr=0xe, buf=0x7e, len=1 message 1: flags=0x1, addr=0xe, buf=0xa1, len=1 though. Since I had some nasty issues with gszap(or whatever) when trying to get mplayershut down, I tried making mplayer support GUI playlist for DVB. This of course didnt work out as its currently impossible to transmit data between libmpdemux and mplayers GUI. This will probably be fixed in mplayer G2... Im trying to get idea about having codecs export virtual filesystems for GUI and other UIs trought for mplayer G2. Also how do i _not_ receive all these messages from this mailinglist in my mail box? Do I need to unsubscribe to do this? Im on a _very_ slow inet connection here and I have no idea on how to remove 100 messages from my mail box ;-| --Aapo Tahkola -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
