Seite 1 von 1

[fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Freitag 9. November 2018, 20:33
von GetAway
Streaminfo2 kann aktuell nicht für Armboxen genutzt werden, evtl auch nicht für andere. Es baut ohne Fehler, bis auf
die deprecated Sachen, wenn man neueren FFMPEG nutzt. Neutrino Segfaultet schon zu 90% im übergeordneten Menü,
sehr seltsam. GDB spuckt die unterschiedlichsten Sachen aus, ist also nicht zu gebrauchen. Ganz selten startet Streaminfo2,
segfaulted dann aber beim schließen.

Gebaut wird mit gcc-6.3.1, FFMepg 3.3.8, 3.4.5, 4.0.3 , aber auch flk's Yocto Buildsystem bringt den Fehler.

Vielleicht kümmert sich mal jemand darum der es voll drauf hat, wäre ganz toll.

Danke

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Verfasst: Montag 12. November 2018, 08:54
von seife
in Neutrino-MP tritt das nicht auf, bei mir funktioniert das ;-)

Klingt nach Speicherkorruption / Heap overrun. Ich würde Valgrind drauf ansetzen, der Fehler ist evtl. viel Früher und ganz wo anders.

Passiert es auf dem PC auch? Da läßt sich Valgrind meist komfortabler einsetzen.

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Verfasst: Montag 12. November 2018, 12:46
von GetAway
Welche Armbox hast du? Und baut das bei dir ohne Probleme, denn in deiner
info_menue.cpp steht
#include <gui/streaminfo1.h>
//#include <gui/streaminfo2.h>

Valgrind für den PC muss ich erstmal bauen.

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Verfasst: Montag 12. November 2018, 14:57
von seife
HD1, ich hab aber schon ewig nix mehr gebaut. Das streaminfo1 war ja glaub nur ein umbenanntes streaminfo2, weil die Vandalen beim reinwürgen des 4k-codes alles kaputtgemacht hatten, wenn ich mich recht erinnere, ich habe ja dann vermieden da noch irgendwas von zu mergen...

Jedenfalls stürzt im Neutrino-MP da nix ab ;-)

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Verfasst: Montag 12. November 2018, 15:08
von GetAway
Dann baut bei dir streaminfo1, weil du kein BOXTYPE_ARMBOX hast und kannst traurigerweise garnicht helfen.
Die Coolis laufen unter BOXTYPE_COOL (acinclude.m4) und damit baut streaminfo1.
Leider baut ja auf dem PC auch nur streaminfo1 ;)

Ich ändere mal den Titel

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Montag 12. November 2018, 16:14
von seife
Aber dann müsste es ja trotzdem möglich sein, streaminfo2 auch für PC zu bauen und dort zu testen?

Wenn nicht => frage dich, was die "Erfinder" da wohl falsch gemacht haben ;-)

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Montag 12. November 2018, 19:51
von satbaby
Neutrino Segfaultet schon zu 90% im übergeordneten Menü,
Das kommt von falschen includes in code wenn man streaminfo2 baut:

Code: Alles auswählen

diff --git a/src/gui/info_menue.cpp b/src/gui/info_menue.cpp
index d92fd74a0..cb5f2eacc 100644
--- a/src/gui/info_menue.cpp
+++ b/src/gui/info_menue.cpp
@@ -37,8 +37,8 @@
 #include <gui/info_menue.h>
 #include <gui/imageinfo.h>
 #include <gui/dboxinfo.h>
-#include <gui/streaminfo1.h>
-//#include <gui/streaminfo2.h>
+//#include <gui/streaminfo1.h>
+#include <gui/streaminfo2.h>
 
 #if 0
 #include <gui/buildinfo.h>
diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp
index 50e72bcca..596cd70fe 100644
--- a/src/gui/user_menue.cpp
+++ b/src/gui/user_menue.cpp
@@ -49,8 +49,8 @@
 #include "subchannel_select.h"
 #include "favorites.h"
 #include "audio_select.h"
-#include "streaminfo1.h"
-//#include "streaminfo2.h"
+// #include "streaminfo1.h"
+#include "streaminfo2.h"
 #include "epgplus.h"
 #include "epgview.h"
 #include "eventlist.h"
Sonst segaultet streaminfo2 auf PC hier niecht.

gruß

//edit
und das fehlt in movieplayer:

Code: Alles auswählen

diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp
index b08d75e9f..6e255c438 100644
--- a/src/gui/movieplayer.cpp
+++ b/src/gui/movieplayer.cpp
@@ -3258,3 +3258,21 @@ size_t CMoviePlayerGui::GetReadCount()
 //printf("GetReadCount: %lld\n", res);
        return (size_t) res;
 }
