I am using the Media SDK (v3.0.554.34012 Beta4) to encode and am running into a few problems. I hope someone here can help me.
When working with interlaced input (480i and 1080i), the input pictures to the encoder will be deinterlaced frame pictures (i.e. 720x480). I would like the encoder to encode full frames but mark them as interlaced rather than progressive. In essence, I am expecting the Progressive Sequence and progressive frame flags (in the MPEG-2 sequence header and picture header) to be unset and the Top Field First flag to be set/unset as appropriate. However, when I set PicStruct to MFX_PICSTRUCT_FIELD_TFF (or BFF), the encoder seems to be encoding the fields as separate pictures. FYI, I am using the sample_encode app with the arguments as follows:
sample_encode mpeg2 -hw -tff -f 29.97 -i "D:\\Mpeg Files\\420_1.yuv" -o "D:\\Mpeg Files\\420_1.enc.mpg" -h 480 -w 720
I could always encode as Progressive and restamp the appropriate bits in the output stream as a post process, but I wanted to make sure there wasn't a way to accomplish this using the SDK.
My other issue might be a bug. In the scenario described above, the GOP header in the output stream only contains correct time codes when encoding interlaced. When PicStruct is MFX_PICSTRUCT_PROGRESSIVE, the GOP header time code appears as 00:00:00:00 in every GOP. Have you seen this behavior?
Thanks again for your help.