gint height;
uint32_t plane_num;
guint8 *planes[2];
+ GstMemory *mem = NULL;
mc_gst_port_def_t *port_def = &core->ports[in_port_index]->port_def;
mcbuffer->buf_size += buf_size;
}
}
- } else {
- GstMemory *mem = NULL;
+ mem = gst_memory_new_wrapped(GST_MEMORY_FLAG_READONLY,
+ planes[0], mcbuffer->buf_size, 0,
+ mcbuffer->buf_size, mcbuffer,
+ (GDestroyNotify)__mc_input_buffer_finalize_cb);
+ } else {
mem = __mc_gst_make_tbm_buffer(core, mcbuffer);
- if (mem == NULL) {
- LOGW("Failed to make tizen memory");
- return MC_ERROR;
- }
+ LOGD("tizen memory[%p]", mem);
+ }
- gst_buffer_append_memory(mcbuffer->buffer, mem);
- LOGD("tizen memory appended");
+ if (mem == NULL) {
+ LOGE("gstmemory failed[is_hw:%d]", core->is_hw);
+ return MC_ERROR;
}
+
+ gst_buffer_append_memory(mcbuffer->buffer, mem);
+
return ret;
}
}
if (is_format_change) {
- int bitrate = core->video ? \
- core->ports[in_port_index]->port_def.info.video.bitrate : \
- core->ports[in_port_index]->port_def.info.audio.bitrate;
GstCaps *caps = core->mc_caps_new(core, core->codec_id, in_port_index);
g_object_set(core->appsrc, "caps", caps, NULL);
LOGD("caps updated");
- g_object_set(core->codec, core->codec_type->property->bitrate_name, bitrate, NULL);
+ if (core->encoder) {
+ int bitrate = core->video ? \
+ core->ports[in_port_index]->port_def.info.video.bitrate : \
+ core->ports[in_port_index]->port_def.info.audio.bitrate;
- LOGI("bitrate[property:%s,v:%d] %d updated",
- core->codec_type->property->bitrate_name, core->video, bitrate);
+ g_object_set(core->codec, core->codec_type->property->bitrate_name, bitrate, NULL);
+
+ LOGI("bitrate[property:%s,v:%d] %d updated",
+ core->codec_type->property->bitrate_name, core->video, bitrate);
+ }
is_format_change = FALSE;
}
gst_bin_add_many(GST_BIN(core->pipeline), core->appsrc, core->capsfilter, core->codec, core->fakesink, NULL);
/* link elements */
- if (!(gst_element_link_many(core->appsrc, core->codec, core->fakesink, NULL))) {
+ if (!(gst_element_link_many(core->appsrc, core->capsfilter, core->codec, core->fakesink, NULL))) {
LOGE("gst_element_link_many is failed");
goto ERROR;
}