Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 360471
Collapse All | Expand All

(-)kopete/libkopete/avdevice/videodevice.cpp (-426 lines)
Lines 117-146 void VideoDevice::setupControls() Link Here
117
			}
117
			}
118
			break;
118
			break;
119
#endif
119
#endif
120
		case VIDEODEV_DRIVER_V4L:
121
			{
122
				NumericVideoControl numCtrl;
123
				numCtrl.value_min = 0;
124
				numCtrl.value_max = 65535;
125
				numCtrl.value_step = 1;
126
				numCtrl.value_default = 32767;
127
				numCtrl.id = IMGCTRL_ID_V4L1_BRIGHTNESS;
128
				numCtrl.name = i18n("Brightness");
129
				m_numericCtrls.push_back( numCtrl );
130
				numCtrl.id = IMGCTRL_ID_V4L1_HUE;
131
				numCtrl.name = i18n("Hue");
132
				m_numericCtrls.push_back( numCtrl );
133
				numCtrl.id = IMGCTRL_ID_V4L1_COLOR;
134
				numCtrl.name = i18n("Color");
135
				m_numericCtrls.push_back( numCtrl );
136
				numCtrl.id = IMGCTRL_ID_V4L1_CONTRAST;
137
				numCtrl.name = i18n("Contrast");
138
				m_numericCtrls.push_back( numCtrl );
139
				numCtrl.id = IMGCTRL_ID_V4L1_WHITENESS;
140
				numCtrl.name = i18n("Whiteness");
141
				m_numericCtrls.push_back( numCtrl );
142
			}
143
			break;
144
#endif
120
#endif
145
		case VIDEODEV_DRIVER_NONE:
121
		case VIDEODEV_DRIVER_NONE:
146
		default:
122
		default:
Lines 486-554 detectSignalStandards(); Link Here
486
462
487
#endif
463
#endif
488
464
489
		CLEAR(V4L_capabilities);
490
491
		if(m_driver==VIDEODEV_DRIVER_NONE)
492
		{
493
			kDebug() << "checkDevice(): " << full_filename << " Trying V4L API.";
494
			if (-1 == xioctl (VIDIOCGCAP, &V4L_capabilities))
495
			{
496
				perror ("ioctl (VIDIOCGCAP)");
497
				m_driver = VIDEODEV_DRIVER_NONE;
498
				return EXIT_FAILURE;
499
			}
500
			else
501
			{
502
				kDebug() << full_filename << " is a V4L device.";
503
				m_driver = VIDEODEV_DRIVER_V4L;
504
				m_model=QString::fromLocal8Bit((const char*)V4L_capabilities.name);
505
				if(V4L_capabilities.type & VID_TYPE_CAPTURE)
506
					m_videocapture=true;
507
				if(V4L_capabilities.type & VID_TYPE_CHROMAKEY)
508
					m_videochromakey=true;
509
				if(V4L_capabilities.type & VID_TYPE_SCALES)
510
					m_videoscale=true;	
511
				if(V4L_capabilities.type & VID_TYPE_OVERLAY)
512
					m_videooverlay=true;
513
//				kDebug() << "libkopete (avdevice):     Inputs : " << V4L_capabilities.channels;
514
//				kDebug() << "libkopete (avdevice):     Audios : " << V4L_capabilities.audios;
515
				minwidth  = V4L_capabilities.minwidth;
516
				maxwidth  = V4L_capabilities.maxwidth;
517
				minheight = V4L_capabilities.minheight;
518
				maxheight = V4L_capabilities.maxheight;
519
520
521
				int inputisok=EXIT_SUCCESS;
522
				m_input.clear();
523
				for(int loop=0; loop < V4L_capabilities.channels; loop++)
524
				{
525
					struct video_channel videoinput;
526
					CLEAR(videoinput);
527
					videoinput.channel = loop;
528
					videoinput.norm    = 1;
529
					inputisok=xioctl(VIDIOCGCHAN, &videoinput);
530
					if(inputisok==EXIT_SUCCESS)
531
					{
532
						VideoInput tempinput;
533
						tempinput.name = QString::fromLocal8Bit((const char*)videoinput.name);
534
						tempinput.hastuner=videoinput.flags & VIDEO_VC_TUNER;
535
// TODO: The routine to detect the appropriate video standards for V4L must be placed here
536
						m_input.push_back(tempinput);
537
//						kDebug() << "libkopete (avdevice): Input " << loop << ": " << tempinput.name << " (tuner: " << ((videoinput.flags & VIDEO_VC_TUNER) != 0) << ")";
538
/*						if((input.type & V4L2_INPUT_TYPE_TUNER) != 0)
539
						{
540
//							_tunerForInput[name] = desc.tuner;
541
//							_isTuner = true;
542
						}
543
						else
544
						{
545
//							_tunerForInput[name] = -1;
546
						}
547
*/					}
548
				}
549
550
			}
551
		}
