Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full Analog-TV support #21

Closed
veso266 opened this issue Apr 3, 2017 · 18 comments
Closed

Full Analog-TV support #21

veso266 opened this issue Apr 3, 2017 · 18 comments

Comments

@veso266
Copy link

veso266 commented Apr 3, 2017

Hi do you think you could add Full Analog TV Support (not just ATV Analog)

It would be great if you could add PAL B/G, D/K, I and NTSC as well as SECAM
but first if you could add Color support to existing PAL Demodulator (I have a lot of bosnian stations that are still analog and nowadays its imposible to find a portable Analog television that would support all analog television modes

Thanks for Anwsering and Best Regards

@f4exb f4exb added the feature label Apr 4, 2017
@f4exb
Copy link
Owner

f4exb commented Apr 4, 2017

I have added it as a feature request and realize that analog color support is of interest for some of the audience. However it is fairly demanding in development effort and is not my priority. As always I am opened to contributions.

Also it would help if the present analog BW ATV gets more mature. For example it is still weak on the line synchronization and this is a killer for color support.

@veso266
Copy link
Author

veso266 commented Apr 5, 2017

OK so when you finish all your issues and improve line sync will color be added
PS: don't hams like colors? (why would it be of interest to them?)(even PAL Plugin for SDR# stopped in black and white state) I am asking this because I don't understand why adding color is that demanding because if you came that far to actualy implement PAL isn't adding color just a small addition?

Thanks for Anwsering and Best Regards

@f4exb
Copy link
Owner

f4exb commented Apr 6, 2017

When hams want to use color they probably switch to digital nowadays and quite a few probably did that some time ago. Purpose of the plugin was to have fun with good old analog TV without too many bells and whistles and also experiment with NBTV (Narrow Band) and for that purpose you would discard color to save bandwidth. NBTV will come in v3.3.3

I used the term "PAL" to qualify the frame synchronization scheme which is the one used in PAL (and NTSC and SECAM by the way) and that's all that is PAL there. To implement color is a lot of work because you have to mimic the rather complex analog circuitry that best works in... analog. This implies locking the color oscillator (a NCO then) in frequency and phase with the small burst at the start of the line. Then you need to filter the luminance (LPF) and the chrominance (BPF) apart. You then take the chrominance signal and decode its phase using the reference of the color oscillator. Then you reassemble everything to get the RGB according to the particular standard (PAL, NTSC, SECAM). I beleieve this is a lot of work for just analog color. Now anyone who is up at it is welcome but I will certainly concentrate on more valuable features. In particular it would be more immediately interesting to add support for digital TV.

So unless a contribution comes in I would say that it is not anytime soon. Having said that I keep this ticket open.

@DG9BFC
Copy link

DG9BFC commented May 23, 2017

we also still use analog atv here ... so i second that begging for pal color support
would make an easy atv repeater / receiver / transmitter
rx on 2.4 tx on 3,4 gig (just an example) ... or use lnb for 10gig rx and retransmit on 9, 13 or 23 cm??
all is possible with the lime
(if i could just get sdrangel working here grmbl)

@f4exb f4exb added enhancement and removed feature labels Aug 7, 2017
@cabeener
Copy link

In the USA Hams on ATV still use analog TV NTSC. Some of us have filter at 70mhz to take the bandwidth down to 350Khz, 700Khz, 1.2 Mhz up to 3.5Mhz. of course when we use 350Khz the Ham Txing needs to use Large black Call letter so we can see them. It helps a lot. you can see Call letter about 12db down farther in the noise.
A normal Rx sensitive for analog TV is around -100dbm but with 350khz its down around -115dbm.
You can take just seeing sync at 3.5Mhz to a lock P1 at 350khz bandwidth.
So I'm looking for better NTSC analog TV, and also DVB-T 2Mhz wide to 100Khz wide.
At 2mhz wide we have worked W4HTB two way Digital DVB-T 2Mhz. 311 miles just once.
But have work 125 miles all the time.
We love your program keep up the good work !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Charles
WB8LGA

@DG9BFC
Copy link

DG9BFC commented Dec 19, 2017

our repeater has a dvbt receiver 2 megs wide on 432 megs ... works suerb even for long distances
cabeener what did you use ther for dvbt?? the stuff from taiwan??
the lime maybe also could do this (its all a question of software) ...
with a wide band multiband rx tx like the lime you could do ANY mode ... even dvbt or any other fancy digital mode ... in any bandwidth

@f4exb
Copy link
Owner

f4exb commented Dec 20, 2017

Request for DATV modes is rather followed up with this issue #18 Here we are talking about color support in analog TV plugins which is rather obsolete I agree.

@DG9BFC
Copy link

DG9BFC commented Dec 20, 2017

analog tv is not obsolete so color support is a must have (i think) ... i was just asking cabaneer what he has used when they made their tests in datv ... i did not want to get off topic (and yes i have seen that topic)
so my dream is:
a powerfull single board pc with a touch screen (odroid xu4 with vu7 or a tablet pc) together with the lime and some poweramps, filters, rx/tx relays, gpio board, 5 and 10 gig up/downmixer all in one case
running sdrangel and we have a multiband multimode sdr transceiver
most analog things are already there (am fm ssb etc.)
on analog only analog tv is not finished .. when that is done and if dvbt could be added ... then also that mode could be added without adding new hardware tm my "dream" sdr :)

