I'm using a mixure of DirectShow Filters and UMC H264Enc+MP4Muxer to get MP4/H264 file. Is it possible to initialize H264Enc and/or MP4Muxer in a way so that they could know that incoming images (from DS Filter) are bottom-up images (and not top-down)? Currently produced MP4 file are played upside down... Or should I do line by line copying to turn my bottom-up images into top-down ones before passing them into H264Enc/MP4Muxer?
Have written a DX decoder using IPP H264 decoder library functions. When I select any YUV format in VideoData.Init() everything is fine but when i select any RGB format the image ends up inverted (in part because - as near as I can tell - YUV formats are inherently top down and RGB formats are inherently bottom up). I tried passing negative height to init but that does not work. Is there a 'right' way to handle this ? Or is this perhaps a bug in the IPP library?Yes, I was ableto manually invert the image myself via that mirror function but thats pretty inefficient - it seems to me there should be a way to tell the decoder library to do this when it writes the decoded data the first time.
The UMC code does not invert the image. If you want o get the inverted image, you may take a look at the color conversion file: umc_color_space_conversion.cpp.
IPP color conversion function can take the negative steps. You can change code on YUV to RGB conversion, and use negative steps( e.g ippiYCbCr420ToBGR_8u_P3C3R function).