552
#endif
465
#endif
553
		m_name=m_model; // Take care about changing the name to be different from the model itself...
466
		m_name=m_model; // Take care about changing the name to be different from the model itself...
554
467
Lines 678-693 int VideoDevice::initDevice() Link Here
678
			}
591
			}
679
			break;
592
			break;
680
#endif
593
#endif
681
		case VIDEODEV_DRIVER_V4L:
682
			m_videoread=true;
683
			m_io_method=IO_METHOD_READ;
684
			if(-1 != xioctl(VIDIOCGFBUF,&V4L_videobuffer))
685
			{
686
//				m_videostream=true;
687
//				m_io_method = IO_METHOD_MMAP;
688
				kDebug() << "    Streaming interface";
689
			}
690
			break;
691
#endif
594
#endif
692
		case VIDEODEV_DRIVER_NONE:
595
		case VIDEODEV_DRIVER_NONE:
693
		default:
596
		default:
Lines 863-897 kDebug() << "VIDIOC_S_FMT worked (" << e Link Here
863
				}
766
				}
864
				break;
767
				break;
865
#endif
768
#endif
866
			case VIDEODEV_DRIVER_V4L:
867
				{
868
					struct video_window V4L_videowindow;
869
870
				if (xioctl (VIDIOCGWIN, &V4L_videowindow)== -1)
871
				{
872
					perror ("ioctl VIDIOCGWIN");
873
//					return (NULL);
874
				}
875
				V4L_videowindow.width  = newwidth;
876
				V4L_videowindow.height = newheight;
877
				V4L_videowindow.clipcount=0;
878
				if (xioctl (VIDIOCSWIN, &V4L_videowindow)== -1)
879
				{
880
					perror ("ioctl VIDIOCSWIN");
881
					return EXIT_FAILURE;
882
				}
883
kDebug() << "------------- width: " << V4L_videowindow.width << " Height: " << V4L_videowindow.height << " Clipcount: " << V4L_videowindow.clipcount << " -----------------";
884
885
				currentwidth  = V4L_videowindow.width;
886
				currentheight = V4L_videowindow.height;
887
888
//				kDebug() << "libkopete (avdevice): V4L_picture.palette: " << V4L_picture.palette << " Depth: " << V4L_picture.depth;
889
890
/*				if(-1 == xioctl(VIDIOCGFBUF,&V4L_videobuffer))
891
					kDebug() << "libkopete (avdevice): VIDIOCGFBUF failed (" << errno << "): Device cannot stream";*/
892
893
				}
894
				break;
895
#endif
769
#endif
896
			case VIDEODEV_DRIVER_NONE:
770
			case VIDEODEV_DRIVER_NONE:
897
			default:
771
			default:
Lines 966-998 pixel_format VideoDevice::setPixelFormat Link Here
966
			}
840
			}
967
			break;
841
			break;
968
#endif
842
#endif
969
		case VIDEODEV_DRIVER_V4L:
