diff -ur --exclude-from dontdiff vanilla/main/libmpdemux/tv.c main/libmpdemux/tv.c --- vanilla/main/libmpdemux/tv.c 2002-11-25 20:29:20.000000000 +0100 +++ main/libmpdemux/tv.c 2002-12-15 15:05:46.000000000 +0100 @@ -159,6 +159,14 @@ tvh->norm = TV_NORM_NTSC; else if (!strcasecmp(tv_param_norm, "secam")) tvh->norm = TV_NORM_SECAM; + else if (!strcasecmp(tv_param_norm, "palnc")) + tvh->norm = TV_NORM_PALNC; + else if (!strcasecmp(tv_param_norm, "palm")) + tvh->norm = TV_NORM_PALM; + else if (!strcasecmp(tv_param_norm, "paln")) + tvh->norm = TV_NORM_PALN; + else if (!strcasecmp(tv_param_norm, "ntscjp")) + tvh->norm = TV_NORM_NTSCJP; mp_msg(MSGT_TV, MSGL_V, "Selected norm: %s\n", tv_param_norm); funcs->control(tvh->priv, TVI_CONTROL_TUN_SET_NORM, &tvh->norm); diff -ur --exclude-from dontdiff vanilla/main/libmpdemux/tv.h main/libmpdemux/tv.h --- vanilla/main/libmpdemux/tv.h 2002-10-25 11:16:45.000000000 +0200 +++ main/libmpdemux/tv.h 2002-12-15 15:00:33.000000000 +0100 @@ -154,6 +154,10 @@ #define TV_NORM_PAL 1 #define TV_NORM_NTSC 2 #define TV_NORM_SECAM 3 +#define TV_NORM_PALNC 4 +#define TV_NORM_PALM 5 +#define TV_NORM_PALN 6 +#define TV_NORM_NTSCJP 7 #endif /* USE_TV */ diff -ur --exclude-from dontdiff vanilla/main/libmpdemux/tvi_v4l.c main/libmpdemux/tvi_v4l.c --- vanilla/main/libmpdemux/tvi_v4l.c 2002-12-14 11:31:45.000000000 +0100 +++ main/libmpdemux/tvi_v4l.c 2002-12-15 15:34:37.000000000 +0100 @@ -980,15 +980,21 @@ { int req_mode = (int)*(void **)arg; - if ((req_mode != TV_NORM_PAL) && (req_mode != TV_NORM_NTSC) && (req_mode != TV_NORM_SECAM)) { + if ((req_mode != TV_NORM_PAL) && (req_mode != TV_NORM_NTSC) && (req_mode != TV_NORM_SECAM) + && (req_mode != TV_NORM_PALNC) && (req_mode != TV_NORM_PALM) && (req_mode != TV_NORM_PALN) + && (req_mode != TV_NORM_NTSCJP)) { mp_msg(MSGT_TV, MSGL_ERR, "Unknown norm!\n"); return(TVI_CONTROL_FALSE); } if (priv->channels[priv->act_channel].flags & VIDEO_VC_TUNER) { control(priv, TVI_CONTROL_TUN_GET_TUNER, 0); - if (((req_mode == TV_NORM_PAL) && !(priv->tuner.flags & VIDEO_TUNER_PAL)) || - ((req_mode == TV_NORM_NTSC) && !(priv->tuner.flags & VIDEO_TUNER_NTSC)) || + if (((req_mode == TV_NORM_PAL + || req_mode == TV_NORM_PALNC + || req_mode == TV_NORM_PALN) && !(priv->tuner.flags & VIDEO_TUNER_PAL)) || + ((req_mode == TV_NORM_NTSC + || req_mode == TV_NORM_NTSCJP + || req_mode == TV_NORM_PALM) && !(priv->tuner.flags & VIDEO_TUNER_NTSC)) || ((req_mode == TV_NORM_SECAM) && !(priv->tuner.flags & VIDEO_TUNER_SECAM))) { mp_msg(MSGT_TV, MSGL_ERR, "Tuner isn't capable to set norm!\n"); @@ -997,9 +1003,13 @@ switch(req_mode) { case TV_NORM_PAL: + case TV_NORM_PALNC: + case TV_NORM_PALN: priv->tuner.mode = VIDEO_MODE_PAL; break; case TV_NORM_NTSC: + case TV_NORM_NTSCJP: + case TV_NORM_PALM: priv->tuner.mode = VIDEO_MODE_NTSC; break; case TV_NORM_SECAM: @@ -1023,6 +1033,18 @@ case TV_NORM_SECAM: priv->channels[priv->act_channel].norm = VIDEO_MODE_SECAM; break; + case TV_NORM_PALNC: + priv->channels[priv->act_channel].norm = 3; + break; + case TV_NORM_PALM: + priv->channels[priv->act_channel].norm = 4; + break; + case TV_NORM_PALN: + priv->channels[priv->act_channel].norm = 5; + break; + case TV_NORM_NTSCJP: + priv->channels[priv->act_channel].norm = 6; + break; } if (ioctl(priv->video_fd, VIDIOCSCHAN, &priv->channels[priv->act_channel]) == -1) { @@ -1035,11 +1057,11 @@ return(TVI_CONTROL_FALSE); } - if(req_mode == TV_NORM_PAL || req_mode == TV_NORM_SECAM) { + if(req_mode == TV_NORM_PAL || req_mode == TV_NORM_SECAM || req_mode == TV_NORM_PALN || req_mode == TV_NORM_PALNC) { priv->fps = PAL_FPS; } - if(req_mode == TV_NORM_NTSC) { + if(req_mode == TV_NORM_NTSC || req_mode == TV_NORM_NTSCJP || req_mode == TV_NORM_PALM) { priv->fps = NTSC_FPS; }