@cabeener
Copy link

Yes we used Hides equipment for Tx and Rx.
But there is a new SDR out Adalm-Pluto. You can Tx DVB-T on it with program Express DVB Transmitter.
and It only cost $99 USD. We have work two way on DVB-T 2 Meg and 311 miles. and we do 125 mile.
on and off depending the conditions. Yes you can also use Lime on both Tx and Rx but not in Windows.

@F5OEO
Copy link

F5OEO commented Mar 20, 2018

Can maybe inspired on Tx by colour ATV transmitter from https://github.com/fsphil/hacktv

jigpu added a commit to jigpu/sdrangel that referenced this issue Apr 22, 2018
Address the following crash when removing an ATVDemod with ASAN enabled:

==16289==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x62500034d100
    #0 0x7fe640b073c9 in operator delete(void*) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cc:124
    f4exb#1 0x7fe60a1f6a2b in ATVDemod::~ATVDemod() ./plugins/channelrx/demodatv/atvdemod.cpp:105
    f4exb#2 0x7fe60a1f7a39 in ATVDemod::~ATVDemod() ./plugins/channelrx/demodatv/atvdemod.cpp:106
    f4exb#3 0x7fe60a2a483d in ATVDemodGUI::~ATVDemodGUI() ./plugins/channelrx/demodatv/atvdemodgui.cpp:341
    f4exb#4 0x7fe60a2a5279 in ATVDemodGUI::~ATVDemodGUI() ./plugins/channelrx/demodatv/atvdemodgui.cpp:344
    f4exb#5 0x7fe63970e080 in QObject::event(QEvent*) (/usr/lib/libQt5Core.so.5+0x2ce080)
    f4exb#6 0x7fe63a49b8bb in QWidget::event(QEvent*) (/usr/lib/libQt5Widgets.so.5+0x1928bb)
    f4exb#7 0x7fe63a45afeb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/libQt5Widgets.so.5+0x151feb)
    f4exb#8 0x7fe63a4629c5 in QApplication::notify(QObject*, QEvent*) (/usr/lib/libQt5Widgets.so.5+0x1599c5)
    f4exb#9 0x7fe6396dccef in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib/libQt5Core.so.5+0x29ccef)
    f4exb#10 0x7fe6396df955 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib/libQt5Core.so.5+0x29f955)
    f4exb#11 0x7fe639739c53  (/usr/lib/libQt5Core.so.5+0x2f9c53)
    f4exb#12 0x7fe6325ed457 in g_main_context_dispatch (/usr/lib/libglib-2.0.so.0+0x4c457)
    f4exb#13 0x7fe6325ed6a0  (/usr/lib/libglib-2.0.so.0+0x4c6a0)
    f4exb#14 0x7fe6325ed72d in g_main_context_iteration (/usr/lib/libglib-2.0.so.0+0x4c72d)
    f4exb#15 0x7fe639739240 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/libQt5Core.so.5+0x2f9240)
    f4exb#16 0x7fe6295fd481  (/usr/lib/libQt5XcbQpa.so.5+0xc5481)
    f4exb#17 0x7fe6396db32a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/libQt5Core.so.5+0x29b32a)
    f4exb#18 0x7fe6396e4727 in QCoreApplication::exec() (/usr/lib/libQt5Core.so.5+0x2a4727)
    f4exb#19 0x55db4cb3e5a3 in runQtApplication ./app/main.cpp:124
    f4exb#20 0x55db4cb3c5a3 in main ./app/main.cpp:131
    f4exb#21 0x7fe637decf49 in __libc_start_main (/usr/lib/libc.so.6+0x20f49)
    f4exb#22 0x55db4cb3c899 in _start (/opt/sdrangel/bin/sdrangel+0x5899)