970
			{
971
			struct video_picture V4L_picture;
972
			if(-1 == xioctl(VIDIOCGPICT, &V4L_picture))
973
			{
974
				kDebug() << "VIDIOCGPICT failed (" << errno << ").";
975
			}
976
//			kDebug() << "V4L_picture.palette: " << V4L_picture.palette << " Depth: " << V4L_picture.depth;
977
			V4L_picture.palette = pixelFormatCode(newformat);
978
			V4L_picture.depth   = pixelFormatDepth(newformat);
979
			if(-1 == xioctl(VIDIOCSPICT,&V4L_picture))
980
			{
981
//				kDebug() << "Device seems to not support " << pixelFormatName(newformat) << " format. Fallback to it is not yet implemented.";
982
			}
983
984
			if(-1 == xioctl(VIDIOCGPICT, &V4L_picture))
985
			{
986
				kDebug() << "VIDIOCGPICT failed (" << errno << ").";
987
			}
988
989
//			kDebug() << "V4L_picture.palette: " << V4L_picture.palette << " Depth: " << V4L_picture.depth;
990
			m_pixelformat=pixelFormatForPalette(V4L_picture.palette);
991
			if (m_pixelformat == newformat)
992
				ret = newformat;
993
994
			}
995
			break;
996
#endif
843
#endif
997
		case VIDEODEV_DRIVER_NONE:
844
		case VIDEODEV_DRIVER_NONE:
998
		default:
845
		default:
Lines 1043-1059 int VideoDevice::selectInput(int newinpu Link Here
1043
				setupControls();
890
				setupControls();
1044
				break;
891
				break;
1045
#endif
892
#endif
1046
			case VIDEODEV_DRIVER_V4L:
1047
				struct video_channel V4L_input;
1048
				V4L_input.channel=newinput;
1049
				V4L_input.norm=4; // Hey, it's plain wrong! It should be input's signal standard!
1050
				if (-1 == ioctl (descriptor, VIDIOCSCHAN, &V4L_input))
1051
				{
1052
					perror ("ioctl (VIDIOCSCHAN)");
1053
					return EXIT_FAILURE;
1054
				}
1055
				setupControls();
1056
				break;
1057
#endif
893
#endif
1058
			case VIDEODEV_DRIVER_NONE:
894
			case VIDEODEV_DRIVER_NONE:
1059
			default:
895
			default:
Lines 1817-1851 int VideoDevice::getControlValue(quint32 Link Here
1817
			}
1653
			}
1818
			break;
1654
			break;
1819
#endif
1655
#endif
1820
		case VIDEODEV_DRIVER_V4L:
1821
			struct video_picture V4L_picture;
1822
			if(-1 == xioctl(VIDIOCGPICT, &V4L_picture))
1823
			{
1824
				kDebug() << "VIDIOCGPICT failed (" << errno << ").";
1825
				return EXIT_FAILURE;
1826
			}
1827
			switch (ctrl_id)
1828
			{
1829
				case IMGCTRL_ID_V4L1_BRIGHTNESS:
1830
					*value = V4L_picture.brightness;
1831
					break;
1832
				case IMGCTRL_ID_V4L1_HUE:
1833
					*value = V4L_picture.hue;
1834
					break;
1835
				case IMGCTRL_ID_V4L1_COLOR:
1836
					*value = V4L_picture.colour;
1837
					break;
1838
				case IMGCTRL_ID_V4L1_CONTRAST:
1839
					*value = V4L_picture.contrast;
1840
					break;
1841
				case IMGCTRL_ID_V4L1_WHITENESS:
1842
					*value = V4L_picture.whiteness;
1843
					break;
1844
				default:
1845
					return EXIT_FAILURE;
1846
			}
1847
			kDebug() << "Reported current value is" << *value << ".";
1848
			return EXIT_SUCCESS;
1849
#endif
1656
#endif
1850
		case VIDEODEV_DRIVER_NONE:
1657
		case VIDEODEV_DRIVER_NONE:
1851
		default:
1658
		default:
Lines 1963-2012 int VideoDevice::setControlValue(quint32 Link Here
1963
			}
1770
			}
1964
			break;
1771
			break;
1965
#endif
1772
#endif
1966
		case VIDEODEV_DRIVER_V4L:
1967
			struct video_picture V4L_picture;
1968
			if(-1 == xioctl(VIDIOCGPICT, &V4L_picture))
1969
			{
1970
				kDebug() << "VIDIOCGPICT failed (" << errno << ").";
1971
				return EXIT_FAILURE;
1972
			}
1973
			if (value < 0)
1974
			{
1975
				value = 0;
1976
				kDebug() << "Value exceeds lower limit ! Setting to minimum: 0";
1977
			}
