Update to 9.3.3

- Open PTT serial port O_NONBLOCK so /dev/tty* can be used.
- If a video device has no formats, do not add to camera list.
- Add /index.html to local docURL so help will open in browser.

From the changelog:
20190418 QSSTV 9.3.3
        * fixed api documentation generation

20190418 QSSTV 9.3.2
        * complete rewrite of the FTP interfaces. They now run in a seperate
          thread
        * removed Hybrid notify config. All hybrid configurations are in one
          tab: Hybrid
        * size of recorded wav files was internally set to 0, fixed.
        * tx audio to wav file was output in mono with half the samples
          -> fixed
        * scaling of images in sstv tx mode -> fixed
        * show image with template when loading new image ->fixed
        * callsign was not set/send in DRM tx
        * new FFT implementation
        * compression in DRM now based on size in stead of ratio
        * fix error in reedsolomon decode when no erasures found
        * repeater functions implemented
        * fixed bug in AVT24-AVT90-AVT94
        * removed use VIS option in SSTV (now when a VIS code is detected,
          the mode is restricted to that VIS mode)
        * added confirmation options for delete files and program exit in
          gui configuration
        * more testing on raspberry Pi 3 model B. (compilation and
          execution OK)
        * added PKTLSB, PKTUSB and PKTFM in frequency config modulation
        * added passband to frequency settings
        * minor bug fixes
This commit is contained in:
Stephen Hurd 2019-04-19 07:42:54 +00:00
parent b85ad81d5a
commit b39bbfc2ec
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=499330
23 changed files with 127 additions and 93 deletions

View File

@ -1,11 +1,10 @@
# $FreeBSD$
PORTNAME= qsstv
PORTVERSION= 9.2.6
PORTREVISION= 2
PORTVERSION= 9.3.3
CATEGORIES= comms hamradio
MASTER_SITES= http://users.telenet.be/on4qz/qsstv/downloads/ \
LOCAL/db
LOCAL/shurd
DISTNAME= ${PORTNAME}_${PORTVERSION}
MAINTAINER= hamradio@FreeBSD.org
@ -22,12 +21,14 @@ LIB_DEPENDS= libasound.so:audio/alsa-lib \
libv4l2.so:multimedia/libv4l
BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat
USES= compiler:c++11-lang pkgconfig qmake qt:5
USES= compiler:c++11-lang gl pkgconfig qmake qt:5
USE_QT= buildtools core gui network widgets xml
USE_GL+= gl
USE_GL= gl
OPTIONS_DEFINE= DOCS
DOCS_CXXFLAGS= -DWITH_DOCS
DOCS_QMAKE_ON= CONFIG+=dox
DOCS_BUILD_DEPENDS= doxygen:devel/doxygen
post-patch:
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
@ -37,8 +38,8 @@ post-patch:
${WRKSRC}/qsstv/qsstv.pro ${WRKSRC}/qwt/qwt.pro \
${WRKSRC}/qsstv/config/directoriesconfig.cpp \
${WRKSRC}/qsstv/documentation/manual/manual.doxy \
${WRKSRC}/qsstv/documentation/manual/manual/gettingstarted.html \
${WRKSRC}/qsstv/documentation/manual/manual.txt
${WRKSRC}/qsstv/documentation/manual/manual.txt \
${WRKSRC}/qsstv/documentation/api/api.doxy
${RM} ${WRKSRC}/qsstv/documentation/manual/manual.txt.*
${RM} ${WRKSRC}/qsstv/documentation/manual/manual.*.orig

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1520992341
SHA256 (qsstv_9.2.6.tar.gz) = 080445e3ec6e492de642c0f4b2d2ab7616cda2a9ca72b9652bd82534a607a76b
SIZE (qsstv_9.2.6.tar.gz) = 11385735
TIMESTAMP = 1555616893
SHA256 (qsstv_9.3.3.tar.gz) = d18cb2218cb0f817c48e2af7116f9a479d70b0a2a75dff8466eb82126cd48e3e
SIZE (qsstv_9.3.3.tar.gz) = 6808672

View File