0x62500034d100 is located 0 bytes inside of 8192-byte region [0x62500034d100,0x62500034f100)
allocated by thread T0 here:
    #0 0x7fe640b06669 in operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cc:82
    f4exb#1 0x7fe60a1fbdc0 in ATVDemod::ATVDemod(DeviceSourceAPI*) ./plugins/channelrx/demodatv/atvdemod.cpp:80
@f4exb
Copy link
Owner

f4exb commented Mar 24, 2019

This issue has gained interest since the 5 GHz band FPV devices operate in color analog either PAL 625/25 or NTSC 525/30 with FM modulation. Using a modified version of hacktv (deviation for FPV is apparently only 4.3 MHz) I was able to see the color video on a wrist watch receiver. Great fun!

I'm thinking of putting color in the ATV transmitter first. This is easier than the Rx.

@DG9BFC
Copy link

DG9BFC commented Mar 24, 2019

what about also adding tone carrier(s) ???
5.5-6.5mhz ... selectable in 500kc steps (thats all needed 5.5, 6, 6.5 megs carrier)
or free tunable ??
greetz sigi dg9bfc

@f4exb
Copy link
Owner

f4exb commented Apr 28, 2019

Sorry, not enough resources this request is dropped

@f4exb f4exb closed this as completed Apr 28, 2019
@f4exb
Copy link
Owner

f4exb commented Apr 29, 2019

Deserves second look

@f4exb
Copy link
Owner

f4exb commented Feb 10, 2022

dropped

@f4exb f4exb closed this as completed Feb 10, 2022
@f4exb f4exb added wontfix and removed help wanted labels Feb 10, 2022
@PhilippMolitor
Copy link

Is there any chance this will be revived? I am coming from exactly the use case you described: I'm flying FPV and would love to use SDRAngel to view analog video feeds, while also using other SDR features (mostly just the spectrogram) in the 5.8G Band.

@gllxflr
Copy link

gllxflr commented Mar 23, 2024

Would love this to be revived, or at the very minimum a proper output from the existing one. 560x418 (viewport size) isn't a suitable capture resolution for 625-line television

@DG9BFC
Copy link

DG9BFC commented Mar 24, 2024 via email

dforsi added a commit to dforsi/sdrangel that referenced this issue May 4, 2024
Found with:
ASAN_OPTIONS="detect_odr_violation=1,strip_path_prefix=$(pwd)/" build/sdrangel