1978
			else if (value > 65535)
1979
			{
1980
				value = 65535;
1981
				kDebug() << "Value exceeds upper limit ! Setting to maximum: 65535";
1982
			}
1983
			// TODO: consider step, too ?
1984
			switch (ctrl_id)
1985
			{
1986
				case IMGCTRL_ID_V4L1_BRIGHTNESS:
1987
					V4L_picture.brightness = value;
1988
					break;
1989
				case IMGCTRL_ID_V4L1_HUE:
1990
					V4L_picture.hue = value;
1991
					break;
1992
				case IMGCTRL_ID_V4L1_COLOR:
1993
					V4L_picture.colour = value;
1994
					break;
1995
				case IMGCTRL_ID_V4L1_CONTRAST:
1996
					V4L_picture.contrast = value;
1997
					break;
1998
				case IMGCTRL_ID_V4L1_WHITENESS:
1999
					V4L_picture.whiteness = value;
2000
					break;
2001
				default:
2002
					return EXIT_FAILURE;
2003
			}
2004
			if(-1 == xioctl(VIDIOCSPICT,&V4L_picture))
2005
			{
2006
				kDebug() << "Device seems to not support adjusting image brightness. Fallback to it is not yet implemented.";
2007
				return EXIT_FAILURE;
2008
			}
2009
			return EXIT_SUCCESS;
2010
#endif
1773
#endif
2011
		case VIDEODEV_DRIVER_NONE:
1774
		case VIDEODEV_DRIVER_NONE:
2012
		default:
1775
		default:
Lines 2070-2092 pixel_format VideoDevice::pixelFormatFor Link Here
2070
			}
1833
			}
2071
			break;
1834
			break;
2072
#endif
1835
#endif
2073
		case VIDEODEV_DRIVER_V4L:
2074
			switch(palette)
2075
			{
2076
				case 0				: return PIXELFORMAT_NONE;	break;
2077
				case VIDEO_PALETTE_GREY		: return PIXELFORMAT_GREY;	break;
2078
				case VIDEO_PALETTE_HI240	: return PIXELFORMAT_RGB332;	break;
2079
				case VIDEO_PALETTE_RGB555	: return PIXELFORMAT_RGB555;	break;
2080
				case VIDEO_PALETTE_RGB565	: return PIXELFORMAT_RGB565;	break;
2081
				case VIDEO_PALETTE_RGB24	: return PIXELFORMAT_RGB24;	break;
2082
				case VIDEO_PALETTE_RGB32	: return PIXELFORMAT_RGB32;	break;
2083
				case VIDEO_PALETTE_YUYV		: return PIXELFORMAT_YUYV;	break;
2084
				case VIDEO_PALETTE_UYVY		: return PIXELFORMAT_UYVY;	break;
2085
				case VIDEO_PALETTE_YUV420	:
2086
				case VIDEO_PALETTE_YUV420P	: return PIXELFORMAT_YUV420P;	break;
2087
				case VIDEO_PALETTE_YUV422P	: return PIXELFORMAT_YUV422P;	break;
2088
			}
2089
			break;
2090
#endif
1836
#endif
2091
		case VIDEODEV_DRIVER_NONE:
1837
		case VIDEODEV_DRIVER_NONE:
2092
		default:
1838
		default:
Lines 2150-2199 int VideoDevice::pixelFormatCode(pixel_f Link Here
2150
			}
1896
			}
2151
			break;
1897
			break;
2152
#endif
1898
#endif
2153
		case VIDEODEV_DRIVER_V4L:
2154
			switch(pixelformat)