@ -1,11 +1,11 @@
--- qsstv/config/directoriesconfig.cpp.orig 2017-11-16 17:14:48 UTC
--- qsstv/config/directoriesconfig.cpp.orig 2019-04-11 14:58:19 UTC
+++ qsstv/config/directoriesconfig.cpp
@@ -43,7 +43,11 @@ void directoriesConfig::readSettings()
txStockImagesPath=qSettings.value("txStockImagesPath",QString(getenv("HOME"))+"/tx_stock/").toString();
templatesPath=qSettings.value("templatesPath",QString(getenv("HOME"))+"/templates/").toString();
audioPath=qSettings.value("audioPath",QString(getenv("HOME"))+"/audio/").toString();
@@ -64,7 +64,11 @@ void directoriesConfig::readSettings()
txStockImagesPath=qSettings.value("txStockImagesPath",QString(getenv("HOME"))+"/qsstv/tx_stock/").toString();
templatesPath=qSettings.value("templatesPath",QString(getenv("HOME"))+"/qsstv/templates/").toString();
audioPath=qSettings.value("audioPath",QString(getenv("HOME"))+"/qsstv/audio/").toString();
+#ifdef WITH_DOCS
+ docURL=qSettings.value("docURL","file:///usr/local/share/doc/qsstv/manual").toString();
+ docURL=qSettings.value("docURL","file://%%DOCSDIR%%/manual/index.html").toString();
+#else
docURL=qSettings.value("docURL","http://users.telenet.be/on4qz/qsstv/manual").toString();
+#endif

View File

@ -0,0 +1,11 @@
--- qsstv/documentation/api/api.doxy.orig 2019-04-18 21:02:45 UTC
+++ qsstv/documentation/api/api.doxy
@@ -2170,7 +2170,7 @@ EXTERNAL_PAGES = YES
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.
-PERL_PATH = /usr/bin/perl
+PERL_PATH = %%PERL%%
#---------------------------------------------------------------------------
# Configuration options related to the dot tool

View File

@ -1,4 +1,4 @@
--- qsstv/documentation/manual/manual.doxy.orig 2016-04-08 23:42:31 UTC
--- qsstv/documentation/manual/manual.doxy.orig 2019-04-18 21:02:35 UTC
+++ qsstv/documentation/manual/manual.doxy
@@ -1549,7 +1549,7 @@ EXTERNAL_GROUPS = YES
# The PERL_PATH should be the absolute path and name of the perl script

View File

@ -1,9 +1,9 @@
--- qsstv/documentation/manual/manual.txt.orig 2016-04-09 01:25:30 UTC
--- qsstv/documentation/manual/manual.txt.orig 2019-04-18 20:56:53 UTC
+++ qsstv/documentation/manual/manual.txt
@@ -213,7 +213,7 @@ The following tabs are available
- TX Images: directory for images to transmit
@@ -317,7 +317,7 @@ The following tabs are available
- Templates: directory where the template files are stored
- Audio Records: directory for audio files (where you save/read recorded audio files)
- Save TX images in TX SSTV or TX DRM directory: if selected the TX image will be saved
-- Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. file:///usr/share/doc/qsstv/manual
+- Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. file://%%DOCSDIR%%/manual
<br><br>

View File

@ -1,11 +0,0 @@
--- qsstv/documentation/manual/manual/gettingstarted.html.orig 2016-10-22 14:05:51 UTC
+++ qsstv/documentation/manual/manual/gettingstarted.html
@@ -107,7 +107,7 @@ This information can also be used in tem
<li>TX Images: directory for images to transmit</li>
<li>Templates: directory where the template files are stored</li>
<li>Audio Records: directory for audio files (where you save/read recorded audio files)</li>
-<li>Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. <a href="file:///usr/share/doc/qsstv/manual">file:///usr/share/doc/qsstv/manual</a> <br />
+<li>Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. <a href="file:///usr/local/share/doc/qsstv/manual">file:///usr/local/share/doc/qsstv/qsstv/manual</a> <br />
<br />
</li>
</ul>

View File

@ -1,6 +1,6 @@
--- qsstv/drmrx/channeldecode.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/channeldecode.cpp.orig 2019-03-22 10:11:58 UTC
+++ qsstv/drmrx/channeldecode.cpp
@@ -29,7 +29,6 @@
@@ -28,7 +28,6 @@
#include <stdlib.h>
#include <sys/types.h>
#include <math.h>

View File

@ -1,6 +1,6 @@
--- qsstv/drmrx/deinterleaver.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/deinterleaver.cpp.orig 2019-03-22 10:11:58 UTC
+++ qsstv/drmrx/deinterleaver.cpp
@@ -30,7 +30,6 @@
@@ -29,7 +29,6 @@
#include <stdio.h>
#include <stdlib.h>

View File

