diff options
author | SeokHoon Lee <andy.shlee@samsung.com> | 2017-09-14 15:09:39 +0900 |
---|---|---|
committer | SeokHoon Lee <andy.shlee@samsung.com> | 2017-09-15 09:44:18 +0900 |
commit | ecfbca66f6239089edab95f14b03bb0c1020d65a (patch) | |
tree | 2f89f3f408e6e94f73964823777b106f05ec49b6 | |
parent | 4e11d2b688925d3351fb8085e34701e0c7aa62b9 (diff) | |
download | mediastreamrecorder-ecfbca66f6239089edab95f14b03bb0c1020d65a.tar.gz mediastreamrecorder-ecfbca66f6239089edab95f14b03bb0c1020d65a.tar.bz2 mediastreamrecorder-ecfbca66f6239089edab95f14b03bb0c1020d65a.zip |
Add buffer consumed event callback for i420
- add buffer consumed event for i420 packet
- is_video is changed to use_ext_buffer.
Signed-off-by: SeokHoon Lee <andy.shlee@samsung.com>
Change-Id: I672f3f8a7d206d1772ff27a0a921ccdb44795623
-rw-r--r-- | include/streamrecorder_private.h | 2 | ||||
-rw-r--r-- | packaging/capi-media-streamrecorder.spec | 2 | ||||
-rw-r--r-- | src/streamrecorder.c | 18 |
3 files changed, 17 insertions, 5 deletions
diff --git a/include/streamrecorder_private.h b/include/streamrecorder_private.h index 3e1198e..70923d5 100644 --- a/include/streamrecorder_private.h +++ b/include/streamrecorder_private.h @@ -41,7 +41,7 @@ typedef enum { typedef struct { media_packet_h packet[MAX_MPACKET_DATA]; void *consumed_buf[MAX_MPACKET_DATA]; - bool is_video[MAX_MPACKET_DATA]; + bool use_ext_buffer[MAX_MPACKET_DATA]; } streamrecorder_mediapacket; typedef struct { diff --git a/packaging/capi-media-streamrecorder.spec b/packaging/capi-media-streamrecorder.spec index c8207c6..c161700 100644 --- a/packaging/capi-media-streamrecorder.spec +++ b/packaging/capi-media-streamrecorder.spec @@ -1,6 +1,6 @@ Name: capi-media-streamrecorder Summary: A Streamrecorder library in Tizen Native API -Version: 0.0.16 +Version: 0.0.17 Release: 0 Group: Multimedia/Other License: Apache-2.0 diff --git a/src/streamrecorder.c b/src/streamrecorder.c index c7b2803..3d7ab47 100644 --- a/src/streamrecorder.c +++ b/src/streamrecorder.c @@ -159,7 +159,7 @@ int streamrecorder_push_stream_buffer(streamrecorder_h recorder, media_packet_h 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) { @@ -183,6 +183,18 @@ int streamrecorder_push_stream_buffer(streamrecorder_h recorder, media_packet_h 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 { @@ -206,7 +218,7 @@ int streamrecorder_push_stream_buffer(streamrecorder_h recorder, media_packet_h 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) @@ -958,7 +970,7 @@ static int __mm_streamrecorder_msg_cb(int message, void *param, void *user_data) 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; } |