Fixes:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f2360af46b8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    f4exb#1 0x7f2321a07706 in AFC::MsgDeviceSetListsReport::create() sdrangel/plugins/feature/afc/afc.h:151
    f4exb#2 0x7f2321a0ac1f in AFC::updateDeviceSetLists() sdrangel/plugins/feature/afc/afc.cpp:290
    f4exb#3 0x7f2321a09648 in AFC::handleMessage(Message const&) sdrangel/plugins/feature/afc/afc.cpp:214
    f4exb#4 0x7f235dfba569 in Feature::handleInputMessages() sdrangel/sdrbase/feature/feature.cpp:46
    f4exb#5 0x7f235ddea09e in Feature::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/3DM3QXXG3A/moc_feature.cpp:89
    f4exb#6 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#7 0x7f235ddf5d8c in MessageQueue::messageEnqueued() build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/KH43KSYMFX/moc_messagequeue.cpp:131
    f4exb#8 0x7f235e0e1487 in MessageQueue::push(Message*, bool) sdrangel/sdrbase/util/messagequeue.cpp:55
    f4exb#9 0x7f2321a32fad in AFCGUI::requestDeviceSetLists() sdrangel/plugins/feature/afc/afcgui.cpp:213
    f4exb#10 0x7f2321a32124 in AFCGUI::AFCGUI(PluginAPI*, FeatureUISet*, Feature*, QWidget*) sdrangel/plugins/feature/afc/afcgui.cpp:170
    f4exb#11 0x7f2321a308cc in AFCGUI::create(PluginAPI*, FeatureUISet*, Feature*) sdrangel/plugins/feature/afc/afcgui.cpp:32
    f4exb#12 0x7f2321a1c229 in AFCPlugin::createFeatureGUI(FeatureUISet*, Feature*) const sdrangel/plugins/feature/afc/afcplugin.cpp:70
    f4exb#13 0x7f235fffc534 in MainWindow::featureAddClicked(Workspace*, int) sdrangel/sdrgui/mainwindow.cpp:2890
    f4exb#14 0x7f23600172c1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<Workspace*, int>, void, void (MainWindow::*)(Workspace*, int)>::call(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#15 0x7f2360012b8d in void QtPrivate::FunctionPointer<void (MainWindow::*)(Workspace*, int)>::call<QtPrivate::List<Workspace*, int>, void>(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#16 0x7f2360010016 in QtPrivate::QSlotObject<void (MainWindow::*)(Workspace*, int), QtPrivate::List<Workspace*, int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#17 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#18 0x7f235ffcc7fc in Workspace::addFeature(Workspace*, int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_workspace.cpp:393
    f4exb#19 0x7f23602f56f8 in Workspace::addFeatureEmitted(int) sdrangel/sdrgui/gui/workspace.cpp:413
    f4exb#20 0x7f236030d611 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (Workspace::*)(int)>::call(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#21 0x7f2360308bd9 in void QtPrivate::FunctionPointer<void (Workspace::*)(int)>::call<QtPrivate::List<int>, void>(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#22 0x7f2360305cdc in QtPrivate::QSlotObject<void (Workspace::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#23 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#24 0x7f235ffba7cf in FeatureAddDialog::addFeature(int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:141
    f4exb#25 0x7f23600c2d19 in FeatureAddDialog::apply(QAbstractButton*) sdrangel/sdrgui/gui/featureadddialog.cpp:53
    f4exb#26 0x7f235ffba366 in FeatureAddDialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:82
    f4exb#27 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#28 0x7f235c1029b2 in QDialogButtonBox::clicked(QAbstractButton*) (/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x3029b2) (BuildId: dfefd27f084c0dd066215fc79825fceae604f481)
dforsi added a commit to dforsi/sdrangel that referenced this issue May 19, 2024
Found with:
ASAN_OPTIONS="detect_odr_violation=1,strip_path_prefix=$(pwd)/" build/sdrangel

