Commit 8ff70296 authored by Michael Hunold's avatar Michael Hunold Committed by Linus Torvalds

[PATCH] some more av7110 dvb-driver updates

 - some progress on DVB-C analog module: experimentally fix frequency
   offset, initialize msp3400 for analog TV sound
 - Reduce the number of dropped TS packets when an error is detected
   (Jon Burgess)
 - If somebody calls G_TUNER for a DVB-C card w/ analog module, then
   check for the selected tuner, not if the currently selected channel
   has a tuner.
 - play_iframe may be used to play stillpicture frames, that can either
   by complete i-frames or partial p-frames.  In any case, the av7110
   needs about 400kB of video data, before the internal video decoder
   starts displaying anything.  for stillframes, this is bad, so we
   *always* loop writing the frame until the magic amount is reached.
   stupid, but works... 
 - applied 64bit fixes by Pedro Miguel Teixeira <pmsjt@warner.homeip.net
parent 583e3c0c
...@@ -391,7 +391,9 @@ void dvb_dmx_swfilter_packets(struct dvb_demux *demux, const u8 *buf, size_t cou ...@@ -391,7 +391,9 @@ void dvb_dmx_swfilter_packets(struct dvb_demux *demux, const u8 *buf, size_t cou
spin_lock(&demux->lock); spin_lock(&demux->lock);
while (count--) { while (count--) {
if(buf[0] == 0x47) {
dvb_dmx_swfilter_packet(demux, buf); dvb_dmx_swfilter_packet(demux, buf);
}
buf += 188; buf += 188;
} }
......
This diff is collapsed.
...@@ -399,7 +399,7 @@ struct av7110 { ...@@ -399,7 +399,7 @@ struct av7110 {
struct dvb_device dvb_dev; struct dvb_device dvb_dev;
struct dvb_net dvb_net; struct dvb_net dvb_net;
struct video_device vd; struct video_device v4l_dev;
struct saa7146_dev *dev; struct saa7146_dev *dev;
......
...@@ -80,14 +80,11 @@ static void vpeirq (unsigned long data) ...@@ -80,14 +80,11 @@ static void vpeirq (unsigned long data)
return; return;
if (newdma > olddma) { /* no wraparound, dump olddma..newdma */ if (newdma > olddma) { /* no wraparound, dump olddma..newdma */
if(mem[olddma] == 0x47)
dvb_dmx_swfilter_packets(&budget->demux, dvb_dmx_swfilter_packets(&budget->demux,
mem+olddma, (newdma-olddma) / 188); mem+olddma, (newdma-olddma) / 188);
} else { /* wraparound, dump olddma..buflen and 0..newdma */ } else { /* wraparound, dump olddma..buflen and 0..newdma */
if(mem[olddma] == 0x47)
dvb_dmx_swfilter_packets(&budget->demux, dvb_dmx_swfilter_packets(&budget->demux,
mem+olddma, (TS_BUFLEN-olddma) / 188); mem+olddma, (TS_BUFLEN-olddma) / 188);
if(mem[0] == 0x47)
dvb_dmx_swfilter_packets(&budget->demux, dvb_dmx_swfilter_packets(&budget->demux,
mem, newdma / 188); mem, newdma / 188);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment