if (pkt->packet[i] == NULL) {
pkt->packet[i] = packet;
pkt->consumed_buf[i] = video_buf;
- pkt->is_video[i] = TRUE;
+ pkt->use_ext_buffer[i] = TRUE;
break;
} else {
if (i == MAX_MPACKET_DATA -1) {
LOGW("buffer size get fail");
return STREAMRECORDER_ERROR_INVALID_PARAMETER;
}
+
+ for (i = 0; i < MAX_MPACKET_DATA; i++) {
+ if (pkt->packet[i] == NULL) {
+ pkt->packet[i] = packet;
+ pkt->consumed_buf[i] = buf_data;
+ pkt->use_ext_buffer[i] = FALSE;
+ break;
+ } else {
+ if (i == MAX_MPACKET_DATA - 1)
+ return STREAMRECORDER_ERROR_OUT_OF_MEMORY;
+ }
+ }
ret = mm_streamrecorder_push_stream_buffer(handle->mm_handle, MM_STREAM_TYPE_VIDEO, pts, buf_data, buf_size);
}
} else {
if (pkt->packet[i] == NULL) {
pkt->packet[i] = packet;
pkt->consumed_buf[i] = buf_data;
- pkt->is_video[i] = FALSE;
+ pkt->use_ext_buffer[i] = FALSE;
break;
} else {
if (i == MAX_MPACKET_DATA -1)
for (i = 0; i < MAX_MPACKET_DATA; i++) {
if (pkt->consumed_buf[i] == consume_data) {
consume = pkt->packet[i];
- if (pkt->is_video[i] == TRUE) {
+ if (pkt->use_ext_buffer[i] == TRUE) {
free(pkt->consumed_buf[i]); /* MMVideoBuffer free */
pkt->consumed_buf[i] = NULL;
}