@ -1,6 +1,6 @@
--- qsstv/drmrx/demodulator.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/demodulator.cpp.orig 2019-02-26 18:17:40 UTC
+++ qsstv/drmrx/demodulator.cpp
@@ -946,7 +946,7 @@ bool demodulator::channelEstimation()
@@ -947,7 +947,7 @@ bool demodulator::channelEstimation()
temp2 += actual_pilots[2 * j] * next_pilots[2 * j + 1] -actual_pilots[2 * j + 1] * next_pilots[2 * j];
}

View File

@ -1,4 +1,4 @@
--- qsstv/drmrx/getmode.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/getmode.cpp.orig 2019-04-18 21:11:25 UTC
+++ qsstv/drmrx/getmode.cpp
@@ -34,7 +34,6 @@
#include <stdlib.h>

View File

@ -1,4 +1,4 @@
--- qsstv/drmrx/mkfacmap.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/mkfacmap.cpp.orig 2019-04-18 21:11:46 UTC
+++ qsstv/drmrx/mkfacmap.cpp
@@ -27,7 +27,6 @@

View File

@ -1,4 +1,4 @@
--- qsstv/drmrx/mkmscmap.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/mkmscmap.cpp.orig 2019-04-18 21:11:33 UTC
+++ qsstv/drmrx/mkmscmap.cpp
@@ -32,7 +32,6 @@
#include <stdlib.h>

View File

@ -1,4 +1,4 @@
--- qsstv/drmrx/psdcmean.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/psdcmean.cpp.orig 2019-04-18 21:11:55 UTC
+++ qsstv/drmrx/psdcmean.cpp
@@ -36,7 +36,6 @@
#include <stdlib.h>

View File

@ -1,4 +1,4 @@
--- qsstv/drmrx/psdmean.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/drmrx/psdmean.cpp.orig 2019-04-18 21:12:04 UTC
+++ qsstv/drmrx/psdmean.cpp
@@ -36,7 +36,6 @@
#include <stdlib.h>

View File

