I am developing MPEG 2 Decoder with Intel Media Sdk.
I try to decode MPEG 2 Frame which contain Intral Slice.
But I can't decode it.
The frame is always P-Frame.
MPEG2 Seauence Header have low_delay flag.
The frame flag is ture.
Is it posible to decode such a frame?
If not, is there plan to improve ?
Thanks for the question. The short answer - We decode every stream that confirms to the spec.
I tried to reproduce the problem you are seeing by decoding a stream with 1 I-frame, and (N-1) P-frames - so effectively a low delay mpeg2 stream. Our decoder decodes this stream without any issue.
You seem to have stumbled upon a corner case or a stream that is non-conforming. Can you please send us the stream you are testing with so that we can reproduce the issue and fix it? That would be very helpful. Also, if you used one of the samples/tutorials with modifications for the decode, please send us the code is possible.
Sending us your test stream will be extremely helpful. Thanks.
I tried your test stream with our decoder, and yes, the decoder stream is not generated. The decoder is always looking for a reference frame or so and does not decode. Our decoder expects at least one key frame at the beginning, as acc to the spec.
Having said that, I will perform a couple more experiments and get back to you with more details. For now, we need at least one ref frame (my example with one I-frame and 100s or P-frames decoded fine).
For my knowledge - why is it that your video stream has no key/ref frame?
Thank you for your Test.
Yes, my stream has only P-Frame.
But, that's P-Frame always contain I-Slice.
The format is called "Intra Slice".
I-Frame is made from some I-Slices.
In order to decode I-Frame, decoder need to gather I-Slice of P-Frame.
This format is mpeg2 specific.