2155
			{
2156
				case PIXELFORMAT_NONE	: return 0;			break;
2157
2158
// Packed RGB formats
2159
				case PIXELFORMAT_RGB332	: return VIDEO_PALETTE_HI240;	break;
2160
				case PIXELFORMAT_RGB444	: return 0;			break;
2161
				case PIXELFORMAT_RGB555	: return VIDEO_PALETTE_RGB555;	break;
2162
				case PIXELFORMAT_RGB565	: return VIDEO_PALETTE_RGB565;	break;
2163
				case PIXELFORMAT_RGB555X: return 0;			break;
2164
				case PIXELFORMAT_RGB565X: return 0;			break;
2165
				case PIXELFORMAT_BGR24	: return 0;			break;
2166
				case PIXELFORMAT_RGB24	: return VIDEO_PALETTE_RGB24;	break;
2167
				case PIXELFORMAT_BGR32	: return 0;			break;
2168
				case PIXELFORMAT_RGB32	: return VIDEO_PALETTE_RGB32;	break;
2169
2170
// Bayer RGB format
2171
				case PIXELFORMAT_SBGGR8	: return 0;			break;
2172
2173
// YUV formats
2174
				case PIXELFORMAT_GREY	: return VIDEO_PALETTE_GREY;	break;
2175
				case PIXELFORMAT_YUYV	: return VIDEO_PALETTE_YUYV;	break;
2176
				case PIXELFORMAT_UYVY	: return VIDEO_PALETTE_UYVY;	break;
2177
				case PIXELFORMAT_YUV420P: return VIDEO_PALETTE_YUV420;	break;
2178
				case PIXELFORMAT_YUV422P: return VIDEO_PALETTE_YUV422P;	break;
2179
2180
// Compressed formats
2181
				case PIXELFORMAT_JPEG	: return 0;			break;
2182
				case PIXELFORMAT_MPEG	: return 0;			break;
2183
2184
// Reserved formats
2185
				case PIXELFORMAT_DV	: return 0;			break;
2186
				case PIXELFORMAT_ET61X251:return 0;			break;
2187
				case PIXELFORMAT_HI240	: return VIDEO_PALETTE_HI240;	break;
2188
				case PIXELFORMAT_HM12	: return 0;			break;
2189
				case PIXELFORMAT_MJPEG	: return 0;			break;
2190
				case PIXELFORMAT_PWC1	: return 0;			break;
2191
				case PIXELFORMAT_PWC2	: return 0;			break;
2192
				case PIXELFORMAT_SN9C10X: return 0;			break;
2193
				case PIXELFORMAT_WNVA	: return 0;			break;
2194
				case PIXELFORMAT_YYUV	: return 0;			break;
2195
			}
2196
			break;
2197
#endif
1899
#endif
2198
		case VIDEODEV_DRIVER_NONE:
1900
		case VIDEODEV_DRIVER_NONE:
2199
		default:
1901
		default:
Lines 2356-2377 QString VideoDevice::pixelFormatName(int Link Here
2356
			}
2058
			}
2357
			break;
2059
			break;
2358
#endif
2060
#endif
2359
		case VIDEODEV_DRIVER_V4L:
2360
			switch(pixelformat)
2361
			{
2362
				case VIDEO_PALETTE_GREY		: returnvalue = pixelFormatName(PIXELFORMAT_GREY);	break;
2363
				case VIDEO_PALETTE_HI240	: returnvalue = pixelFormatName(PIXELFORMAT_RGB332);	break;
2364
				case VIDEO_PALETTE_RGB555	: returnvalue = pixelFormatName(PIXELFORMAT_RGB555);	break;
2365
				case VIDEO_PALETTE_RGB565	: returnvalue = pixelFormatName(PIXELFORMAT_RGB565);	break;
2366
				case VIDEO_PALETTE_RGB24	: returnvalue = pixelFormatName(PIXELFORMAT_RGB24);	break;
2367
				case VIDEO_PALETTE_RGB32	: returnvalue = pixelFormatName(PIXELFORMAT_RGB32);	break;
2368
				case VIDEO_PALETTE_YUYV		: returnvalue = pixelFormatName(PIXELFORMAT_YUYV);	break;
2369
				case VIDEO_PALETTE_UYVY		: returnvalue = pixelFormatName(PIXELFORMAT_UYVY);	break;
2370
				case VIDEO_PALETTE_YUV420	:
2371
				case VIDEO_PALETTE_YUV420P	: returnvalue = pixelFormatName(PIXELFORMAT_YUV420P);	break;
2372
				case VIDEO_PALETTE_YUV422P	: returnvalue = pixelFormatName(PIXELFORMAT_YUV422P);	break;
2373
			}
2374
			break;
2375
#endif
2061
#endif
2376
		case VIDEODEV_DRIVER_NONE:
