Martin Wache wrote:

>>> Is there a reason why the cAudioRepacker is used in transfer mode and
>>> during recordings, but not while replaying?
>> Well, when cAudioRepacker was active while recording, then there is no
>> need for it when replaying such a recording.
> Wouldn't it make more sense to use the repacker only when replaying and
> in transfer mode and not while recording?
> Like it is now, it is possible that the device gets either repacked
> audio frames (transfer mode and new recordings) or not repacked frames.
> If the device needs repacked frames the device has to find out if it is
> replaying an old recording to play and if so, split the packets. I guess
> in most cases it is a lot simpler just to repack everything. Which means
> in most cases to do the repacking twice...

Fiddling around with repacking at that late stage is quite a mess
especially in trickspeed mode. And cVideoRepacker causes "high" CPU load
because there is no length information in the video stream so the whole
stream has to be scanned for the 00 00 01 pattern. Furthermore, consider
the memcpying involved in this process. That's why we have chosen the
earliest stage possible (cRemux) to do this complex stuff just once.

>> And old recordings will vanish as time passes by.
> I don't buy this argument. I know that there are VDR users with large
> archives of recordings, do you want to tell them that they can't use
> them any more?

No, I don't, as there is no need to. VDR's device interface
specification doesn't state any relationship between PES packets and
their content, so a device implementation shouldn't rely on that.

> But anyway, actually I think the best would be only to repack audio and
> video if the replaying device needs it. As far as I know FF cards don't
> need it, the softdevice doesn't need it (ok, it depends on the ffmpeg
> version one uses, but the patch I send fixes this).
> So why not let the device choose if repacking is needed or not? It
> should now if repacking is needed, and in most cases it should be able
> to do it by itself.

Well, it isn't just a matter of the output device. cVideoRepacker takes
care that VDR's index file contains valid entries. Before
cVideoRepacker, the index file could address incomplete frames or even
miss some frames.

Dipl.-Inform. (FH) Reinhard Nissl

vdr mailing list

Reply via email to