Android:Android 4.0.4中的Stagefright H.264逐帧解码

Android:Android 4.0.4中的Stagefright H.264逐帧解码,android,h.264,stagefright,Android,H.264,Stagefright,我问这个问题是关于我之前的问题。 由于我无法解决Motorola xoom设备中mp4文件最后一帧的所有权问题,我想尝试一种逐帧解码版本,在这种版本中,我可以在某种程度上控制解码器的输入,并知道它到达流的末尾。 为此,我编写了一个派生mediasource的类,并重写了read函数。 当我实现它时,同样在Karbonn A9+设备中,它工作得有些好。但在摩托罗拉xoom中,解码器似乎花费了太多的时间用于所有分辨率,并且在每3-4帧之后,读取返回并伴随以下错误 09-06 11:49:47.663

我问这个问题是关于我之前的问题。
由于我无法解决Motorola xoom设备中mp4文件最后一帧的所有权问题,我想尝试一种逐帧解码版本,在这种版本中,我可以在某种程度上控制解码器的输入,并知道它到达流的末尾。
为此,我编写了一个派生mediasource的类,并重写了read函数。
当我实现它时,同样在Karbonn A9+设备中,它工作得有些好。但在摩托罗拉xoom中,解码器似乎花费了太多的时间用于所有分辨率,并且在每3-4帧之后,读取返回并伴随以下错误

09-06 11:49:47.663: E/OMXCodec(1281): [OMX.Nvidia.h264.decode] 
Timed out waiting for output buffers: 0/1
一帧需要3秒,否则大约需要1.8秒。
我在karbonn设备中也很少遇到同样的问题

下面是我设置元数据的代码

err = calc_avcc_from_file(video_file, length_file, avcc);
len_avcc = sps_size + pps_size + 11;

//err = parseAVCCodecSpecificData(avcc, (size_t)len_avcc);
LOGP("avcc size = %d and error of parseAVCCodecSpecificData  %d", len_avcc, err);
meta_data->setData(kKeyAVCC, kTypeAVCC, avcc, (size_t)len_avcc);
meta_data->setCString(kKeyMIMEType, MEDIA_MIMETYPE_VIDEO_AVC);
meta_data->setInt32(kKeyWidth, mDisplayWidth);
meta_data->setInt32(kKeyHeight, mDisplayHeight);
meta_data->setInt32(kKeyFrameRate, 29);
meta_data->setInt32(kKeyBitRate, 15000);
meta_data->setInt32(kKeyStride, mDisplayWidth);
meta_data->setInt32(kKeySliceHeight, mDisplayHeight);
事实上,一开始我没有通过avcc,同样的问题也存在。然后,我想通过创建以下内容来通过它,但没有发现任何改进

int custom_decoder::calc_avcc(char *enc_strm, int enc_param_len, void *avcc) 
{
   int err = OFI_VC_ERR_SUCCESS;
   char *temp = (char *)avcc;
   LOGP("calculating avcc");

   err = calc_sps_pps_size (enc_strm, enc_param_len);

   *temp++ = 1;
   *temp++ = 66;
   *temp++ = 66;
   *temp++ = 1;
   *temp++ = 3;
   *temp++ = 1;
   *temp++ = 0;
   *temp++ = sps_size;
   memcpy(temp, sps_data, sps_size);
   temp += sps_size;
   *temp++ = 1;
   *temp++ = 0;
   *temp++ = pps_size;
   memcpy(temp, pps_data, pps_size);

   return err;
}
我错过了什么或出了什么问题……

任何帮助都将不胜感激……

有人能帮忙吗????