I am developing a hardware video accelerator for Android to decode an H264 stream stream in real time. After a little research, it seems to me that I need my hands to be dirty to do this. I used a few key words, such as OMXCodec, Android OS stagefrightand ffmpeg stagefright, MediaCodecthe API, GStreamer. I also found out about this - there is no way for a hardware agnostic implementation to support all of the vendor's hardware. At this stage, all this confuses me too much, since I did not find direct resources to go forward on any of them. My requirements are
- Hardware video accelerator for Android
- Support at least for Qualcomm Snapdragon, Samsung Exynos and Tegra
- The implementation should be at the C / C ++ level (and not at the Java level).
- Support for Android 4.1.x Jellybean will be sufficient
- You do not need to implement the later steps, such as rendering, as they already work. You just need to decode the input buffer and create a decoded output buffer to go to the existing pipeline.
I tried to get some hints from the code of the Android stagefright command line executable AwesomePlayer.cpp, SimplePlayer.cpp and ffmpeg stagefright. But nothing makes any sense to me to choose and use any of these materials.
How can i approach? Are there any useful resources to get a clear intuition?
Thanks in advance!