hello i have write i little c program for test : here is the program: #include <stdio.h> #include </usr/include/linux/dvb/frontend.h> #include <stdlib.h> #include <stdint.h> #include <ctype.h> #include <sys/ioctl.h> #include <sys/poll.h> #include <unistd.h> #include <error.h> #include <errno.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <time.h> #include <unistd.h> #include <linux/dvb/dmx.h> #include <linux/dvb/frontend.h> #include <linux/dvb/dmx.h> #define MIA "/dev/dvb/adapter0/frontend0" #define MD "/dev/dvb/adapter0/demux0" //#define DVR "/dev/dvb/adapter0/dvr0" #define DVR_FILE "/home/lucak904/Scrivania/Luca/prog_c/sat/mio.dat" #define BUFFY (188*20) main() { struct dvb_frontend_info luca; struct dvb_frontend_parameters parametri; struct dvb_frontend_parameters luca2; struct dmx_pes_filter_params filtri; parametri.frequency = 1197700; parametri.inversion = INVERSION_AUTO; parametri.u.qpsk.symbol_rate = 2750000; parametri.u.qpsk.fec_inner = FEC_AUTO; fe_status_t status; int fd, min, max,chiudo_fd, chiudo_md, chiudo_dvr ,stato, pp, freq, ritorno, sy_rate, tt, md,fec_inn, inv, dvr, dvr_out,len; uint8_t buf [BUFFY]; if((fd = open(MIA,O_RDWR)) < 0){ perror("FRONTEND DEVICE: "); return -1; } if (ioctl(fd, FE_SET_FRONTEND, ¶metri) < 0){ perror("QPSK TUNE: "); return -1; } if (ioctl(fd, FE_GET_FRONTEND ,&luca2) <0){ perror ("GET_INFO: "); return -1; } printf("\nfreq :%d", luca2. frequency); printf("\nsimbol_rate : %d", luca2.u.qpsk.symbol_rate); printf("\ninversion : %d", luca2.inversion); printf("\nfec : %d", luca2. u. qpsk.fec_inner); if (ioctl(fd, FE_GET_INFO ,&luca) <0){ perror("GET_INFO: "); return -1; } printf ("\nfreq min:% d", luca.frequency_min); printf("\nfreq max:%d", luca. frequency_max); if (ioctl(fd, FE_READ_STATUS ,&status) <0){ perror ("FE_READ_STATUS: "); return -1; } // apro il demux printf("\nstato :%d", status); if((md = open(MD, O_RDWR|O_NONBLOCK)) < 0) { perror("DEMUX DEVICE: "); return -1; } //setto il demux filtri.pid = 1296; filtri.input = DMX_IN_FRONTEND; filtri.output = DMX_OUT_TAP; filtri. pes_type = DMX_PES_OTHER; filtri.flags = DMX_IMMEDIATE_START; if (ioctl (md, DMX_SET_PES_FILTER, &filtri) < 0) { perror("DEMUX DEVICE: "); return -1; } //apro il dvr //if ((dvr = open(DVR, O_RDONLY|O_NONBLOCK)) < 0) { // perror("DVR DEVICE : "); // / return -1; // } if ((dvr_out = open ("/home/lucak904/Scrivania/Luca/prog_c/sat/prova_scar.txt", O_WRONLY)) < 0) { perror(" DVR FILE : "); return -1; } if((len = read(md,buf, BUFFY)) < 0){ perror("non leggo"); } else{ write(dvr_out,buf,len); } chiudo_fd = close(fd); chiudo_md = close(md); //chiudo_dvr = close(dvr); } It is just a test every time i get Resource temporarily unavailable For my understanding it means that nothing is readed from demux device, wath is wrong , the pid and frequency are ok the SNR is more than 70% Thanks Luca -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html