@ -1,8 +1,17 @@
--- qsstv/qsstv.pro.orig 2018-06-25 14:41:05 UTC
--- qsstv/qsstv.pro.orig 2019-04-18 09:34:09 UTC
+++ qsstv/qsstv.pro
@@ -523,8 +523,8 @@ PRE_TARGETDEPS += dox
message(dox will be generated)
}
@@ -523,7 +523,7 @@ contains(QMAKE_HOST.arch, arm.*):{
}
else {
message(not arm)
- CONFIG(debug ,debug|release){
+ CONFIG(dox){
dox.commands = cd $$PWD/documentation/manual ;doxygen manual.doxy; cd $$PWD/documentation/api ;doxygen api.doxy;
dox.depends= FORCE
PRE_TARGETDEPS += dox
@@ -535,15 +535,15 @@ contains(QMAKE_HOST.arch, arm.*):{
-dox.path=/usr/share/doc/$$TARGET
-dox.files= $$PWD/manual/*
@ -11,10 +20,11 @@
QMAKE_EXTRA_TARGETS += dox
@@ -532,5 +532,5 @@ QMAKE_EXTRA_TARGETS += dox
RESOURCES += \
qsstv.qrc
-target.path = /usr/bin
isEmpty(PREFIX) {
PREFIX = /usr/local
}
-target.path = $$PREFIX/bin
+target.path = %%PREFIX%%/bin
INSTALLS += target dox
shortcutfiles.files =qsstv.desktop
shortcutfiles.path = $$PREFIX/share/applications/

View File

@ -0,0 +1,11 @@
--- qsstv/rig/rigcontrol.cpp.orig 2019-04-19 04:54:51 UTC
+++ qsstv/rig/rigcontrol.cpp
@@ -377,7 +377,7 @@ void rigControl::activatePTT(bool b)
if (catParams.pttSerialPort.isEmpty()) return;
if(serialP==0)
{
- serialP=::open(catParams.pttSerialPort.toLatin1().data(),O_RDWR);
+ serialP=::open(catParams.pttSerialPort.toLatin1().data(),O_RDWR|O_NONBLOCK);
if (serialP<=0)
{
QMessageBox::warning(txWidgetPtr,"Serial Port Error",

View File

@ -1,44 +1,44 @@
--- qsstv/sound/soundalsa.cpp.orig 2016-08-28 16:01:40 UTC
--- qsstv/sound/soundalsa.cpp.orig 2019-04-18 09:34:09 UTC
+++ qsstv/sound/soundalsa.cpp
@@ -64,6 +64,8 @@ void soundAlsa::prepareCapture()
{
int err;
if(!soundDriverOK) return;
+ snd_pcm_drop(captureHandle);
+ snd_pcm_reset(captureHandle);
if((err=snd_pcm_prepare (captureHandle)) < 0)
{
alsaErrorHandler(err,"Unable to prepare "+inputAudioDevice);
@@ -76,6 +78,8 @@ void soundAlsa::prepareCapture()
{
alsaErrorHandler(err,"Unable to prepare "+inputAudioDevice);
@@ -77,6 +79,8 @@ void soundAlsa::prepareCapture()
void soundAlsa::preparePlayback()
{
+ snd_pcm_drop(playbackHandle);
+ snd_pcm_reset(playbackHandle);
if(!soundDriverOK) return;
+ snd_pcm_drop(captureHandle);
+ snd_pcm_reset(captureHandle);
snd_pcm_prepare (playbackHandle);
}
@@ -97,6 +101,8 @@ int soundAlsa::read(int &countAvailable)
if ( count == -EPIPE )
@@ -99,6 +103,8 @@ int soundAlsa::read(int &countAvailable)
if ( count == -EPIPE )
{
// Overrun
+ snd_pcm_drop(captureHandle);
+ snd_pcm_reset(captureHandle);
snd_pcm_prepare (captureHandle );
snd_pcm_start (captureHandle);
errorOut() << "Overrun";
@@ -153,6 +159,8 @@ int soundAlsa::write(uint numFrames)
else if ( framesWritten == -EPIPE )
{
// Overrun
/* underrun */
+ snd_pcm_drop(captureHandle);
+ snd_pcm_reset(captureHandle);
snd_pcm_prepare (captureHandle );
snd_pcm_start (captureHandle);
errorOut() << "Overrun";
@@ -142,6 +148,8 @@ int soundAlsa::write(uint numFrames)
else if ( framesWritten == -EPIPE )
{
/* underrun */
+ snd_pcm_drop(playbackHandle);
+ snd_pcm_reset(playbackHandle);
error = snd_pcm_prepare (playbackHandle);
if ( error < 0 )
{
@@ -360,5 +368,42 @@ void getCardList(QStringList &alsaInputL
n++;
}
error = snd_pcm_prepare (playbackHandle);
if ( error < 0 )
{
@@ -384,5 +392,41 @@ void getCardList(QStringList &alsaInputL
n++;
}
snd_device_name_free_hint(hints);
+
+ snd_config_t *pcmc;
@ -76,6 +76,5 @@
+ }
+ }
+ }
+
}

View File

@ -0,0 +1,12 @@
--- qsstv/videocapt/cameradialog.cpp.orig 2019-04-19 07:07:41 UTC
+++ qsstv/videocapt/cameradialog.cpp
@@ -220,7 +220,8 @@ void cameraDialog::getCameraInfo(QString
formats=getFormatList(fd);
if(ok)
{
- cameraList.append(scameraDevice(camDev,(const char *)cap.card,(const char *)cap.driver,(const char *)cap.bus_info,formats));
+ if (formats.count() > 0)
+ cameraList.append(scameraDevice(camDev,(const char *)cap.card,(const char *)cap.driver,(const char *)cap.bus_info,formats));
}
v4l2_close(fd);
}

View File

@ -1,4 +1,4 @@
--- qsstv/videocapt/imagesettings.h.orig 2016-08-23 19:39:12 UTC
--- qsstv/videocapt/imagesettings.h.orig 2019-04-18 21:14:43 UTC
+++ qsstv/videocapt/imagesettings.h
@@ -41,7 +41,6 @@
#ifndef IMAGESETTINGS_H

View File

@ -1,11 +1,10 @@
--- qsstv/videocapt/v4l2control.cpp.orig 2016-08-23 19:39:12 UTC
--- qsstv/videocapt/v4l2control.cpp.orig 2019-04-18 21:15:23 UTC
+++ qsstv/videocapt/v4l2control.cpp
@@ -32,7 +32,7 @@
@@ -32,7 +32,6 @@
#include <cerrno>
#include <cstring>
//#include <libv4l2.h>
-#include <linux/types.h> /* for videodev2.h */
+//#include <linux/types.h> /* for videodev2.h */
#include <linux/videodev2.h>
#include <QPushButton>

View File

@ -1,6 +1,6 @@
--- qwt/qwt.pro.orig 2016-08-23 19:39:13 UTC
--- qwt/qwt.pro.orig 2019-03-06 17:04:10 UTC
+++ qwt/qwt.pro
@@ -206,6 +206,8 @@ HEADERS += \
@@ -159,6 +159,8 @@ HEADERS += \
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib

View File

@ -1,4 +1,5 @@
bin/qsstv
share/applications/qsstv.desktop
%%PORTDOCS%%%%DOCSDIR%%/images/Gallery_image_options.png
%%PORTDOCS%%%%DOCSDIR%%/images/Gallery_rx.png
%%PORTDOCS%%%%DOCSDIR%%/images/Gallery_template.png
@ -41,7 +42,6 @@ bin/qsstv
%%PORTDOCS%%%%DOCSDIR%%/images/rxdrm_segments.png
%%PORTDOCS%%%%DOCSDIR%%/images/rxdrm_status.png
%%PORTDOCS%%%%DOCSDIR%%/images/rxwidget1.png
%%PORTDOCS%%%%DOCSDIR%%/images/sstvdrmselect.png
%%PORTDOCS%%%%DOCSDIR%%/images/statusbar.png
%%PORTDOCS%%%%DOCSDIR%%/images/statusleds.png
%%PORTDOCS%%%%DOCSDIR%%/images/transmitdrm.png
@ -55,18 +55,16 @@ bin/qsstv
%%PORTDOCS%%%%DOCSDIR%%/images/wf_bsr_id.png
%%PORTDOCS%%%%DOCSDIR%%/images/wftextpopup.png
%%PORTDOCS%%%%DOCSDIR%%/manual.txt
%%PORTDOCS%%%%DOCSDIR%%/manual/Copying.html
%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_image_options.png
%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_rx.png
%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_templates.png
%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_txdrm.png
%%PORTDOCS%%%%DOCSDIR%%/manual/RXDRM.html
%%PORTDOCS%%%%DOCSDIR%%/manual/RXSSTV.html
%%PORTDOCS%%%%DOCSDIR%%/manual/TXDRM.html
%%PORTDOCS%%%%DOCSDIR%%/manual/TXSSTV.html
%%PORTDOCS%%%%DOCSDIR%%/manual/_copying.html
%%PORTDOCS%%%%DOCSDIR%%/manual/_r_x_d_r_m.html
%%PORTDOCS%%%%DOCSDIR%%/manual/_r_x_s_s_t_v.html
%%PORTDOCS%%%%DOCSDIR%%/manual/_t_x_d_r_m.html
%%PORTDOCS%%%%DOCSDIR%%/manual/_t_x_s_s_t_v.html
%%PORTDOCS%%%%DOCSDIR%%/manual/arrow.png
%%PORTDOCS%%%%DOCSDIR%%/manual/arrowdown.png
%%PORTDOCS%%%%DOCSDIR%%/manual/arrowright.png
%%PORTDOCS%%%%DOCSDIR%%/manual/bc_s.png
%%PORTDOCS%%%%DOCSDIR%%/manual/bdwn.png
%%PORTDOCS%%%%DOCSDIR%%/manual/binary.png
@ -123,6 +121,8 @@ bin/qsstv
%%PORTDOCS%%%%DOCSDIR%%/manual/installation.html
%%PORTDOCS%%%%DOCSDIR%%/manual/jquery.js
%%PORTDOCS%%%%DOCSDIR%%/manual/line.png
%%PORTDOCS%%%%DOCSDIR%%/manual/menu.js
%%PORTDOCS%%%%DOCSDIR%%/manual/menudata.js
%%PORTDOCS%%%%DOCSDIR%%/manual/multiline.png
%%PORTDOCS%%%%DOCSDIR%%/manual/nav_f.png
%%PORTDOCS%%%%DOCSDIR%%/manual/nav_g.png
@ -136,6 +136,7 @@ bin/qsstv
%%PORTDOCS%%%%DOCSDIR%%/manual/qsstv.css
%%PORTDOCS%%%%DOCSDIR%%/manual/receivedrm.png
%%PORTDOCS%%%%DOCSDIR%%/manual/refreshbutton.png
%%PORTDOCS%%%%DOCSDIR%%/manual/repeater.html
%%PORTDOCS%%%%DOCSDIR%%/manual/replay.png
%%PORTDOCS%%%%DOCSDIR%%/manual/resize.js
%%PORTDOCS%%%%DOCSDIR%%/manual/rxdrm_constellation.png
@ -169,3 +170,4 @@ bin/qsstv
%%PORTDOCS%%%%DOCSDIR%%/manual/wftextpopup.png
%%PORTDOCS%%%%DOCSDIR%%/manual/whatsnew.html
%%PORTDOCS%%%%DOCSDIR%%/qsstv.css
%%PORTDOCS%%@dir %%DOCSDIR%%/manual