# HG changeset patch
# User Ludovico Cavedon <ludovico.cavedon@gmail.com>
# Date 1261048727 -3600
# Node ID bdfc9e3aba4a0dd87eada8d5bc6a377a97560854
# Parent  572dec0fba53c85dd2cd1ea0dfa571a835797824
Description: fix webcam codec name in debug messages
Author: Ludovico Cavedon <cavedon@debian.org>
Forwarded: http://trac.qutecom.org/ticket/178

Index: qutecom-2.2~rc3.hg396~dfsg1/libs/pixertool/include/pixertool/pixertool.h
===================================================================
--- qutecom-2.2~rc3.hg396~dfsg1.orig/libs/pixertool/include/pixertool/pixertool.h	2009-05-23 05:49:45.000000000 +0200
+++ qutecom-2.2~rc3.hg396~dfsg1/libs/pixertool/include/pixertool/pixertool.h	2009-12-21 00:50:45.000000000 +0100
@@ -125,7 +125,7 @@
  * @param pixfmt format identifier to get the name from
  * @return The name of the pixel format
  */
-PIXERTOOL_API const char *pix_get_fmt_name(int pixfmt);
+PIXERTOOL_API const char *pix_get_fmt_name(pixosi pixfmt);
 
 /**
  * Converts image data from original palette to desired palette.
Index: qutecom-2.2~rc3.hg396~dfsg1/libs/pixertool/src/pixertool.cpp
===================================================================
--- qutecom-2.2~rc3.hg396~dfsg1.orig/libs/pixertool/src/pixertool.cpp	2009-12-21 00:50:41.000000000 +0100
+++ qutecom-2.2~rc3.hg396~dfsg1/libs/pixertool/src/pixertool.cpp	2009-12-21 00:50:45.000000000 +0100
@@ -79,11 +79,11 @@
 }
 
 unsigned pix_size(pixosi pix, unsigned width, unsigned height) {
-	return avpicture_get_size((PixelFormat)pix_ffmpeg_from_pix_osi(pix), width, height);
+	return avpicture_get_size(pix_ffmpeg_from_pix_osi(pix), width, height);
 }
 
-const char *pix_get_fmt_name(int pixfmt) {
-  return avcodec_get_pix_fmt_name((PixelFormat)pixfmt);
+const char *pix_get_fmt_name(pixosi pixfmt) {
+  return avcodec_get_pix_fmt_name(pix_ffmpeg_from_pix_osi(pixfmt));
 }
 
 pixerrorcode pix_convert(int flags, piximage * img_dst, piximage * img_src) {
@@ -112,8 +112,8 @@
 
 	//int len_target = pix_size(img_dst->palette, img_src->width, img_src->height);
 
-	enum PixelFormat pix_fmt_source = (PixelFormat)pix_ffmpeg_from_pix_osi(img_src->palette);
-	enum PixelFormat  pix_fmt_target = (PixelFormat)pix_ffmpeg_from_pix_osi(img_dst->palette);
+	enum PixelFormat pix_fmt_source = pix_ffmpeg_from_pix_osi(img_src->palette);
+	enum PixelFormat pix_fmt_target = pix_ffmpeg_from_pix_osi(img_dst->palette);
 
 	AVPicture avp_source, avp_target;
 	avpicture_fill(&avp_source,  buf_source, pix_fmt_source, img_src->width, img_src->height);
Index: qutecom-2.2~rc3.hg396~dfsg1/libs/webcam/src/WebcamDriver.cpp
===================================================================
--- qutecom-2.2~rc3.hg396~dfsg1.orig/libs/webcam/src/WebcamDriver.cpp	2009-12-21 00:53:04.000000000 +0100
+++ qutecom-2.2~rc3.hg396~dfsg1/libs/webcam/src/WebcamDriver.cpp	2009-12-21 00:54:09.000000000 +0100
@@ -192,7 +192,7 @@
 	if (_startCounter == 0) {
 		if (_webcamPrivate->setPalette(palette) == WEBCAM_NOK) {
 			LOG_DEBUG("this webcam does not support palette #" + String::fromNumber(palette));
-			if (isFormatForced()) {
+			if (_webcamPrivate->getPalette() != PIX_OSI_UNSUPPORTED &&  isFormatForced()) {
 				LOG_DEBUG("palette conversion will be forced");
 				_desiredPalette = palette;
 				initializeConvImage();
Index: qutecom-2.2~rc3.hg396~dfsg1/libs/webcam/src/v4l2/V4L2WebcamDriver.cpp
===================================================================
--- qutecom-2.2~rc3.hg396~dfsg1.orig/libs/webcam/src/v4l2/V4L2WebcamDriver.cpp	2009-05-23 05:49:45.000000000 +0200
+++ qutecom-2.2~rc3.hg396~dfsg1/libs/webcam/src/v4l2/V4L2WebcamDriver.cpp	2009-12-21 00:53:36.000000000 +0100
@@ -690,7 +690,12 @@
 
     try { readCaps(); } catch (runtime_error& er) { return WEBCAM_NOK; }
 
-    LOG_DEBUG("Webcam pixelformat is " + std::string(pix_get_fmt_name(pix_v4l2_to_pix_osi(_vPixFormat.fmt.pix.pixelformat))) + " (" + String::fromNumber(pix_v4l2_to_pix_osi(_vPixFormat.fmt.pix.pixelformat)) + ")");
+    pixosi actual_palette = pix_v4l2_to_pix_osi(_vPixFormat.fmt.pix.pixelformat);
+    if(actual_palette == PIX_OSI_UNSUPPORTED) {
+	LOG_DEBUG("Webcam pixelformat is unsupported (v4l2 pixelformat " + String::fromNumber(_vPixFormat.fmt.pix.pixelformat) + ")");
+    } else {
+	LOG_DEBUG("Webcam pixelformat is " + std::string(pix_get_fmt_name(pix_v4l2_to_pix_osi(_vPixFormat.fmt.pix.pixelformat))) + " (" + String::fromNumber(pix_v4l2_to_pix_osi(_vPixFormat.fmt.pix.pixelformat)) + ")");
+    }
 
     return (r == 0 && _vPixFormat.fmt.pix.pixelformat == pixelformat ? WEBCAM_OK : WEBCAM_NOK);
 }
