[mythtv] [mythtv-commits] Ticket #3350: ThreadedPreview Gen does not use qmap index consistently
mark at dclabs.com.au
Thu Apr 26 22:50:07 UTC 2007
>> Running too many at a time could actually hurt performance
> Yep, my FEs are pretty powerful (AMD64 X2 4200+ with untold
> gigs of RAM) so I can delete all the previews and scroll
> through all my recordings without a hickup, but a VIA 1Ghz
> with 512 MB would be a completely different matter.
my patch in #3353 does nice things for my xbox FE. my thinking is that if
the FE is on the BE, then its still the same machine.
the main problem I suspect is that preview image gen and preview video
display happen simultaneously and thus with NFS enabled for the recording
dir you get 2 streams of the same recording streaming to the FE starting at
the same time (av_find_sream_info). though nfs cacheing should mitigate that
a bit but with only 64M and lots of swapping going on, it wont be caching
much if anything unless the streams are extremely synced, which is unlikely.
perhaps there is a way to utilize the preview video to grab an image from
the live stream instead. avoid duplication.
with the image gen relegated to the backend and preview video to the FE, the
palybackbox experience is much nicer.
Of course the other solution is to disabled threaded preview image gen. then
it just waits before preview video is started.
I dont know if there is some metric that can be used to sense the
grunt/ability of the machine, perhaps how much swap is used compared with
total real mem combined with expected extra mem usage for the task/s at
hand. just needs to be calced at FE startup.
>> > generator on the backend is that it can take down the whole
>> > backend when ffmpeg segfaults when processing a broken
>> This is one of the reasons I broke out mythcommflag into a
>> separate executable a long time ago. I didn't want flagging
>> to be able to take down the backend. Some people might like
>> the ability to run:
>> mythblah -c chanid -s startime -f framenum -o /path/to/snapshot.png
what I do normally is use an exception handler around code that could
segfault to catch them and recover without killing the whole app.
More information about the mythtv-dev