Hi Gerd,
Another btaudio patch - mp1e needs the SNDCTL_DSP_GETISPACE ioctl for
its audio/video sync to work properly (and for it to achieve the initial
sync that it needs to get started).
I've done an implementation of this ioctl that I think is right. You'll
probably want to review what I did 'cos I don't claim to have a deep
understanding of the overall btaudio code.
By the way - don't forget the other msp3400 patch I sent on the 1st which
fixes that msp3400 doesn't switch the I2S output in every case. Symptom
of that bug was no btaudio output in radio mode.
Anyway - here's this patch:
--- bttv-0.7.79/driver/btaudio.c Fri Sep 14 14:52:29 2001
+++ bttv-0.7.79-sld/driver/btaudio.c Wed Oct 3 11:36:03 2001
@@ -757,6 +757,25 @@
case SNDCTL_DSP_SYNC:
/* NOP */
return 0;
+ case SNDCTL_DSP_GETISPACE:
+ {
+ audio_buf_info info;
+ if (!bta->recording) return -EINVAL;
+ info.fragsize = bta->block_bytes>>bta->sampleshift;
+ info.fragstotal = bta->block_count;
+ info.bytes = bta->read_count;
+ info.fragments = info.bytes / info.fragsize;
+#if 0
+ if (debug) {
+ printk(KERN_DEBUG "Called SNDCTL_DSP_GETISPACE on a btaudio
+fd!\n");
+ printk(KERN_DEBUG "Returning fragsize=%d, fragstotal=%d
+bytes=%d fragments=%d\n",
+ info.fragsize, info.fragstotal, info.bytes,
+info.fragments);
+ }
+#endif
+ if (copy_to_user((void *)arg, &info, sizeof(info)))
+ return -EFAULT;
+ return 0;
+ }
#if 0 /* TODO */
case SNDCTL_DSP_GETTRIGGER:
case SNDCTL_DSP_SETTRIGGER:
_______________________________________________
Video4linux-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list