#define __TIZEN_MEDIA_CODEC_PORT_GST_H__
#include <unistd.h>
-#include <tizen.h>
#include <media_codec.h>
#include <media_codec_private.h>
#include <media_codec_port.h>
#include <media_codec_bitstream.h>
-#include <tbm_type.h>
#include <tbm_surface.h>
-#include <tbm_bufmgr.h>
#include <tbm_surface_internal.h>
#include <gst/video/video-format.h>
+#include <gst/allocators/gsttizenmemory.h>
#ifdef __cplusplus
extern "C" {
#define GST_INIT_STRUCTURE(param) \
memset(&(param), 0, sizeof(param));
-#define MEDIACODEC_ELEMENT_SET_STATE(x_element, x_state) \
- do { \
- LOGD("setting state [%s:%d] to [%s]\n", #x_state, x_state, GST_ELEMENT_NAME(x_element)); \
- if (GST_STATE_CHANGE_FAILURE == gst_element_set_state(x_element, x_state)) { \
- LOGE("failed to set state %s to %s\n", #x_state, GST_ELEMENT_NAME(x_element)); \
- goto STATE_CHANGE_FAILED; \
- } \
- } while (0)
#define SCMN_IMGB_MAX_PLANE 4
#define TBM_API_CHANGE
guint prepare_count;
guint num_live_buffers;
guint etb_count;
+ gint64 offset;
mediacodec_codec_type_e codec_id;
media_format_mimetype_e out_mime;
media_format_h output_fmt;
mc_gst_port_t *ports[2];
mc_bitstream_t bits;
+ mc_codec_type_t *codec_type;
mc_aqueue_t *available_queue;
GQueue *output_queue;
GstBuffer *codec_data;
- GstCaps* (*mc_caps_new)(mc_gst_core_t *, mediacodec_codec_type_e, gint);
+ gboolean (*mc_caps_new)(mc_gst_core_t *, mediacodec_codec_type_e, gint);
+ GstAllocator *allocator;
void* user_cb[_MEDIACODEC_EVENT_TYPE_NUM];
void* user_data[_MEDIACODEC_EVENT_TYPE_NUM];
+
+ GstVideoInfo *video_info;
+
+ mc_extra_converter_t *extra_converter;
};
struct _GstMCBuffer {
};
enum { fill_inbuf, fill_outbuf };
-
-int __mc_fill_input_buffer(mc_gst_core_t *core, media_packet_h packet, GstMCBuffer *mcbuffer);
-int __mc_fill_output_buffer(mc_gst_core_t *core, void *data, int size, GstMCBuffer *mcbuffer);
-
-int __mc_fill_input_buffer_with_packet(mc_gst_core_t *core, media_packet_h packet, GstMCBuffer *mcbuffer);
-int __mc_fill_input_buffer_with_adec_packet(mc_gst_core_t *core, media_packet_h packet, GstMCBuffer *mcbuffer);
-int __mc_fill_input_buffer_with_venc_packet(mc_gst_core_t *core, media_packet_h packet, GstMCBuffer *mcbuffer);
-
-int __mc_fill_packet_with_output_buffer(mc_gst_core_t *core, void *data, int size, GstMCBuffer *mcbuffer);
-int __mc_fill_aenc_packet_with_output_buffer(mc_gst_core_t *core, void *data, int size, GstMCBuffer *mcbuffer);
-int __mc_fill_venc_packet_with_output_buffer(mc_gst_core_t *core, void *data, int size, GstMCBuffer *mcbuffer);
-int __mc_fill_vdec_packet_with_output_buffer(mc_gst_core_t *core, void *data, int size, GstMCBuffer *mcbuffer);
-
-mc_gst_core_t *mc_gst_core_new();
-void mc_gst_core_free(mc_gst_core_t *core);
-
-mc_gst_port_t *mc_gst_port_new(mc_gst_core_t *core);
-void mc_gst_port_free(mc_gst_port_t *port);
-
mc_ret_e mc_gst_prepare(mc_handle_t *mc_handle);
mc_ret_e mc_gst_unprepare(mc_handle_t *mc_handle);
-mc_ret_e mc_gst_process_input(mc_handle_t *mc_handle, media_packet_h inbuf, uint64_t timeOutUs);
-mc_ret_e mc_gst_get_output(mc_handle_t *mc_handle, media_packet_h *outbuf, uint64_t timeOutUs);
+mc_ret_e mc_gst_process_input(mc_handle_t *mc_handle, media_packet_h inbuf, uint64_t timeout_us);
+mc_ret_e mc_gst_get_output(mc_handle_t *mc_handle, media_packet_h *outbuf, uint64_t timeout_us);
mc_ret_e mc_gst_flush_buffers(mc_handle_t *mc_handle);
mc_ret_e mc_gst_get_packet_pool(mc_handle_t *mc_handle, media_packet_pool_h *packet_pool);
+mc_ret_e mc_gst_set_property_array_int(GstElement *element, const gchar *property_name, gint *array, guint array_length);
+
#ifdef __cplusplus
}
#endif