I have IPP7.0 and Media SDK 2.0.12.24071.
Im working with the "sample_filters.sln", there I'm interested in "h264_enc_filter" and "h264_dec_filter".
Using these filters in GraphEdit: I manage to connect them and run them:
First I encode (using the h264_enc_filter) and then I decode (using the h264_dec_filter).
So that works for sure (although it requires another filter added before the encoder to convert the sample type of the input: but that's not what I want to ask here).
Now what I want to do is: I want to save/play ONLY the KeyFrame samples of the h264_enc_filter, and then decode using h264_dec_filter only the KeyFrames I've saved.
I don't mind that the Encoder will encode everything, but then I'll only send the KeyFrames to the Decoder and it will play KeyFrames only.
How can this be done?
How do I identify the KeyFrames in the h264_enc_filter?
Just to to be clear: by saying "KeyFrame" I mean the first sample of the GOP (not including the delta frames). So if the interval of KeyFrames is set to 50 and my source is PAL (25 frames per second): then I expect a KeyFrame every 2 seconds.
[added:] When using Microsoft WMV3, you can set the KeyFrame to be 50 (for example). So after I Encode with WMV3, I can either send to the Decoder (usually "The Player") the entire stream (whole GOP: KeyFrame + delta's) or just the KeyFrame (which is one every 2 seconds or 50 frames for PAL which has 25 frames per second) - and the Decoder would handle it! The advantage of Encoding everything but then either sending the entire stream or just the KeyFrame: is good for low bandwidth connections where you want to stream only the KeyFrames. Or you want to stream only the KeyFrames to Play "super fast".
Any help on this will be greatly appreciated.



