Just as info the servicemp3 was initially made only for playing, The fact that recording would be used was never taken into acount.
It looks only one time at the media lenght that's by start off media.
playing 4097:0:0:0:0:0:0:0:0:0:/media/DVDISO/test/Harry Potter Philosophers.m4v
<158557.998847> [eDVBCAService] free slot 0 demux 0 for service 1:0:1:10E0:418:1:C00000:0:0:0:
<158557.999203> [eDVBCAService] free service 1:0:1:10E0:418:1:C00000:0:0:0:
<158558.012231> [eTSMPEGDecoder] decoder state: play, vpid=ffffffff, apid=ffffffff
<158558.012423> [eDVBPCR0] DEMUX_STOP ok
<158558.012592> [eDVBPCR0] destroy
<158558.012682> [eDVBVideo0] DEMUX_STOP ok
<158558.013742> [eDVBVideo0] VIDEO_STOP ok
<158558.016450> [eDVBVideo0] destroy
<158558.016567> [eDVBAudio0] AUDIO_STOP ok
<158558.042221> [eDVBAudio0] DEMUX_STOP ok
<158558.042391> [eDVBAudio0] AUDIO_CONTINUE ok
<158558.049553> [eDVBAudio0] destroy
<158558.049656> [eDVBText0] DEMUX_STOP ok
TuxTxt stopped service 28
<158558.052532> [eDVBText0] destroy
cleaning up
TuxTxt cache cleared
<158558.057557> [eDVBResourceManager] start release channel timer
<158558.059854> [eServiceMP3] construct!
<158558.060191> [eServiceMP3] playbin uri=file:///media/DVDISO/test/Harry%20Potter%20Philosophers.m4v
0:01:29.477560946 22919 0x76b540 INFO subsink gstsubsink.c:143:gst_sub_sink_init:<GstSubSink@0x2274288> SUBSINK INITIATED
<158558.089660> [eServiceMP3] starting pipeline
0:01:29.492033428 22919 0x76b540 INFO subsink gstsubsink.c:465:gst_sub_sink_change_state:<subtitle_sink> GST_STATE_CHANGE_NULL_TO_READY
<158558.153522> [eDVBDB] getBouquet failed.. no path given!
resolved to PLAY
<158558.163455> [eServiceMP3] gst_element_query_position failed in getPlayPosition
new service started! trying to download cuts!
seekable.getLength() returns: [-1, 47692555799596560L]
RemovePopup, id = ZapError
Perhaps an extra add is required since it's logic that recordings will have a growing lenght during process and this was not forseen in servicemp3.