2062
		case VIDEODEV_DRIVER_NONE:
2377
		default:
2063
		default:
Lines 2408-2456 int VideoDevice::detectPixelFormats() Link Here
2408
			}
2094
			}
2409
//			break;
2095
//			break;
2410
#endif
2096
#endif
2411
		case VIDEODEV_DRIVER_V4L:
2412
// TODO: THis thing can be used to detec what pixel formats are supported in a API-independent way, but V4L2 has VIDIOC_ENUM_PIXFMT.
2413
// The correct thing to do is to isolate these calls and do a proper implementation for V4L and another for V4L2 when this thing will be migrated to a plugin architecture.
2414
2415
// Packed RGB formats
2416
			kDebug() << "Supported pixel formats:";
2417
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB332))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB332); }
2418
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB444))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB444); }
2419
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB555))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB555); }
2420
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB565))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB565); }
2421
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB555X))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB555X); }
2422
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB565X))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB565X); }
2423
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_BGR24))	{ kDebug() << pixelFormatName(PIXELFORMAT_BGR24); }
2424
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB24))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB24); }
2425
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_BGR32))	{ kDebug() << pixelFormatName(PIXELFORMAT_BGR32); }
2426
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_RGB32))	{ kDebug() << pixelFormatName(PIXELFORMAT_RGB32); }
2427
2428
// Bayer RGB format
2429
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_SBGGR8))	{ kDebug() << pixelFormatName(PIXELFORMAT_SBGGR8); }
2430
2431
// YUV formats
2432
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_GREY))	{ kDebug() << pixelFormatName(PIXELFORMAT_GREY); }
2433
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_YUYV))	{ kDebug() << pixelFormatName(PIXELFORMAT_YUYV); }
2434
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_UYVY))	{ kDebug() << pixelFormatName(PIXELFORMAT_UYVY); }
2435
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_YUV420P))	{ kDebug() << pixelFormatName(PIXELFORMAT_YUV420P); }
2436
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_YUV422P))	{ kDebug() << pixelFormatName(PIXELFORMAT_YUV422P); }
2437
2438
// Compressed formats
2439
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_JPEG))	{ kDebug() << pixelFormatName(PIXELFORMAT_JPEG); }
2440
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_MPEG))	{ kDebug() << pixelFormatName(PIXELFORMAT_MPEG); }
2441
2442
// Reserved formats
2443
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_DV))		{ kDebug() << pixelFormatName(PIXELFORMAT_DV); }
2444
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_ET61X251))	{ kDebug() << pixelFormatName(PIXELFORMAT_ET61X251); }
2445
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_HI240))	{ kDebug() << pixelFormatName(PIXELFORMAT_HI240); }
2446
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_HM12))	{ kDebug() << pixelFormatName(PIXELFORMAT_HM12); }
2447
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_MJPEG))	{ kDebug() << pixelFormatName(PIXELFORMAT_MJPEG); }
2448
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_PWC1))	{ kDebug() << pixelFormatName(PIXELFORMAT_PWC1); }
2449
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_PWC2))	{ kDebug() << pixelFormatName(PIXELFORMAT_PWC2); }
2450
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_SN9C10X))	{ kDebug() << pixelFormatName(PIXELFORMAT_SN9C10X); }
2451
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_WNVA))	{ kDebug() << pixelFormatName(PIXELFORMAT_WNVA); }
2452
			if(PIXELFORMAT_NONE != setPixelFormat(PIXELFORMAT_YYUV))	{ kDebug() << pixelFormatName(PIXELFORMAT_YYUV); }
2453
			break;
2454
#endif
2097
#endif
2455
		case VIDEODEV_DRIVER_NONE:
2098
		case VIDEODEV_DRIVER_NONE:
2456
		default:
2099
		default:
Lines 2520-2579 __u64 VideoDevice::signalStandardCode(si Link Here
2520
			}
2163
			}
2521
			break;
2164
			break;
2522
#endif
2165
#endif
2523
		case VIDEODEV_DRIVER_V4L:
2524
			switch(standard)
