Ahhhhhhhhh, OK.Carjay hat geschrieben:Du zitierst den falschen Puffer. Die DVR-Puffergröße ist innerhalb der DVB-API festgelegt auf: 10*188*1024
Ich wühle mich so langsam durch. ....
Der Puffer wird also hier festgelegt?
Code: Alles auswählen
avia_gt_dmx.c
static u8 queue_size_table[AVIA_GT_DMX_QUEUE_COUNT] = {
10, /* video */
10, /* audio */
9, /* teletext */
9, 10, 11, 10, 10, /* user 3..7 */
8, 8, 8, 8, 8, 8, 8, 8, /* user 8..15 */
8, 8, 8, 7, 7, 7, 7, 7, /* user 16..23 */
7, 7, 7, 7, 7, 7, 7, /* user 24..30 */
8 /* message */
};
...
q->size = (1 << queue_size_table[0]) * 64;
...
Die Module die über open/read usw. aufgerufen werden sind aber diese Treiber ?
Code: Alles auswählen
.read = dvb_dvr_read,
.write = dvb_dvr_write,
.ioctl = dvb_dvr_ioctl,
.open = dvb_dvr_open,
.release = dvb_dvr_release,
.poll = dvb_dvr_poll,
Ist dieses umkopieren unbedingt notwendig (bei 1MB/s sind das kurz überschlagen bestimmt 5-10 % Prozessorlast (bei 4 bytes pro lese/schreibbefehl)?
Könnte der Treiber nicht direkt weiter auf die Festplatte schreiben? (es gibt eine Source dvb2eth die sowas anscheinend für das Netzwerk macht, aber womöglich wird das gar nicht benutzt)?
Günther