Fixes:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f2360af46b8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    f4exb#1 0x7f2321a07706 in AFC::MsgDeviceSetListsReport::create() sdrangel/plugins/feature/afc/afc.h:151
    f4exb#2 0x7f2321a0ac1f in AFC::updateDeviceSetLists() sdrangel/plugins/feature/afc/afc.cpp:290
    f4exb#3 0x7f2321a09648 in AFC::handleMessage(Message const&) sdrangel/plugins/feature/afc/afc.cpp:214
    f4exb#4 0x7f235dfba569 in Feature::handleInputMessages() sdrangel/sdrbase/feature/feature.cpp:46
    f4exb#5 0x7f235ddea09e in Feature::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/3DM3QXXG3A/moc_feature.cpp:89
    f4exb#6 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#7 0x7f235ddf5d8c in MessageQueue::messageEnqueued() build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/KH43KSYMFX/moc_messagequeue.cpp:131
    f4exb#8 0x7f235e0e1487 in MessageQueue::push(Message*, bool) sdrangel/sdrbase/util/messagequeue.cpp:55
    f4exb#9 0x7f2321a32fad in AFCGUI::requestDeviceSetLists() sdrangel/plugins/feature/afc/afcgui.cpp:213
    f4exb#10 0x7f2321a32124 in AFCGUI::AFCGUI(PluginAPI*, FeatureUISet*, Feature*, QWidget*) sdrangel/plugins/feature/afc/afcgui.cpp:170
    f4exb#11 0x7f2321a308cc in AFCGUI::create(PluginAPI*, FeatureUISet*, Feature*) sdrangel/plugins/feature/afc/afcgui.cpp:32
    f4exb#12 0x7f2321a1c229 in AFCPlugin::createFeatureGUI(FeatureUISet*, Feature*) const sdrangel/plugins/feature/afc/afcplugin.cpp:70
    f4exb#13 0x7f235fffc534 in MainWindow::featureAddClicked(Workspace*, int) sdrangel/sdrgui/mainwindow.cpp:2890
    f4exb#14 0x7f23600172c1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<Workspace*, int>, void, void (MainWindow::*)(Workspace*, int)>::call(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#15 0x7f2360012b8d in void QtPrivate::FunctionPointer<void (MainWindow::*)(Workspace*, int)>::call<QtPrivate::List<Workspace*, int>, void>(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#16 0x7f2360010016 in QtPrivate::QSlotObject<void (MainWindow::*)(Workspace*, int), QtPrivate::List<Workspace*, int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#17 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#18 0x7f235ffcc7fc in Workspace::addFeature(Workspace*, int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_workspace.cpp:393
    f4exb#19 0x7f23602f56f8 in Workspace::addFeatureEmitted(int) sdrangel/sdrgui/gui/workspace.cpp:413
    f4exb#20 0x7f236030d611 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (Workspace::*)(int)>::call(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#21 0x7f2360308bd9 in void QtPrivate::FunctionPointer<void (Workspace::*)(int)>::call<QtPrivate::List<int>, void>(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#22 0x7f2360305cdc in QtPrivate::QSlotObject<void (Workspace::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#23 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#24 0x7f235ffba7cf in FeatureAddDialog::addFeature(int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:141
    f4exb#25 0x7f23600c2d19 in FeatureAddDialog::apply(QAbstractButton*) sdrangel/sdrgui/gui/featureadddialog.cpp:53
    f4exb#26 0x7f235ffba366 in FeatureAddDialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:82
    f4exb#27 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#28 0x7f235c1029b2 in QDialogButtonBox::clicked(QAbstractButton*) (/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x3029b2) (BuildId: dfefd27f084c0dd066215fc79825fceae604f481)
dforsi added a commit to dforsi/sdrangel that referenced this issue May 19, 2024
Found with:
ASAN_OPTIONS="detect_odr_violation=1,strip_path_prefix=$(pwd)/" build/sdrangel

