jsadler
Posts: 9
Joined: Thu Dec 03, 2015 12:09 pm

video_decode interlace detection

Thu Dec 03, 2015 12:25 pm

Hi,

I'm trying to use OMX `video_decode` component to decode h.264 video, which may, or may-not, be interlaced.

From what I understand, the decoder is supposed to signal whether the video is interlaced or not on it's output port. So I should be able to do something like:

Code: Select all

OMX_CONFIG_INTERLACETYPE interlace;
OMX_INIT_STRUCTURE(interlace);
interlace.nPortIndex = 131;
OMX_GetConfig (decoder, OMX_IndexConfigCommonInterlace, &interlace);

if (interlace.eMode != OMX_InterlaceProgressive) {
  // it's interlaced
}
However, although I'm feeding it interlaced video, it still tells me it's progressive. For instance, I tried this clip: http://solidrun.maltegrosse.de/~fritsch ... _mbaff.mp4 which is MBAFF interlaced, but the decoder reckons it's progressive. I'm doing this via a modification to GStreamer gst-omx, but I guess that shouldn't make much difference?

Should the above work, or do I have this all wrong?

Thanks,

John.

jsadler
Posts: 9
Joined: Thu Dec 03, 2015 12:09 pm

Re: video_decode interlace detection

Fri Dec 04, 2015 12:00 am

Sorry, this looks like a false alarm. I realised I was doing the check too early. Detection seems to be working better now.

Having a few difficulties actually making deinterlacing work properly so far, but that's another story.

One thing that is perhaps worth noting though, is that, as a reference, I tried that test stream (above) on omxplayer, and although it correctly detected the interlace, it failed to render any frames until I forcibly disabled deinterlacing on the command-line. Perhaps there is a bug there?

Return to “OpenMAX”