humble-video-noarch/src/main/java/io/humble/video/Decoder.java
public int decodeVideo(MediaPicture output, MediaPacket packet, int byteOffset) {
    return VideoJNI.Decoder_decodeVideo(swigCPtr, this, MediaPicture.getCPtr(output), output, MediaPacket.getCPtr(packet), packet, byteOffset);
  }
public int decodeVideo(MediaPicture output, MediaPacket packet, int byteOffset) {
    return VideoJNI.Decoder_decodeVideo(swigCPtr, this, MediaPicture.getCPtr(output), output, MediaPacket.getCPtr(packet), packet, byteOffset);
  }
Decode this packet into output.<br>
<br>
The caller is responsible for allocating the<br>
MediaPicture object.  This function will potentially<br>
overwrite any data in the frame object, but<br>
you should pass the same MediaPicture into this function<br>
repeatedly until Media.isComplete() is true.<br>
<p><br>
Note on memory for MediaPicture: For a multitude of reasons,<br>
if you created MediaPicture from a buffer, decodeVideo will discard<br>
it and replace it with a buffer that is aligned correctly for different<br>
CPUs and different codecs. If you must have a copy of the image data<br>
in memory managed by you, then pass in a MediaPicture allocated without<br>
a buffer to DecodeVideo, and then copy that into your own media picture.<br>
</p><br>
<br>
@param output The MediaPicture we decode. Caller must check if it is complete on return.<br>
@param packet  The packet we're attempting to decode from.<br>
@param byteOffset Where in the packet payload to start decoding<br>
<br>
@return number of bytes actually processed from the packet, or negative for error