Fixes:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f2360af46b8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    f4exb#1 0x7f2321a07706 in AFC::MsgDeviceSetListsReport::create() sdrangel/plugins/feature/afc/afc.h:151
    f4exb#2 0x7f2321a0ac1f in AFC::updateDeviceSetLists() sdrangel/plugins/feature/afc/afc.cpp:290
    f4exb#3 0x7f2321a09648 in AFC::handleMessage(Message const&) sdrangel/plugins/feature/afc/afc.cpp:214
    f4exb#4 0x7f235dfba569 in Feature::handleInputMessages() sdrangel/sdrbase/feature/feature.cpp:46
    f4exb#5 0x7f235ddea09e in Feature::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/3DM3QXXG3A/moc_feature.cpp:89
    f4exb#6 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#7 0x7f235ddf5d8c in MessageQueue::messageEnqueued() build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/KH43KSYMFX/moc_messagequeue.cpp:131
    f4exb#8 0x7f235e0e1487 in MessageQueue::push(Message*, bool) sdrangel/sdrbase/util/messagequeue.cpp:55
    f4exb#9 0x7f2321a32fad in AFCGUI::requestDeviceSetLists() sdrangel/plugins/feature/afc/afcgui.cpp:213
    f4exb#10 0x7f2321a32124 in AFCGUI::AFCGUI(PluginAPI*, FeatureUISet*, Feature*, QWidget*) sdrangel/plugins/feature/afc/afcgui.cpp:170
    f4exb#11 0x7f2321a308cc in AFCGUI::create(PluginAPI*, FeatureUISet*, Feature*) sdrangel/plugins/feature/afc/afcgui.cpp:32
    f4exb#12 0x7f2321a1c229 in AFCPlugin::createFeatureGUI(FeatureUISet*, Feature*) const sdrangel/plugins/feature/afc/afcplugin.cpp:70
    f4exb#13 0x7f235fffc534 in MainWindow::featureAddClicked(Workspace*, int) sdrangel/sdrgui/mainwindow.cpp:2890
    f4exb#14 0x7f23600172c1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<Workspace*, int>, void, void (MainWindow::*)(Workspace*, int)>::call(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#15 0x7f2360012b8d in void QtPrivate::FunctionPointer<void (MainWindow::*)(Workspace*, int)>::call<QtPrivate::List<Workspace*, int>, void>(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#16 0x7f2360010016 in QtPrivate::QSlotObject<void (MainWindow::*)(Workspace*, int), QtPrivate::List<Workspace*, int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#17 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#18 0x7f235ffcc7fc in Workspace::addFeature(Workspace*, int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_workspace.cpp:393
    f4exb#19 0x7f23602f56f8 in Workspace::addFeatureEmitted(int) sdrangel/sdrgui/gui/workspace.cpp:413
    f4exb#20 0x7f236030d611 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (Workspace::*)(int)>::call(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#21 0x7f2360308bd9 in void QtPrivate::FunctionPointer<void (Workspace::*)(int)>::call<QtPrivate::List<int>, void>(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#22 0x7f2360305cdc in QtPrivate::QSlotObject<void (Workspace::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#23 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#24 0x7f235ffba7cf in FeatureAddDialog::addFeature(int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:141
    f4exb#25 0x7f23600c2d19 in FeatureAddDialog::apply(QAbstractButton*) sdrangel/sdrgui/gui/featureadddialog.cpp:53
    f4exb#26 0x7f235ffba366 in FeatureAddDialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:82
    f4exb#27 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#28 0x7f235c1029b2 in QDialogButtonBox::clicked(QAbstractButton*) (/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x3029b2) (BuildId: dfefd27f084c0dd066215fc79825fceae604f481)
dforsi added a commit to dforsi/sdrangel that referenced this issue May 19, 2024
Found with:
ASAN_OPTIONS="detect_odr_violation=1,strip_path_prefix=$(pwd)/" build/sdrangel

