PDA

View Full Version : [SF8008] Streaming HD problem



zukon
09-01-23, 08:07
Hi,

The error occurs on sf8008: when watching an HD program on TV and streaming another HD program to Chromecast 4 or VLC, the stream is interrupted after about 1 minute. breaking up also changes the channel to TV. Stream with transcoding is OK.

The problem does not occur on ATV and openPLI.



< 576.8557> 08:00:51.2436 [eInputDeviceInit] 1 6a (106) 1
< 576.8557> 08:00:51.2437 [eRCDeviceInputDev] emit: 1
< 576.8562> 08:00:51.2441 [InfoBarGenerics] Key: 106 (Make) KeyID='KEY_RIGHT' Binding='('RIGHT',)'.
< 576.8563> 08:00:51.2442 [ActionMap] Keymap 'DirectionActions' -> Action = 'right'.
< 577.0646> 08:00:51.4526 [eInputDeviceInit] 0 6a (106) 1
< 577.0647> 08:00:51.4526 [eRCDeviceInputDev] emit: 0
< 577.0659> 08:00:51.4539 [InfoBarGenerics] Key: 106 (Break) KeyID='KEY_RIGHT' Binding='('RIGHT',)'.
< 579.2288> 08:00:53.6168 [eInputDeviceInit] 1 ae (174) 1
< 579.2289> 08:00:53.6169 [eRCDeviceInputDev] emit: 1
< 579.2293> 08:00:53.6173 [InfoBarGenerics] Key: 174 (Make) KeyID='KEY_EXIT' Binding='('EXIT',)'.
< 579.4377> 08:00:53.8256 [eInputDeviceInit] 0 ae (174) 1
< 579.4377> 08:00:53.8257 [eRCDeviceInputDev] emit: 0
< 579.4381> 08:00:53.8261 [InfoBarGenerics] Key: 174 (Break) KeyID='KEY_EXIT' Binding='('EXIT',)'.
< 579.4383> 08:00:53.8262 [ActionMap] Keymap 'OkCancelActions' -> Action = 'cancel'.
< 582.6347> 08:00:57.0227 [eInputDeviceInit] 1 192 (402) 1
< 582.6348> 08:00:57.0228 [eRCDeviceInputDev] emit: 1
< 582.6357> 08:00:57.0236 [InfoBarGenerics] Key: 402 (Make) KeyID='KEY_CHANNELUP' Binding='('BOUQUET+',)'.
< 582.8434> 08:00:57.2314 [eInputDeviceInit] 0 192 (402) 1
< 582.8435> 08:00:57.2314 [eRCDeviceInputDev] emit: 0
< 582.8441> 08:00:57.2321 [InfoBarGenerics] Key: 402 (Break) KeyID='KEY_CHANNELUP' Binding='('BOUQUET+',)'.
< 582.8445> 08:00:57.2324 [ActionMap] Keymap 'InfobarChannelSelection' -> Action = 'ChannelPlusPressed'.
< 582.8463> 08:00:57.2342 [Navigation] playing ref 1:0:1:1139:2AF8:13E:820000:0:0:0:
< 582.8467> 08:00:57.2346 [eDVBCAService] free slot 0 demux 0 for service 1:0:1:C22:1E78:71:820000:0:0:0:
< 582.8467> 08:00:57.2346 [eDVBCAService] free service 1:0:1:C22:1E78:71:820000:0:0:0:
< 582.8589> 08:00:57.2469 [eTSMPEGDecoder] decoder state: play, vpid=ffffffff, apid=ffffffff
< 582.8590> 08:00:57.2470 [eDVBPCR0] DEMUX_STOP ok
< 582.8592> 08:00:57.2471 [eDVBPCR0] destroy
< 582.8592> 08:00:57.2471 [eDVBVideo0] DEMUX_STOP ok
< 582.8592> 08:00:57.2472 [eDVBVideo0] VIDEO_STOP ok
< 582.8594> 08:00:57.2473 [eDVBVideo0] destroy
< 582.8594> 08:00:57.2473 [eDVBAudio0] AUDIO_STOP ok
< 582.8594> 08:00:57.2474 [eDVBAudio0] DEMUX_STOP ok
< 582.8594> 08:00:57.2474 [eDVBAudio0] AUDIO_CONTINUE ok
< 582.8595> 08:00:57.2474 [eDVBAudio0] destroy
< 582.8595> 08:00:57.2474 [eDVBText0] DEMUX_STOP ok
< 582.8595> 08:00:57.2475 [decoder][eDVBText] stopCaching
< 582.8602> 08:00:57.2481 [eDVBText0] destroy
< 582.8602> 08:00:57.2482 [decoder][eDVBText] resetPID
< 582.8603> 08:00:57.2482 [decoder][eDVBText] freeCache
< 582.8629> 08:00:57.2508 [eDVBResourceManager] start release channel timer
< 582.8633> 08:00:57.2513 [servicedvb][eDVBServicePlay] now running: m_is_streamx set by m_is_stream 0
< 582.8634> 08:00:57.2513 [servicedvb][eDVBServicePlay] now running: m_is_pvr set to; 0
< 582.8634> 08:00:57.2514 [servicedvb][eDVBServicePlay][start] m_is_stream set to: 0
< 582.8634> 08:00:57.2514 [servicedvb][eDVBServicePlay][start] m_is_pvr set to; 0
< 582.8971> 08:00:57.2850 [eFilePushThreadRecorder] Warning: All write buffers busy
< 582.8972> 08:00:57.2852 [eDVBRecordFileThread] cancelling
< 582.8974> 08:00:57.2854 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.8998> 08:00:57.2878 [Notifications] RemovePopup, id = ZapError
< 582.9001> 08:00:57.2881 [eDVBRecordStreamThread] wait failed: Function not implemented
< 582.9002> 08:00:57.2882 [eFilePushThreadRecorder] WRITE ERROR, aborting thread: Function not implemented
< 582.9003> 08:00:57.2882 [eDVBRecordStreamThread] cancelling aio
< 582.9004> 08:00:57.2883 [eDVBRecordStreamThread] ok
< 582.9004> 08:00:57.2884 [eDVBRecordFileThread] waiting for aio to complete
< 582.9004> 08:00:57.2884 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9005> 08:00:57.2884 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9005> 08:00:57.2884 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9005> 08:00:57.2884 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9005> 08:00:57.2884 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9005> 08:00:57.2885 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9006> 08:00:57.2885 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9006> 08:00:57.2885 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9006> 08:00:57.2886 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9007> 08:00:57.2886 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9007> 08:00:57.2886 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9007> 08:00:57.2886 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9007> 08:00:57.2887 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9007> 08:00:57.2887 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9007> 08:00:57.2887 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9008> 08:00:57.2887 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9008> 08:00:57.2887 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9008> 08:00:57.2887 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9008> 08:00:57.2888 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9008> 08:00:57.2888 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9009> 08:00:57.2888 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9009> 08:00:57.2888 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9009> 08:00:57.2888 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9009> 08:00:57.2889 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9009> 08:00:57.2889 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9010> 08:00:57.2889 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9010> 08:00:57.2889 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9010> 08:00:57.2890 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9010> 08:00:57.2890 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9011> 08:00:57.2890 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9011> 08:00:57.2890 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9011> 08:00:57.2890 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9011> 08:00:57.2891 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9011> 08:00:57.2891 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9012> 08:00:57.2891 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9012> 08:00:57.2891 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9012> 08:00:57.2891 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9012> 08:00:57.2892 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9012> 08:00:57.2892 [eDVBRecordFileThread] wait: aio_return returned failure: Function not implemented
< 582.9013> 08:00:57.2892 [eDVBRecordFileThread] buffer usage histogram (40 buffers of 188 kB)
< 582.9013> 08:00:57.2892 [eDVBRecordFileThread] 0: 27946
< 582.9013> 08:00:57.2892 [eDVBRecordFileThread] 1: 585702
< 582.9013> 08:00:57.2893 [eDVBRecordFileThread] 2: 40498
< 582.9013> 08:00:57.2893 [eDVBRecordFileThread] 3: 5152
< 582.9014> 08:00:57.2893 [eDVBRecordFileThread] 4: 1990
< 582.9014> 08:00:57.2893 [eDVBRecordFileThread] 5: 1111
< 582.9014> 08:00:57.2893 [eDVBRecordFileThread] 6: 779
< 582.9014> 08:00:57.2894 [eDVBRecordFileThread] 7: 601
< 582.9014> 08:00:57.2894 [eDVBRecordFileThread] 8: 460
< 582.9014> 08:00:57.2894 [eDVBRecordFileThread] 9: 320
< 582.9015> 08:00:57.2894 [eDVBRecordFileThread] 10: 212
< 582.9015> 08:00:57.2894 [eDVBRecordFileThread] 11: 153
< 582.9015> 08:00:57.2894 [eDVBRecordFileThread] 12: 101
< 582.9015> 08:00:57.2894 [eDVBRecordFileThread] 13: 69
< 582.9015> 08:00:57.2895 [eDVBRecordFileThread] 14: 44
< 582.9015> 08:00:57.2895 [eDVBRecordFileThread] 15: 41
< 582.9016> 08:00:57.2895 [eDVBRecordFileThread] 16: 29
< 582.9016> 08:00:57.2895 [eDVBRecordFileThread] 17: 29
< 582.9016> 08:00:57.2895 [eDVBRecordFileThread] 18: 25
< 582.9016> 08:00:57.2895 [eDVBRecordFileThread] 19: 18
< 582.9016> 08:00:57.2896 [eDVBRecordFileThread] 20: 17
< 582.9016> 08:00:57.2896 [eDVBRecordFileThread] 21: 15
< 582.9017> 08:00:57.2896 [eDVBRecordFileThread] 22: 12
< 582.9017> 08:00:57.2896 [eDVBRecordFileThread] 23: 11
< 582.9017> 08:00:57.2896 [eDVBRecordFileThread] 24: 9
< 582.9017> 08:00:57.2896 [eDVBRecordFileThread] 25: 8
< 582.9017> 08:00:57.2897 [eDVBRecordFileThread] 26: 8
< 582.9018> 08:00:57.2897 [eDVBRecordFileThread] 27: 8
< 582.9018> 08:00:57.2897 [eDVBRecordFileThread] 28: 8
< 582.9018> 08:00:57.2897 [eDVBRecordFileThread] 29: 9
< 582.9018> 08:00:57.2897 [eDVBRecordFileThread] 30: 8
< 582.9018> 08:00:57.2898 [eDVBRecordFileThread] 31: 7
< 582.9018> 08:00:57.2898 [eDVBRecordFileThread] 32: 6
< 582.9019> 08:00:57.2898 [eDVBRecordFileThread] 33: 5
< 582.9019> 08:00:57.2898 [eDVBRecordFileThread] 34: 5
< 582.9019> 08:00:57.2898 [eDVBRecordFileThread] 35: 4
< 582.9019> 08:00:57.2898 [eDVBLocalTimerHandler] remove channel 0x2e08f48
< 582.9019> 08:00:57.2898 [eDVBRecordFileThread] 36: 2
< 582.9019> 08:00:57.2899 [eDVBRecordFileThread] 37: 3
< 582.9019> 08:00:57.2899 [eDVBRecordFileThread] 38: 2
< 582.9020> 08:00:57.2899 [eDVBRecordFileThread] 39: 1
< 582.9020> 08:00:57.2899 [eDVBRecordFileThread] 40: 1
< 582.9020> 08:00:57.2900 [eFilePushThreadRecorder] THREAD STOP
< 582.9021> 08:00:57.2901 [eEPGTransponderDataReader] remove channel 0x2e08f48
< 582.9104> 08:00:57.2984 [eEPGChannelData] abort caching events !!
< 582.9145> 08:00:57.3025 [eDVBResourceManager] allocate channel.. 2af8:013e
< 582.9146> 08:00:57.3025 [eDVBResourceManager] available channel.. 0190:013e
< 582.9150> 08:00:57.3029 [eDVBFrontend0] tune
< 582.9151> 08:00:57.3030 [eDVBSatelliteEquipmentControl] [prepare] UnicableTuningWord 0x120d2, guard_offset 0
< 582.9151> 08:00:57.3030 **** Tuning JESS
< 582.9151> 08:00:57.3030 **** frequency_mhz: 10719
< 582.9151> 08:00:57.3030 **** lo_mhz: 9750
< 582.9151> 08:00:57.3031 **** T: 869
< 582.9151> 08:00:57.3031 **** position: 0
< 582.9152> 08:00:57.3032 **** ub: 9
< 582.9153> 08:00:57.3032 **** mode: 0
< 582.9153> 08:00:57.3033 **** JESS: 70 4b 65 00
< 582.9153> 08:00:57.3033 [eDVBSatelliteEquipmentControl] RotorCmd ffffffff, lastRotorCmd ffffffff
< 582.9154> 08:00:57.3033 [eDVBFrontend0] prepare_sat System 1 Freq 10719000 Pol 1 SR 27500000 INV 2 FEC 3 orbpos 130 system 1 modulation 2 pilot 2, rolloff 0, is_id -1, pls_mode 1, pls_code 0, t2mi_plp_id -1 t2mi_pid 4096
< 582.9154> 08:00:57.3033 [eDVBFrontend0] tuning to 1271 mhz
< 582.9154> 08:00:57.3034 [eDVBChannel] OURSTATE: tuning
< 582.9154> 08:00:57.3034 [eDVBServicePMTHandler] allocate Channel: res 0
< 582.9155> 08:00:57.3034 [eDVBCIInterfaces] addPMTHandler 1:0:1:1139:2AF8:13E:820000:0:0:0:
< 582.9156> 08:00:57.3035 [eDVBChannel] getDemux cap=00
< 582.9156> 08:00:57.3035 [eDVBResourceManager] allocate demux cap=00
< 582.9156> 08:00:57.3035 [eDVBResourceManager] allocating demux adapter=0, demux=0, source=0 fesource=0
< 582.9156> 08:00:57.3036 [eDVBDemux] open demux /dev/dvb/adapter0/demux0
< 582.9319> 08:00:57.3199 [eDVBFrontend0] set static current limiting
< 582.9322> 08:00:57.3201 [eDVBServiceStream] stream write error
< 582.9322> 08:00:57.3201 [eDVBServiceStream] stop streaming m_state 2
< 583.3423> 08:00:57.7303 [eFilePushThreadRecorder] stopping thread.
< 583.3424> 08:00:57.7303 [eThread] send signal to non running thread
< 583.3439> 08:00:57.7318 [eDVBCAService] free slot 0 demux 1 for service 1:0:1:32DE:190:13E:820000:0:0:0:
< 583.3439> 08:00:57.7319 [eDVBCAService] free service 1:0:1:32DE:190:13E:820000:0:0:0:
< 583.3447> 08:00:57.7326 [eDVBLocalTimerHandler] remove channel 0x2e33750
< 583.3448> 08:00:57.7327 [eEPGTransponderDataReader] remove channel 0x2e33750

