Re: Re: can't output sound on dvb
Nico <[email protected]>
| Newsgroups | gmane.comp.video.mplayer.user.dvb |
|---|---|
| Message-ID | <[email protected]> |
Can you please test this newer patch, please?
The syntax is different: -vo mpegpes:card=1..4
If it works without problems I will repost it to -dev-eng.
Thanks,
Nico
_______________________________________________
Mplayer-dvb mailing list
[email protected]
http://mplayerhq.hu/mailman/listinfo/mplayer-dvb
dvbout4.diff
(text/plain, 1.9 KB)
diff -Naurb main/DOCS/man/en/mplayer.1 main3/DOCS/man/en/mplayer.1
--- main/DOCS/man/en/mplayer.1 2004-02-17 14:52:59.000000000 +0000
+++ main3/DOCS/man/en/mplayer.1 2004-02-20 00:59:24.000000000 +0000
@@ -3664,6 +3664,12 @@
.TP
.B mpegpes
DVB specific output driver.
+.PD 0
+.RSs
+.IPs card=<number>
+Specifies the device number to use if you have more than one DVB output card.
+.RE
+.PD 1
.TP
.B zr\ \ \ \ \
Output driver for a number of MJPEG capture/playback cards.
diff -Naurb main/libvo/vo_mpegpes.c main3/libvo/vo_mpegpes.c
--- main/libvo/vo_mpegpes.c 2003-01-12 17:46:21.000000000 +0000
+++ main3/libvo/vo_mpegpes.c 2004-02-20 08:43:15.000000000 +0000
@@ -100,20 +100,38 @@
static uint32_t preinit(const char *arg){
#ifdef HAVE_DVB
+ int card = 0;
+ char vo_file[30], ao_file[30];
+
+ if(arg != NULL){
+ if(strlen(arg) > 5){
+ card = atoi(&arg[5]);
+ if((card < 1) || (card > 4)){
+ mp_msg(MSGT_VO, MSGL_ERR, "DVB card number must be between 1 and 4\n");
+ return -1;
+ }
+
+ card--;
+ arg = strchr(arg, ':');
+ }
+ }
+
if(!arg){
//|O_NONBLOCK
#ifndef HAVE_DVB_HEAD
- printf("Opening /dev/ost/video+audio\n");
- if((vo_mpegpes_fd = open("/dev/ost/video",O_RDWR)) < 0){
+ mp_msg(MSGT_VO,MSGL_INFO,"Opening /dev/dvb/adapter%d/video0+audio0\n", card);
+ sprintf(vo_file, "/dev/dvb/adapter%d/video0", card);
+ if((vo_mpegpes_fd = open(vo_file,O_RDWR)) < 0){
perror("DVB VIDEO DEVICE: ");
return -1;
}
- if((vo_mpegpes_fd2 = open("/dev/ost/audio",O_RDWR|O_NONBLOCK)) < 0){
+ sprintf(ao_file, "/dev/dvb/adapter%d/audio0", card);
+ if((vo_mpegpes_fd2 = open(ao_file,O_RDWR|O_NONBLOCK)) < 0){
perror("DVB AUDIO DEVICE: ");
return -1;
}
#else
- printf("Opening /dev/dvb/adapter0/video0+audio0\n");
+ mp_msg(MSGT_VO,MSGL_INFO,"Opening /dev/dvb/adapter0/video0+audio0\n");
if((vo_mpegpes_fd = open("/dev/dvb/adapter0/video0",O_RDWR)) < 0){
perror("DVB VIDEO DEVICE: ");
return -1;