I have streaming H264 video that I want to create jpeg still images of every X frame. I am using the UMC video decoder example to decode the H.264 video to a "raw" format (I'm using RGB). Once I want to encode one of the frames into a JPEG, I use the UIC library to copy that frame of RBG data into a CIppImage object and then encode it using code based off the uic transcode example.
When I save the jpeg to a file and open it, I see the content correctly but the colors are all wrong (mostly shades of pink and green). I also tried decoding the video frames to RGBA and encode a JPEG from that type, but again the colors are wrong (in this case, the image looks like a negative of the correct colors). I'm not familiar with image and video processing, so I'm having a hard time determing where something is wrong based upon the results I'm seeing. Any suggestions of what could be wrong when I have the content correct, just the colors are not? Is there a better way to accomplish my goal rather than using the method I defined in the first paragraph? Part of my problem is finding a color format that is in common with what the video codec can decode into and what the UIC codec can encode from. The only options that I see are either RGB or RGBA, does the decoded video frames of RGB type align with the format of RGB data when encoding a JPEG?
Another thing I would like to verify (but can't) is if the decoded frames are correct. I was unable to find a program that could open a "raw" frame of just the RGB data. My only guess that the decoded video is correct is that I was able to save the decoded video and then used the umc_video_enc_con sample binary to encode that raw video. When doing that, the newly encoded video looks good, so I'm assuming (perhaps incorrectly?) that the decoded video is in a proper format. Any suggested program that can open this "raw" RGB data format so I can at least verify the decoding is correct and it's just the JPEG encoding is wrong (which I think is the case).