Fixes:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f2360af46b8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    f4exb#1 0x7f2321a07706 in AFC::MsgDeviceSetListsReport::create() sdrangel/plugins/feature/afc/afc.h:151
    f4exb#2 0x7f2321a0ac1f in AFC::updateDeviceSetLists() sdrangel/plugins/feature/afc/afc.cpp:290
    f4exb#3 0x7f2321a09648 in AFC::handleMessage(Message const&) sdrangel/plugins/feature/afc/afc.cpp:214
    f4exb#4 0x7f235dfba569 in Feature::handleInputMessages() sdrangel/sdrbase/feature/feature.cpp:46
    f4exb#5 0x7f235ddea09e in Feature::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/3DM3QXXG3A/moc_feature.cpp:89
    f4exb#6 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#7 0x7f235ddf5d8c in MessageQueue::messageEnqueued() build-sdrangel-Desktop_qt5-Debug/sdrbase/sdrbase_autogen/KH43KSYMFX/moc_messagequeue.cpp:131
    f4exb#8 0x7f235e0e1487 in MessageQueue::push(Message*, bool) sdrangel/sdrbase/util/messagequeue.cpp:55
    f4exb#9 0x7f2321a32fad in AFCGUI::requestDeviceSetLists() sdrangel/plugins/feature/afc/afcgui.cpp:213
    f4exb#10 0x7f2321a32124 in AFCGUI::AFCGUI(PluginAPI*, FeatureUISet*, Feature*, QWidget*) sdrangel/plugins/feature/afc/afcgui.cpp:170
    f4exb#11 0x7f2321a308cc in AFCGUI::create(PluginAPI*, FeatureUISet*, Feature*) sdrangel/plugins/feature/afc/afcgui.cpp:32
    f4exb#12 0x7f2321a1c229 in AFCPlugin::createFeatureGUI(FeatureUISet*, Feature*) const sdrangel/plugins/feature/afc/afcplugin.cpp:70
    f4exb#13 0x7f235fffc534 in MainWindow::featureAddClicked(Workspace*, int) sdrangel/sdrgui/mainwindow.cpp:2890
    f4exb#14 0x7f23600172c1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<Workspace*, int>, void, void (MainWindow::*)(Workspace*, int)>::call(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#15 0x7f2360012b8d in void QtPrivate::FunctionPointer<void (MainWindow::*)(Workspace*, int)>::call<QtPrivate::List<Workspace*, int>, void>(void (MainWindow::*)(Workspace*, int), MainWindow*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#16 0x7f2360010016 in QtPrivate::QSlotObject<void (MainWindow::*)(Workspace*, int), QtPrivate::List<Workspace*, int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#17 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#18 0x7f235ffcc7fc in Workspace::addFeature(Workspace*, int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_workspace.cpp:393
    f4exb#19 0x7f23602f56f8 in Workspace::addFeatureEmitted(int) sdrangel/sdrgui/gui/workspace.cpp:413
    f4exb#20 0x7f236030d611 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (Workspace::*)(int)>::call(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    f4exb#21 0x7f2360308bd9 in void QtPrivate::FunctionPointer<void (Workspace::*)(int)>::call<QtPrivate::List<int>, void>(void (Workspace::*)(int), Workspace*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    f4exb#22 0x7f2360305cdc in QtPrivate::QSlotObject<void (Workspace::*)(int), QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    f4exb#23 0x7f235b3062b1  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x3062b1) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#24 0x7f235ffba7cf in FeatureAddDialog::addFeature(int) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:141
    f4exb#25 0x7f23600c2d19 in FeatureAddDialog::apply(QAbstractButton*) sdrangel/sdrgui/gui/featureadddialog.cpp:53
    f4exb#26 0x7f235ffba366 in FeatureAddDialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) build-sdrangel-Desktop_qt5-Debug/sdrgui/sdrgui_autogen/DMHXEJ42XS/moc_featureadddialog.cpp:82
    f4exb#27 0x7f235b305fcc  (/lib/x86_64-linux-gnu/libQt5Core.so.5+0x305fcc) (BuildId: ed2abb344a128279a866aa6c4a79f3fa5c87c59e)
    f4exb#28 0x7f235c1029b2 in QDialogButtonBox::clicked(QAbstractButton*) (/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x3029b2) (BuildId: dfefd27f084c0dd066215fc79825fceae604f481)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants