I can send you one, but I think we may be missing the big picture here. Let me describe what is going on:
Summary:
The objective here is to receive a JPG stream (MJPEG) over the network, decode it using the VPU, and display it on a view in Android. Effectively, the user will see a real time video stream within our Android application. We must use a view for Android, not a direct FB write. We also must using an mjpeg stream.
Steps:
1. We receive a JPG over the network. This jpg, if saved to file, will open in any picture viewer.
2. We use the vpu to decode this jpeg. Colorspace goes from jpg->NV12.
3. Since the output buffer of the decoder is NV12, as cannot render this in an Android view
4. The most efficient way to render a frame in Android within Java is: onDraw + canvas.drawBitmap (int[], offset, stride, ....). The format of the int[] must be ARGB, 4 bytes per pixel with an alpha.
5. in order to convert NV12 to ARGB is to use the CSC on the IPU.
6. I set up the input/ouput to go from NV12 -> RGBA.
7. CSC task is ran
8. I take the output of the CSC and pass it back to Java
9. Java takes the int[] and renders it using the functions show in Step 4.
The issue here is the output show in Step 8 has the alpha values set to 0. So when Step 9 renders the frame, it is invisible, since the alpha is 0. NV12 colorspace does not contain alpha values, however ARGB does. So during the conversion process, there must be a default alpha value that is used, since there was no alpha to begin with. I need to figure out this "default" value location. At least I hope there a default alpha value we can setup in some register somewhere.