02-18-2013 04:27 AM
Hi There, Just wanted to see if anybody had any ideas on how to deal with a problem i'm having with video decoding. My app decodes every frame of a 1280 * 720 video through ffmpeg, and sends the YUV data into OpenGL shaders to convert to RGBA as well as to perform some other image processing. On the iPhone 4S, 5, and Samsung S3 this works fine, and gets decent results (16+ frames per second) but on blackberry z10 we're looking at around 6-7, so basically unplayable.
-using ffmpeg, this is avoided on other devices with native support for decoding videos
-splitting up the YUV data into 2 seperate buffers before sending into openGL (as TexImage2D, and TexSubImage2D respectively)
-OpenGL rendering (find this hard to believe as the GPU isnt under any other stress at the time of the decoding)
Finding it hard to pinpoint the most costly area of processing but if you take out any rendering (including the seperation of the raw data buffer) it reaches as high as 24 frames a second on full pelt. Anyone have any ideas on how to save some time with this?