From 1c1b8d08ebd7d092dfcc5c15b5280b3d0b527e10 Mon Sep 17 00:00:00 2001 From: Joe Bloggs Date: Thu, 19 Oct 2017 16:29:17 +0100 Subject: [PATCH 1/3] Add "Bit depth" to status line (#208) --- oacapture/mainWindow.cc | 15 +++++++++++++++ oacapture/mainWindow.h | 3 +++ oacapture/previewWidget.cc | 1 + 3 files changed, 19 insertions(+) diff --git a/oacapture/mainWindow.cc b/oacapture/mainWindow.cc index 5e45ccb3..0a73170f 100644 --- a/oacapture/mainWindow.cc +++ b/oacapture/mainWindow.cc @@ -240,10 +240,12 @@ MainWindow::~MainWindow() delete capturedValue; delete fpsActualValue; delete fpsMaxValue; + delete bitDepthValue; delete progressBar; delete capturedLabel; delete fpsActualLabel; delete fpsMaxLabel; + delete bitDepthLabel; if ( state.camera ) { delete state.camera; } @@ -1194,6 +1196,8 @@ MainWindow::createStatusBar ( void ) tempLabel->setText ( tr ( "Temp (F)" )); } tempLabel->setFixedWidth ( 60 ); + bitDepthLabel = new QLabel ( tr ( "Bit depth" )); + bitDepthLabel->setFixedWidth ( 65 ); fpsMaxLabel = new QLabel ( tr ( "FPS (max)" )); fpsMaxLabel->setFixedWidth ( 65 ); fpsActualLabel = new QLabel ( tr ( "FPS (actual)" )); @@ -1209,6 +1213,8 @@ MainWindow::createStatusBar ( void ) tempValue = new QLabel ( "" ); tempValue->setFixedWidth ( 30 ); + bitDepthValue = new QLabel ( "0" ); + bitDepthValue->setFixedWidth ( 40 ); fpsMaxValue = new QLabel ( "0" ); fpsMaxValue->setFixedWidth ( 30 ); fpsActualValue = new QLabel ( "0" ); @@ -1220,6 +1226,8 @@ MainWindow::createStatusBar ( void ) statusLine->addPermanentWidget ( tempLabel ); statusLine->addPermanentWidget ( tempValue ); + statusLine->addPermanentWidget ( bitDepthLabel ); + statusLine->addPermanentWidget ( bitDepthValue ); statusLine->addPermanentWidget ( fpsMaxLabel ); statusLine->addPermanentWidget ( fpsMaxValue ); statusLine->addPermanentWidget ( fpsActualLabel ); @@ -1859,6 +1867,13 @@ MainWindow::quit ( void ) } +void +MainWindow::setBitDepthValue ( int value ) +{ + bitDepthValue->setText ( QString::number ( value )); +} + + void MainWindow::showFPSMaxValue ( int value ) { diff --git a/oacapture/mainWindow.h b/oacapture/mainWindow.h index c386a07f..235e45d1 100644 --- a/oacapture/mainWindow.h +++ b/oacapture/mainWindow.h @@ -61,6 +61,7 @@ class MainWindow : public QMainWindow void clearTemperature ( void ); void resetTemperatureLabel ( void ); void clearDroppedFrames ( void ); + void setBitDepthValue ( int ); void showFPSMaxValue ( int ); void clearFPSMaxValue ( void ); void setNightStyleSheet ( QWidget* ); @@ -97,6 +98,7 @@ class MainWindow : public QMainWindow QProgressBar* progressBar; QLabel* capturedValue; QLabel* droppedValue; + QLabel* bitDepthValue; QLabel* fpsMaxValue; QLabel* fpsActualValue; QStatusBar* statusLine; @@ -128,6 +130,7 @@ class MainWindow : public QMainWindow oaTimerDevice** timerDevs; QLabel* tempLabel; + QLabel* bitDepthLabel; QLabel* fpsMaxLabel; QLabel* fpsActualLabel; QLabel* capturedLabel; diff --git a/oacapture/previewWidget.cc b/oacapture/previewWidget.cc index bf7e99d8..e859d7ca 100644 --- a/oacapture/previewWidget.cc +++ b/oacapture/previewWidget.cc @@ -329,6 +329,7 @@ PreviewWidget::setVideoFramePixelFormat ( int format ) videoFramePixelFormat = format; expectedSize = config.imageSizeX * config.imageSizeY * OA_BYTES_PER_PIXEL( videoFramePixelFormat ); + state.mainWindow->setBitDepthValue( OA_BYTES_PER_PIXEL( format ) * 8 ); } From b4660c725db95ed45773cef37dbe57b861170ee4 Mon Sep 17 00:00:00 2001 From: Joe Bloggs Date: Wed, 25 Oct 2017 13:19:20 +0100 Subject: [PATCH 2/3] Changed bitDepth to pixelFormat (#208) Much more useful, imo. --- include/openastro/video/formats.h | 86 +++++++++++++++++++------------ oacapture/mainWindow.cc | 20 +++---- oacapture/mainWindow.h | 6 +-- oacapture/previewWidget.cc | 8 +-- oalive/viewWidget.cc | 6 ++- 5 files changed, 74 insertions(+), 52 deletions(-) diff --git a/include/openastro/video/formats.h b/include/openastro/video/formats.h index 8fb984b3..d87fe870 100644 --- a/include/openastro/video/formats.h +++ b/include/openastro/video/formats.h @@ -27,40 +27,58 @@ #ifndef OPENASTRO_CAMERA_FORMATS_H #define OPENASTRO_CAMERA_FORMATS_H -#define OA_PIX_FMT_RGB24 1 -#define OA_PIX_FMT_BGR24 2 -#define OA_PIX_FMT_GREY8 3 -#define OA_PIX_FMT_GRAY8 3 -#define OA_PIX_FMT_GREY16BE 4 -#define OA_PIX_FMT_GRAY16BE 4 -#define OA_PIX_FMT_GREY16LE 5 -#define OA_PIX_FMT_GRAY16LE 5 -#define OA_PIX_FMT_BGGR8 6 -#define OA_PIX_FMT_RGGB8 7 -#define OA_PIX_FMT_GBRG8 8 -#define OA_PIX_FMT_GRBG8 9 -#define OA_PIX_FMT_BGGR16LE 10 -#define OA_PIX_FMT_BGGR16BE 11 -#define OA_PIX_FMT_RGGB16LE 12 -#define OA_PIX_FMT_RGGB16BE 13 -#define OA_PIX_FMT_GBRG16LE 14 -#define OA_PIX_FMT_GBRG16BE 15 -#define OA_PIX_FMT_GRBG16LE 16 -#define OA_PIX_FMT_GRBG16BE 17 -#define OA_PIX_FMT_RGB48BE 18 -#define OA_PIX_FMT_RGB48LE 19 -#define OA_PIX_FMT_BGR48BE 20 -#define OA_PIX_FMT_BGR48LE 21 - -#define OA_PIX_FMT_YUV444P 22 -#define OA_PIX_FMT_YUV422P 23 -#define OA_PIX_FMT_YUV420P 24 -#define OA_PIX_FMT_YUV410P 25 -#define OA_PIX_FMT_YUYV 27 -#define OA_PIX_FMT_UYVY 28 -#define OA_PIX_FMT_YUV420 29 -#define OA_PIX_FMT_YUV411 30 -#define OA_PIX_FMT_YUV410 31 +#define DEFINE_OA_PIX_FMT(OA_PIX_FMT) \ + OA_PIX_FMT(RGB24) \ + OA_PIX_FMT(BGR24) \ + OA_PIX_FMT(GREY8) \ + OA_PIX_FMT(GREY16BE) \ + OA_PIX_FMT(GREY16LE) \ + OA_PIX_FMT(BGGR8) \ + OA_PIX_FMT(RGGB8) \ + OA_PIX_FMT(GBRG8) \ + OA_PIX_FMT(GRBG8) \ + OA_PIX_FMT(BGGR16LE) \ + OA_PIX_FMT(BGGR16BE) \ + OA_PIX_FMT(RGGB16LE) \ + OA_PIX_FMT(RGGB16BE) \ + OA_PIX_FMT(GBRG16LE) \ + OA_PIX_FMT(GBRG16BE) \ + OA_PIX_FMT(GRBG16LE) \ + OA_PIX_FMT(GRBG16BE) \ + OA_PIX_FMT(RGB48BE) \ + OA_PIX_FMT(RGB48LE) \ + OA_PIX_FMT(BGR48BE) \ + OA_PIX_FMT(BGR48LE) \ + \ + OA_PIX_FMT(YUV444P) \ + OA_PIX_FMT(YUV422P) \ + OA_PIX_FMT(YUV420P) \ + OA_PIX_FMT(YUV410P) \ + OA_PIX_FMT(YUYV) \ + OA_PIX_FMT(UYVY) \ + OA_PIX_FMT(YUV420) \ + OA_PIX_FMT(YUV411) \ + OA_PIX_FMT(YUV410) \ + + +#define OA_PIX_FMT_GRAY8 OA_PIX_FMT_GREY8 +#define OA_PIX_FMT_GRAY16BE OA_PIX_FMT_GRAY16BE +#define OA_PIX_FMT_GRAY16LE OA_PIX_FMT_GRAY16LE + + +#define ENUM(FMT) OA_PIX_FMT_##FMT, +enum { OA_PIX_FMT_NONE = 0, + DEFINE_OA_PIX_FMT(ENUM) + OA_PIX_FMT_MAX }; + +#define STRING(FMT) #FMT, +static const char *oa_pix_fmt_strings[] = { + "error", DEFINE_OA_PIX_FMT(STRING) +}; + + +#define OA_PIX_FMT_STRING(x) \ + oa_pix_fmt_strings[x>0 && xsetText ( tr ( "Temp (F)" )); } tempLabel->setFixedWidth ( 60 ); - bitDepthLabel = new QLabel ( tr ( "Bit depth" )); - bitDepthLabel->setFixedWidth ( 65 ); + pixelFormatLabel = new QLabel ( tr ( "Pixel format" )); + pixelFormatLabel->setFixedWidth ( 80 ); fpsMaxLabel = new QLabel ( tr ( "FPS (max)" )); fpsMaxLabel->setFixedWidth ( 65 ); fpsActualLabel = new QLabel ( tr ( "FPS (actual)" )); @@ -1213,8 +1213,8 @@ MainWindow::createStatusBar ( void ) tempValue = new QLabel ( "" ); tempValue->setFixedWidth ( 30 ); - bitDepthValue = new QLabel ( "0" ); - bitDepthValue->setFixedWidth ( 40 ); + pixelFormatValue = new QLabel ( "" ); + pixelFormatValue->setFixedWidth ( 70 ); fpsMaxValue = new QLabel ( "0" ); fpsMaxValue->setFixedWidth ( 30 ); fpsActualValue = new QLabel ( "0" ); @@ -1226,8 +1226,8 @@ MainWindow::createStatusBar ( void ) statusLine->addPermanentWidget ( tempLabel ); statusLine->addPermanentWidget ( tempValue ); - statusLine->addPermanentWidget ( bitDepthLabel ); - statusLine->addPermanentWidget ( bitDepthValue ); + statusLine->addPermanentWidget ( pixelFormatLabel ); + statusLine->addPermanentWidget ( pixelFormatValue ); statusLine->addPermanentWidget ( fpsMaxLabel ); statusLine->addPermanentWidget ( fpsMaxValue ); statusLine->addPermanentWidget ( fpsActualLabel ); @@ -1868,9 +1868,9 @@ MainWindow::quit ( void ) void -MainWindow::setBitDepthValue ( int value ) +MainWindow::setPixelFormatValue ( int format ) { - bitDepthValue->setText ( QString::number ( value )); + pixelFormatValue->setText ( QString( OA_PIX_FMT_STRING( format ))); } diff --git a/oacapture/mainWindow.h b/oacapture/mainWindow.h index 235e45d1..79d62d39 100644 --- a/oacapture/mainWindow.h +++ b/oacapture/mainWindow.h @@ -61,7 +61,7 @@ class MainWindow : public QMainWindow void clearTemperature ( void ); void resetTemperatureLabel ( void ); void clearDroppedFrames ( void ); - void setBitDepthValue ( int ); + void setPixelFormatValue ( int ); void showFPSMaxValue ( int ); void clearFPSMaxValue ( void ); void setNightStyleSheet ( QWidget* ); @@ -98,7 +98,7 @@ class MainWindow : public QMainWindow QProgressBar* progressBar; QLabel* capturedValue; QLabel* droppedValue; - QLabel* bitDepthValue; + QLabel* pixelFormatValue; QLabel* fpsMaxValue; QLabel* fpsActualValue; QStatusBar* statusLine; @@ -130,7 +130,7 @@ class MainWindow : public QMainWindow oaTimerDevice** timerDevs; QLabel* tempLabel; - QLabel* bitDepthLabel; + QLabel* pixelFormatLabel; QLabel* fpsMaxLabel; QLabel* fpsActualLabel; QLabel* capturedLabel; diff --git a/oacapture/previewWidget.cc b/oacapture/previewWidget.cc index e859d7ca..4e2f3bec 100644 --- a/oacapture/previewWidget.cc +++ b/oacapture/previewWidget.cc @@ -329,7 +329,7 @@ PreviewWidget::setVideoFramePixelFormat ( int format ) videoFramePixelFormat = format; expectedSize = config.imageSizeX * config.imageSizeY * OA_BYTES_PER_PIXEL( videoFramePixelFormat ); - state.mainWindow->setBitDepthValue( OA_BYTES_PER_PIXEL( format ) * 8 ); + state.mainWindow->setPixelFormatValue( format ); } @@ -427,7 +427,8 @@ PreviewWidget::processFlip ( void* imageData, int length, int format ) processFlip24BitColour ( data, length ); break; default: - qWarning() << __FUNCTION__ << " unable to flip format " << format; + qWarning() << __FUNCTION__ << " unable to flip format " << + OA_PIX_FMT_STRING(format); break; } } @@ -1026,6 +1027,7 @@ PreviewWidget::formatToCfaPattern ( int format ) return OA_DEMOSAIC_GRBG; break; } - qWarning() << "Invalid format in" << __FUNCTION__; + qWarning() << "Invalid format (" << OA_PIX_FMT_STRING(format) << + ") in" << __FUNCTION__; return 0; } diff --git a/oalive/viewWidget.cc b/oalive/viewWidget.cc index 19c716d4..23fd8b75 100644 --- a/oalive/viewWidget.cc +++ b/oalive/viewWidget.cc @@ -509,7 +509,8 @@ ViewWidget::processFlip ( void* imageData, int length, int format ) processFlip24BitColour ( data, length ); break; default: - qWarning() << __FUNCTION__ << " unable to flip format " << format; + qWarning() << __FUNCTION__ << " unable to flip format " << + OA_PIX_FMT_STRING( format ); break; } } @@ -1337,7 +1338,8 @@ ViewWidget::formatToCfaPattern ( int format ) return OA_DEMOSAIC_GRBG; break; } - qWarning() << "Invalid format in" << __FUNCTION__; + qWarning() << "Invalid format (" << OA_PIX_FMT_STRING( format ) << + ") in" << __FUNCTION__; return 0; } From 81f128a4810f2fc2dcf9177bab4403917ec64971 Mon Sep 17 00:00:00 2001 From: Joe Bloggs Date: Wed, 25 Oct 2017 20:37:29 +0100 Subject: [PATCH 3/3] Fixed sp. --- include/openastro/video/formats.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/openastro/video/formats.h b/include/openastro/video/formats.h index d87fe870..708fe65b 100644 --- a/include/openastro/video/formats.h +++ b/include/openastro/video/formats.h @@ -62,8 +62,8 @@ #define OA_PIX_FMT_GRAY8 OA_PIX_FMT_GREY8 -#define OA_PIX_FMT_GRAY16BE OA_PIX_FMT_GRAY16BE -#define OA_PIX_FMT_GRAY16LE OA_PIX_FMT_GRAY16LE +#define OA_PIX_FMT_GRAY16BE OA_PIX_FMT_GREY16BE +#define OA_PIX_FMT_GRAY16LE OA_PIX_FMT_GREY16LE #define ENUM(FMT) OA_PIX_FMT_##FMT,