OpenVix would have had the issue, as they took your fix.
However I am not sure there was a public image released that had the issue included.
What was done to fix this is at minimum, mostly correct. I do not see what the fuss is about. So let's go through it one time and be done with it!
The suggested commit to fix the missing recording files was only this:
C++:
diff -urpN a/filepush.cpp b/filepush.cpp
--- a/filepush.cpp 2026-04-11 20:33:44.467082000 -0400
+++ b/filepush.cpp 2026-04-11 19:41:49.914319000 -0400
@@ -342,7 +342,11 @@ eFilePushThreadRecorder::eFilePushThread
m_stop(1),
m_buffer_fill(0),
m_buffer_min_write(0),
- m_messagepump(eApp, 0, "eFilePushThreadRecorder")
+ m_messagepump(eApp, 0, "eFilePushThreadRecorder"),
+ m_protocol(0),
+ m_session_id(0),
+ m_stream_id(0),
+ m_packet_no(0)
{
CONNECT(m_messagepump.recv_msg, eFilePushThreadRecorder::recvEvent);
diff -urpN a/pvrparse.cpp b/pvrparse.cpp
--- a/pvrparse.cpp 2026-04-11 20:33:44.495083000 -0400
+++ b/pvrparse.cpp 2026-04-11 14:47:52.780588000 -0400
@@ -922,7 +922,14 @@ int eMPEGStreamParserTS::processPacket(c
//}
//eDebugNoNewLine("\n");
- return -2;
+ /* Return 0 (not -2): a missing/invalid PES start code means we
+ * cannot extract a PTS from this packet, but the stream is not
+ * corrupt — CI-decrypted streams, MPEG-1 audio, and similar
+ * sources regularly produce PUSI packets without a 0x000001
+ * start code. Returning -2 caused parseData() to abort early
+ * and asyncWrite() to skip writing data to disk, resulting in
+ * empty recordings and missing .ap/.sc files. */
+ return 0;
}
if (pkt[7] & 0x80) // PTS present?
The pvr pvrparse.cpp edit could be at least questionable, depending on what -2 depends on as compared to the previous 0. So you can probably eliminate that one if you want, and really you can eliminate the whole commit because it has actually been fixed twice!
The filepush.cpp edit is what I see as actually fixing the problem, Which is basically adding:
+ m_protocol(0),
+ m_session_id(0),
+ m_stream_id(0),
+ m_packet_no(0)
Why this was missing in OBH engma2 will remain a mystery, but the same damn code has been in OpenATV since at least 2024:
So there basically you have it. That is the total sum of our edits that are supposedly a Work-Around or whatever. Sure, the pvrparse.cpp edit may be wrong, but no one says that outright. Our filepush.cpp edit has existed in ATV code for years!
I built a custom image again from OE 6 sources and used this enigma2, which represents filepush.cpp and pvr.cpp before they were edited here:
openbh-gui. Contribute to EB-TNAP/enigma2-OBH development by creating an account on GitHub.
github.com
The image built from that source only produces 3 files for a CNN feed channel on Galaxy 19, tp 11795H
The OBH Test image only produces 3 files as shown here, NS CH4:
root@sf8008:/media/hdd/movie# ls
20260426 0126 - NS Ch4 - instant record.ts
20260426 0126 - NS Ch4 - instant record.ts.cuts
20260426 0126 - NS Ch4 - instant record.ts.meta
20260426 0138 - Srv_2 - instant record.ts
20260426 0138 - Srv_2 - instant record.ts.cuts
20260426 0138 - Srv_2 - instant record.ts.meta
20260426 0138 - Srv_2 - instant record.ts.sc
20260426 0158 - MontanaPBS - Current.ts
20260426 0158 - MontanaPBS - Current.ts.ap
20260426 0158 - MontanaPBS - Current.ts.cuts
20260426 0158 - MontanaPBS - Current.ts.meta
20260426 0158 - MontanaPBS - Current.ts.sc
root@sf8008:/media/hdd/movie#
What fixes it? The same thing ATV has been using in filepush.cpp for years:
m_protocol = m_stream_id = m_session_id = m_packet_no = 0;
Apparently someone realized this or saw this and added it yet again here:
leads to loss of .ap & .sc filesl
github.com
This means the "fix" is duplicated and exists twice in OBH, filepush.cpp, but only exists once in OpenVix filepush.cpp. And this is why I say you can probably eliminate mine entirely as I tested without the pvrparse.cpp edit and got all of the recording files. The real and proper fix it seems is in filepush.cpp, but you got it twice currently in OBH filepush.cpp, once from me and again, courtesy of OpenVix commit!
So where may I ask is the work-around?