In modules/codec/ffmpeg/encoder.c AVCODEC_MAX_VIDEO_FRAME_SIZE is set to 3MB, however this is not large enough for some complex 1080i content.
If the image is complex enough avcodec_encode_video() will hit 3MB and produce a truncated png snapshot file.
I've increased the limit to 8MB in my build and have been able to find complex enough 1080i scenes to produce upwards of 6MB of png data.
I'm using a debian sarge version, however looking at the latest version it also has 3MB as a limit.
-Dave