When I send an [open( message to a pix_film object, if it uses DirectShow (as opposed to QuickTime) to decode the file, it starts consuming an enormous amount of cpu: around 30% of a 2.5GHz Intel Core Duo machine. Furthermore, it never stops eating that much cpu, even if you stop repdorucing the file (by setting auto to 0 and not changing the frame through the right inlet) and even if you disconnect it from the gemhead.
This happens with file encoded with various codecs: DV-PAL, H.264, Animation+, and I suspect everything else.
Note that if I open the files with QuickTime instead of DS (by appending the proper number to the open message), then this does not happen: the impact of opening the file on the CPU is minimal, almost impossible to note, and it only consumes cpu during few seconds after opening the file, and when _actually_ playing it (i.e. a gemhead connected to it and changing frame). That is, with quicktime pix_film only consumes CPU when it is supposed to, and it is much much less CPU: you can easily read 6 full-size DV-PAL files actually rendering some portion of them on the screen, and you can have a dozen of pix_film with [open(ed files without impact on CPU (or even many more, then the impact won't be on CPU but on performance in general due to the memory trashing).
This can't be normal: DirectShow is supposed to be much faster than QuickTime on Windows; also, any given media player will open a video file using DirectSHow and without eating up nearly as much cpu, especially when not playing.
There must be something wrong in GEM.
Anonymous
that's a touch one.
there might be a problem with Gem using frame accurate seeking for playback, which might be handled better by QT than by DS.
i meant to say, that this is a "tough" one, rather than touching...
I'm not sure but I don't think it is related to seeking because:
- cpu consumption doesn't stop even if you don't send any frame number AND turn off "auto", that is, if you stop at a given frame
- cpu consumption doesn't stop even after you disconnect pix_film from the gemhead
If you remember the problem I reported in Linux, where there _is_ apparently a problem with frame-accurate seeking (but only with some codecs, maybe only h264), cpu consumption stops when you stop sending frame numbers to pix_film with auto turned off, and of course it stops if you disconnect it from the gemhead.
i think the problem might be caused by threaded reading (which is prohibited by QuickTime, as it is not thread safe).
you can disable threaded film decoding by sending a [thread 0( message prior to opening a new file.