zukon
11-01-23, 21:32
Solution of my problem:


diff -urN git/lib/dvb/filepush.cpp git/lib/dvb/filepush.cpp
--- git/lib/dvb/filepush.cpp 2023-01-06 22:41:41.710419783 +0100
+++ git/lib/dvb/filepush.cpp 2023-01-10 20:54:31.726915891 +0100
@@ -17,7 +17,7 @@
m_blocksize(blocksize),
m_buffersize(buffersize),
m_buffer((unsigned char *)malloc(buffersize)),
- m_messagepump(eApp, 0, "eFilePushThread"),
+ m_messagepump(eApp, 0),
m_run_state(0)
{
if (m_buffer == NULL)
@@ -37,12 +37,6 @@

static void ignore_but_report_signals()
{
- /* we must set a signal mask for the thread otherwise signals don't have any effect */
- sigset_t sigmask;
- sigemptyset(&sigmask);
- sigaddset(&sigmask, SIGUSR1);
- pthread_sigmask(SIG_UNBLOCK, &sigmask, NULL);
-
/* we set the signal to not restart syscalls, so we can detect our signal. */
struct sigaction act = {};
act.sa_handler = signal_handler; // no, SIG_IGN doesn't do it. we want to receive the -EINTR
@@ -328,47 +322,41 @@
m_buffer(buffer),
m_overflow_count(0),
m_stop(1),
- m_messagepump(eApp, 0, "eFilePushThreadRecorder")
+ m_messagepump(eApp, 0)
{
CONNECT(m_messagepump.recv_msg, eFilePushThreadRecorder::recvEvent);
}

void eFilePushThreadRecorder::thread()
{
- ignore_but_report_signals();
- hasStarted(); /* "start()" blocks until we get here */
setIoPrio(IOPRIO_CLASS_RT, 7);
+
eDebug("[eFilePushThreadRecorder] THREAD START");

- /* m_stop must be evaluated after each syscall */
- /* if it isn't, there's a chance of the thread becoming deadlocked when recordings are finishing */
+ /* we set the signal to not restart syscalls, so we can detect our signal. */
+ struct sigaction act;
+ act.sa_handler = signal_handler; // no, SIG_IGN doesn't do it. we want to receive the -EINTR
+ act.sa_flags = 0;
+ sigaction(SIGUSR1, &act, 0);
+
+ hasStarted();
+
+ /* m_stop must be evaluated after each syscall. */
while (!m_stop)
{
- /* this works around the buggy Broadcom encoder that always returns even if there is no data */
- /* (works like O_NONBLOCK even when not opened as such), prevent idle waiting for the data */
- /* this won't ever hurt, because it will return immediately when there is data or an error condition */
-
- struct pollfd pfd = { m_fd_source, POLLIN, 0 };
- poll(&pfd, 1, 100);
- /* Reminder: m_stop *must* be evaluated after each syscall. */
- if (m_stop)
- break;
-
ssize_t bytes = ::read(m_fd_source, m_buffer, m_buffersize);
- /* And again: Check m_stop regardless of read success. */
- if (m_stop)
- break;
-
if (bytes < 0)
{
bytes = 0;
+ /* Check m_stop after interrupted syscall. */
+ if (m_stop) {
+ break;
+ }
if (errno == EINTR || errno == EBUSY || errno == EAGAIN)
- {
#if HAVE_HISILICON
usleep(100000);
#endif
- continue;
- }
+ continue;
if (errno == EOVERFLOW)
{
eWarning("[eFilePushThreadRecorder] OVERFLOW while recording");
@@ -393,7 +381,7 @@
#endif
if (w < 0)
{
- eWarning("[eFilePushThreadRecorder] WRITE ERROR, aborting thread: %m");
+ eDebug("[eFilePushThreadRecorder] WRITE ERROR, aborting thread: %m");
sendEvent(evtWriteError);
break;
}


Other fixes:

diff -urN git/configure.ac git/configure.ac
--- git/configure.ac 2022-12-20 20:15:09.622769983 +0100
+++ git/configure.ac 2022-12-20 20:15:49.193938164 +0100
@@ -450,7 +450,7 @@
if test "$BOXTYPE" == "sf8008" -o "$BOXTYPE" == "sf8008m" -o "$BOXTYPE" == "sx988" -o "$BOXTYPE" == "sfx6008" -o "$BOXTYPE" == "gbmv200" -o "$BOXTYPE" == "viper4k" -o "$BOXTYPE" == "beyonwizv2" -o "$BOXTYPE" == "ustym4kpro"; then
AC_DEFINE(HAVE_HISILICON, 1,[define add HISILICON chip])
AC_DEFINE(CONFIG_HISILICON_FB, 1,[define add HISILICON framebuffer blit])
- AC_DEFINE(FORCE_BLENDING_ACCELERATION, 1,[define when the framebuffer acceleration has alphablending support, but detection slow down all])
+ AC_DEFINE(FORCE_ALPHABLENDING_ACCELERATION, 1,[define when the framebuffer acceleration has alphablending support, but detection slow down all])
fi

if test "$BOXTYPE" == "u5" -o "$BOXTYPE" == "u5pvr" -o "$BOXTYPE" == "u51" -o "$BOXTYPE" == "u52" -o "$BOXTYPE" == "u53" -o "$BOXTYPE" == "u532" -o "$BOXTYPE" == "u533" -o "$BOXTYPE" == "u54" -o "$BOXTYPE" == "u55" -o "$BOXTYPE" == "u56" -o "$BOXTYPE" == "u57" -o "$BOXTYPE" == "u571" -o "$BOXTYPE" == "u41" -o "$BOXTYPE" == "u42" -o "$BOXTYPE" == "u43"; then


diff -urN git/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py git/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py
--- git/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py 2023-01-09 21:55:50.006362972 +0100
+++ git/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py 2023-01-09 21:47:31.651902013 +0100
@@ -130,7 +130,7 @@
self["ServiceList_desc"] = StaticText(_("Assigned services/provider:"))
self["ServiceList_info"] = StaticText()

- self["actions"] = ActionMap(["ColorActions", "SetupActions", "MenuActions"],
+ self["actions"] = ActionMap(["ColorActions", "OkCancelActions", "MenuActions"],
{
"green": self.greenPressed,
"red": self.redPressed,
@@ -379,7 +379,7 @@

def __init__(self, session, ci_slot="9"):
CIconfigMenu.__init__(self, session, ci_slot)
- self["actions"] = ActionMap(["ColorActions", "SetupActions", "MenuActions"],
+ self["actions"] = ActionMap(["ColorActions", "OkCancelActions", "MenuActions"],
{
"green": self.greenPressed,
"red": self.redPressed,

Thanks and regards

abu baniaz
11-01-23, 21:38
Can you please submit a pull request.

zukon
11-01-23, 21:59
Sended pull request.

twol
11-01-23, 22:38
There are errors in those changes, unnecessary changes that remove debug source identification and changes to configure.ac that make no difference to the sf8008 type receivers. - I would like to know the source of the change, so that we can discuss

Not being negative, just would like to understand where it has come from, as it has to work across all mips/arm/ hisilicon boxes … and this module (filepush) has been through many discussions/changes across the images with many false solutions to issues

zukon
12-01-23, 06:30
I just revert older version from repo with cosmeting changes. Nothing new. This fix streaming problem. That's all.

Problem exists only on sf8008, exemply on zgemma h9twin everything is OK with straming. Unbox and connect sf8008, flash 6.3 and check.

twol
12-01-23, 15:16
I just revert older version from repo with cosmeting changes. Nothing new. This fix streaming problem. That's all.

Problem exists only on sf8008, exemply on zgemma h9twin everything is OK with straming. Unbox and connect sf8008, flash 6.3 and check.

so not sure if you are building or not, but here is a version of filepush.cpp that includes changes for broadcom/Arm and your sf8008 code with some updated changes

let me know how this works for you .....the changes in filepush are extensive and made because of numerous issues... which the later code fixed, so I have specifically tried to make your changes only for the sf8008 (and obviously similar receivers)

zukon
12-01-23, 16:38
IMO new filepush.cpp is perfect! Thanks!

Regards

twol
12-01-23, 16:57
IMO new filepush.cpp is perfect! Thanks!

Regards
Can you post me a debug log - whilst running to PC, would like to see whats different

zukon
13-01-23, 15:53
In attachment. 30-40 min with changing channels on TV (stream is the same HD channel). Before fix after 1 max 2 min stream was close. The same if watching on TV channel was changed. Now is perfect.

twol
13-01-23, 17:44
In attachment. 30-40 min with changing channels on TV (stream is the same HD channel). Before fix after 1 max 2 min stream was close. The same if watching on TV channel was changed. Now is perfect.
That debug log is pretty clean - nice

Ev0
14-01-23, 21:15
Great work guys, this has not only fixed the issue you had noticed, but it has (for me atleast) fixed an issue with stream-relay channels where it would request a double ecm every few seconds causing it to trip over itself and therefore glitch or freeze.

Huevos
15-01-23, 01:15
Great work guys, this has not only fixed the issue you had noticed, but it has (for me atleast) fixed an issue with stream-relay channels where it would request a double ecm every few seconds causing it to trip over itself and therefore glitch or freeze.On what box?

Ev0
15-01-23, 11:44
On what box?

sf8008, will check the trio4k and ustym 4k pro later

Huevos
15-01-23, 14:08
Have we tested on non-HiSi boxes?