After receiving data with UMC::DataReader and using UMC::AVISplitter, i will use UIC::BaseDecoder to decode input. Then I will attach a UIC::BaseStreamInput to UIC::Base decoder to store decoded data. At this point;
1-Am i doing right things?
2-How can I transfer the data from UIC::BaseStreamInput to UIC::ImageBuffer? I couldn't see any method on UIC::ImageBuffer Class to initialize method except constructor. Attach method can be useful but it takes a UIC::ImageDataPointer, UIC::ImageDataOrder and UIC::ImageSamplingGeometry as parameters. Transferring data from BaseStreamInput to ImageBuffer came to me complicated. Is there another way to do this or this is the only way?
Thanks in advance...
I think in general you are doing in right way. You can use UMC splitter to extract compressed JPEG data (on frame by frame basis) from AVI Motion JPEG container. Then, having JPEG compressed data in memory buffer you can use UIC JPEG decoder to decode these data. From UIC point of view, you need to create CMemBuffInput object and attach compressed JPEG data to it. Then you need to initialize UIC JPEG decoder, attach CMemBuffInput object to it, and you can read JPEG header. Based on info you get from JPEG header (image parameters) you can allocate output buffer and call UIC decoder's ReadData method.