title: How to use hardware accelerated video decoding on Android?
body: <p>I need hardware-accelerated H.264 decoding for a research project, to test a self-defined protocol.</p>
  
  <p>As I have Search on the web, I have found a few ways to perform hardware-accelerated video decoding on Android. </p>
  
  <ol>
  <li>Use <strong>ffmpeg</strong> libstagefright (<a href="http://freepine.blogspot.com/2010/01/overview-of-stagefrighter-player.html" rel="noreferrer">overview of libstagefright</a>) or use libstagefright in the OS directly, like <a href="https://stackoverflow.com/questions/9832503/android-include-native-stagefright-features-in-my-own-project">here</a>.</li>
  <li>Use <strong>OpenMax</strong> on specific hardware platform. like <a href="http://forum.samdroid.net/f53/hw-video-decoding-3195/" rel="noreferrer">here about samsung device</a> and <a href="https://developer.qualcomm.com/blog/under-hood-video-acceleration-hardware" rel="noreferrer">here about Qualcomm Snapdragon series</a></li>
  <li>Some people mentioned <strong>PVplayer</strong>, </li>
  </ol>
  
  <p>Some people <a href="https://stackoverflow.com/questions/9098167/ffmpeg-android-stagefright-sigsegv-error-h264-decode">"say"</a> libstagefright is the only way while Qualcomm guys have made success obviously.</p>
  
  <p><strong>Currently I am not sure which way could work</strong>. I am a little confused now. If all could work, I would certainly prefer a hardware independent method.</p>
  
  <p>As I have tested a few video players of their H/W acceleration with Galaxy Tab 7.7(3.2 &amp; Enxyos), VLC, Mobo, Rock, vplayer, rock and mobo work fine, VLC doesn't work, vplayer seems to have a rendering bug which costs its performance. </p>
  
  <p>Anyway, I did an 'operation' on Rockplayer and deleted all its .so libs in data\data\com.redirecting\rockplayer, and software decoding crashes while hw decoding works still fine! I wonder how they did that.
  It appears to me that hw acceleration could be independent of hardware platforms.</p>
  
  <p>Can someone nail this problem? Or provide any reference with additional information or better details?</p>