+
+unsigned int CMoviePlayerGui::getAPID(void)
+{
+       for (unsigned int i = 0; i < numpida; i++)
+               if (apids[i] == currentapid)
+                       return i;
+       return -1;
+}
+
+std::string CMoviePlayerGui::getAPIDDesc(unsigned int i)
+{
+       std::string apidtitle;
+       if (i < numpida)
+               getAudioName(apids[i], apidtitle);
+       if (apidtitle == "")
+               apidtitle = "Stream " + to_string(i);
+       return apidtitle;
+}

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Montag 12. November 2018, 19:57
von svenhoefer
Wenn ich ehrlich sein soll, weiß ich den Grund gar nicht mehr, weswegen ich die "alte" Streaminfo nach streaminfo1 kopiert habe. Irgendwas ging glaub auf den CST-Boxen mit streaminfo2 nicht.

Und das mit dem Vandalismus weise ich entschieden zurück. ^^

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Montag 12. November 2018, 21:17
von GetAway
Satbaby hat Recht mit den includes. Es läuft nach der zusätzlichen Anpassung der Makefile.am

Code: Alles auswählen

--- a/src/gui/Makefile.am
+++ b/src/gui/Makefile.am
@@ -112,13 +112,13 @@ libneutrino_gui_a_SOURCES = \
 	xmltv_setup.cpp \
 	zapit_setup.cpp
 
-#if BOXTYPE_ARMBOX
-#libneutrino_gui_a_SOURCES += \
-#	streaminfo2.cpp
-#else
+if BOXTYPE_ARMBOX
+libneutrino_gui_a_SOURCES += \
+	streaminfo2.cpp
+else
 libneutrino_gui_a_SOURCES += \
 	streaminfo1.cpp
-#endif
+endif
 
 if ENABLE_EXTUPDATE
 libneutrino_gui_a_SOURCES += \
Jetzt brauchen wir mal nen ordentlichen Patch Satbaby

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Montag 12. November 2018, 21:20
von GetAway
Und Danke an alle. Immer schön wenn alle an einem Strang ziehen. :up:

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Dienstag 13. November 2018, 13:41
von Janus
Mit bbs und aktuellem Git-Stand in einer Stretch-VM gibt's Fehler-Meldung beim Bau für HD51:

Code: Alles auswählen

   CXX      streaminfo2.o
/home/janus/development/bbs/source/gui-neutrino/src/gui/streaminfo2.cpp: In member function 'void CStreamInfo2::paint_techinfo(int, int)':
/home/janus/development/bbs/source/gui-neutrino/src/gui/streaminfo2.cpp:1097:59: error: 'box_width2' was not declared in this scope
   g_Font[font_info]->RenderString(xpos+spaceoffset, ypos, box_width2, t.description().c_str(), COL_MENUCONTENT_TEXT);
                                                           ^~~~~~~~~~
/home/janus/development/bbs/source/gui-neutrino/src/gui/streaminfo2.cpp:1097:71: error: 't' was not declared in this scope
   g_Font[font_info]->RenderString(xpos+spaceoffset, ypos, box_width2, t.description().c_str(), COL_MENUCONTENT_TEXT);
                                                                       ^
Makefile:703: die Regel für Ziel „streaminfo2.o“ scheiterte

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Dienstag 13. November 2018, 13:48
von GetAway
Trotz make Clean ?

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Dienstag 13. November 2018, 14:20
von Janus
Klar, make rebuild-clean!
Aber ich fürchte fast, es liegt an meinen eigenen Änderungen, die per 'git rebase' seit langer Zeit in meinem lokalen Repo sind.
Ein make system-pkgs mit dem master-Branch ist nämlich gerade durchgelaufen!

Sorry. Ich muss das wohl erstmal im mine-Branch selber fixen...
(Der allerdings am Wochenende noch ohne Stress durchgebaut hat)

edit Nachtrag:
Zwei Variablen wurden erst im else-zweig eines if-Konstrukts (if mp) definiert:
box_width2 (ohne int-Deklaration)
und
transponder t

Die Transponderdeklaration und ~belegung habe ich vor die If-Anweisung geschoben
und box_width2 in streaminfo2.h gemeinsam mit box_width deklariert.
Hat dann durchgebaut...

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Verfasst: Dienstag 13. November 2018, 15:31
von GetAway
@Janus

box_width2 gibts nur in streaminfo1.cpp, wenn du jetzt für hd51 baust, baust du streaminfo2.cpp :-?