2525
			{
2526
				case STANDARD_PAL_B	: return VIDEO_MODE_PAL;	break;
2527
				case STANDARD_PAL_B1	: return VIDEO_MODE_PAL;	break;
2528
				case STANDARD_PAL_G	: return VIDEO_MODE_PAL;	break;
2529
				case STANDARD_PAL_H	: return VIDEO_MODE_PAL;	break;
2530
				case STANDARD_PAL_I	: return VIDEO_MODE_PAL;	break;
2531
				case STANDARD_PAL_D	: return VIDEO_MODE_PAL;	break;
2532
				case STANDARD_PAL_D1	: return VIDEO_MODE_PAL;	break;
2533
				case STANDARD_PAL_K	: return VIDEO_MODE_PAL;	break;
2534
2535
				case STANDARD_PAL_M	: return 5;	break;	// Undocumented value found to be compatible with V4L bttv driver
2536
				case STANDARD_PAL_N	: return 6;	break;	// Undocumented value found to be compatible with V4L bttv driver
2537
				case STANDARD_PAL_Nc	: return 4;	break;	// Undocumented value found to be compatible with V4L bttv driver
2538
				case STANDARD_PAL_60	: return VIDEO_MODE_PAL;	break;
2539
2540
				case STANDARD_NTSC_M	: return VIDEO_MODE_NTSC;	break;
2541
				case STANDARD_NTSC_M_JP	: return 7;	break;	// Undocumented value found to be compatible with V4L bttv driver
2542
				case STANDARD_NTSC_443	: return VIDEO_MODE_NTSC;	break;
2543
				case STANDARD_NTSC_M_KR	: return VIDEO_MODE_NTSC;	break;
2544
2545
				case STANDARD_SECAM_B	: return VIDEO_MODE_SECAM;	break;
2546
				case STANDARD_SECAM_D	: return VIDEO_MODE_SECAM;	break;
2547
				case STANDARD_SECAM_G	: return VIDEO_MODE_SECAM;	break;
2548
				case STANDARD_SECAM_H	: return VIDEO_MODE_SECAM;	break;
2549
				case STANDARD_SECAM_K	: return VIDEO_MODE_SECAM;	break;
2550
				case STANDARD_SECAM_K1	: return VIDEO_MODE_SECAM;	break;
2551
				case STANDARD_SECAM_L	: return VIDEO_MODE_SECAM;	break;
2552
				case STANDARD_SECAM_LC	: return VIDEO_MODE_SECAM;	break;
2553
2554
				case STANDARD_ATSC_8_VSB: return VIDEO_MODE_AUTO;	break;
2555
				case STANDARD_ATSC_16_VSB:return VIDEO_MODE_AUTO;	break;
2556
2557
				case STANDARD_PAL_BG	: return VIDEO_MODE_PAL;	break;
2558
				case STANDARD_PAL_DK	: return VIDEO_MODE_PAL;	break;
2559
				case STANDARD_PAL	: return VIDEO_MODE_PAL;	break;
2560
				case STANDARD_NTSC	: return VIDEO_MODE_NTSC;	break;
2561
				case STANDARD_SECAM_DK	: return VIDEO_MODE_SECAM;	break;
2562
				case STANDARD_SECAM	: return VIDEO_MODE_SECAM;	break;
2563
2564
				case STANDARD_MN	: return VIDEO_MODE_AUTO;	break;
2565
				case STANDARD_B		: return VIDEO_MODE_AUTO;	break;
2566
				case STANDARD_GH	: return VIDEO_MODE_AUTO;	break;
2567
				case STANDARD_DK	: return VIDEO_MODE_AUTO;	break;
2568
2569
				case STANDARD_525_60	: return VIDEO_MODE_PAL;	break;
2570
				case STANDARD_625_50	: return VIDEO_MODE_SECAM;	break;
2571
				case STANDARD_ATSC	: return VIDEO_MODE_AUTO;	break;
2572
2573
				case STANDARD_UNKNOWN	: return VIDEO_MODE_AUTO;	break;
2574
				case STANDARD_ALL	: return VIDEO_MODE_AUTO;	break;
2575
			}
2576
			break;
2577
#endif
2166
#endif
2578
		case VIDEODEV_DRIVER_NONE:
2167
		case VIDEODEV_DRIVER_NONE:
2579
		default:
2168
		default:
Lines 2701-2719 QString VideoDevice::signalStandardName( Link Here
2701
			}
2290
			}
2702
			break;
2291
			break;
2703
#endif
2292
#endif
2704
		case VIDEODEV_DRIVER_V4L:
2705
			switch(standard)
2706
			{
2707
				case VIDEO_MODE_PAL	: returnvalue = signalStandardName(STANDARD_PAL);	break;
2708
				case VIDEO_MODE_NTSC	: returnvalue = signalStandardName(STANDARD_NTSC);	break;
2709
				case VIDEO_MODE_SECAM	: returnvalue = signalStandardName(STANDARD_SECAM);	break;
2710
				case VIDEO_MODE_AUTO	: returnvalue = signalStandardName(STANDARD_ALL);	break;	// It must be disabled until I find a correct way to handle those non-standard bttv modes
2711
//				case VIDEO_MODE_PAL_Nc	: returnvalue = signalStandardName(STANDARD_PAL_Nc);	break;	// Undocumented value found to be compatible with V4L bttv driver
2712
				case VIDEO_MODE_PAL_M	: returnvalue = signalStandardName(STANDARD_PAL_M);	break;	// Undocumented value found to be compatible with V4L bttv driver
2713
				case VIDEO_MODE_PAL_N	: returnvalue = signalStandardName(STANDARD_PAL_N);	break;	// Undocumented value found to be compatible with V4L bttv driver
2714
				case VIDEO_MODE_NTSC_JP	: returnvalue = signalStandardName(STANDARD_NTSC_M_JP);	break;	// Undocumented value found to be compatible with V4L bttv driver
2715
			}
2716
			break;
2717
#endif
2293
#endif
2718
		case VIDEODEV_DRIVER_NONE:
2294
		case VIDEODEV_DRIVER_NONE:
2719
		default:
2295
		default:
Lines 2779-2786 int VideoDevice::detectSignalStandards() Link Here
2779
2355
2780
				break;
2356
				break;
2781
#endif
2357
#endif
2782
			case VIDEODEV_DRIVER_V4L:
2783
				break;
2784
#endif
2358
#endif
2785
			case VIDEODEV_DRIVER_NONE:
2359
			case VIDEODEV_DRIVER_NONE:
2786
			default:
2360
			default:
(-)kopete/libkopete/avdevice/videodevice.h (-5 / +1 lines)
Lines 55-61 Link Here
55
#include <linux/fs.h>
55
#include <linux/fs.h>
56
#include <linux/kernel.h>
56
#include <linux/kernel.h>
57
#endif
57
#endif
58
#include <linux/videodev.h>
58
#include <linux/videodev2.h>
59
#define VIDEO_MODE_PAL_Nc  3
59
#define VIDEO_MODE_PAL_Nc  3
60
#define VIDEO_MODE_PAL_M   4
60
#define VIDEO_MODE_PAL_M   4
61
#define VIDEO_MODE_PAL_N   5
61
#define VIDEO_MODE_PAL_N   5
Lines 86-93 typedef enum Link Here
86
{
86
{
87
	VIDEODEV_DRIVER_NONE
87
	VIDEODEV_DRIVER_NONE
88
#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
88
#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
89
        ,
90
	VIDEODEV_DRIVER_V4L
91
#ifdef V4L2_CAP_VIDEO_CAPTURE
89
#ifdef V4L2_CAP_VIDEO_CAPTURE
92
        ,
90
        ,
93
	VIDEODEV_DRIVER_V4L2
91
	VIDEODEV_DRIVER_V4L2
Lines 367-374 protected: Link Here
367
	struct v4l2_format fmt;
365
	struct v4l2_format fmt;
368
//	struct v4l2_input m_input;
366
//	struct v4l2_input m_input;
369
#endif
367
#endif
370
	struct video_capability V4L_capabilities;
371
	struct video_buffer V4L_videobuffer;
372
#endif	
368
#endif	
373
	int currentwidth, minwidth, maxwidth, currentheight, minheight, maxheight;
369
	int currentwidth, minwidth, maxwidth, currentheight, minheight, maxheight;
374
370

Return to bug 360471