From: Kitae Kim Date: Mon, 16 Sep 2013 06:08:00 +0000 (+0900) Subject: source clean-up and read the result of decoding audio. X-Git-Tag: accepted/tizen/common/20150529.082331~46^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fbfb86a2d4cbfb049d3aa0bd4b7a909ae49c3e91;p=platform%2Fadaptation%2Femulator%2Fgst-plugins-emulator.git source clean-up and read the result of decoding audio. Those sample_rate, channels and etc. values are required to negotiate with caps. Change-Id: I21780bf4c9303f239b48ea8de6b465f0d48f2013 Signed-off-by: Kitae Kim --- diff --git a/src/gstmaru.c b/src/gstmaru.c index 0407765..32c80a1 100644 --- a/src/gstmaru.c +++ b/src/gstmaru.c @@ -39,16 +39,16 @@ GST_DEBUG_CATEGORY (maru_debug); -#define GST_TYPE_EMULDEC \ +#define GST_TYPE_MARUDEC \ (gst_maru_dec_get_type()) -#define GST_EMULDEC(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_EMULDEC,GstEmulDec)) -#define GST_EMULDEC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_EMULDEC,GstEmulDecClass)) -#define GST_IS_EMULDEC(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_EMULDEC)) -#define GST_IS_EMULDEC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_EMULDEC)) +#define GST_MARUDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MARUDEC,GstMaruDec)) +#define GST_MARUDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MARUDEC,GstMaruDecClass)) +#define GST_IS_MARUDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MARUDEC)) +#define GST_IS_MARUDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MARUDEC)) gboolean gst_marudec_register (GstPlugin *plugin, GList *element); gboolean gst_maruenc_register (GstPlugin *plugin, GList *element); diff --git a/src/gstmarudec.c b/src/gstmarudec.c index 70bd6b6..026fa39 100644 --- a/src/gstmarudec.c +++ b/src/gstmarudec.c @@ -49,7 +49,7 @@ static const GstTSInfo ts_info_none = { -1, -1, -1, -1 }; #define MAX_TS_MASK 0xff -typedef struct _GstEmulDec +typedef struct _GstMaruDec { GstElement element; @@ -103,23 +103,23 @@ typedef struct _GstEmulDec /* reverse playback queue */ GList *queued; -} GstEmulDec; +} GstMaruDec; -typedef struct _GstEmulDecClass +typedef struct _GstMaruDecClass { GstElementClass parent_class; CodecElement *codec; GstPadTemplate *sinktempl; GstPadTemplate *srctempl; -} GstEmulDecClass; +} GstMaruDecClass; static GstElementClass *parent_class = NULL; -static void gst_marudec_base_init (GstEmulDecClass *klass); -static void gst_marudec_class_init (GstEmulDecClass *klass); -static void gst_marudec_init (GstEmulDec *marudec); +static void gst_marudec_base_init (GstMaruDecClass *klass); +static void gst_marudec_class_init (GstMaruDecClass *klass); +static void gst_marudec_init (GstMaruDec *marudec); static void gst_marudec_finalize (GObject *object); static gboolean gst_marudec_setcaps (GstPad *pad, GstCaps *caps); @@ -133,18 +133,18 @@ static gboolean gst_marudec_src_event (GstPad *pad, GstEvent *event); static GstStateChangeReturn gst_marudec_change_state (GstElement *element, GstStateChange transition); -static gboolean gst_marudec_negotiate (GstEmulDec *dec, gboolean force); +static gboolean gst_marudec_negotiate (GstMaruDec *dec, gboolean force); -static gint gst_marudec_frame (GstEmulDec *marudec, guint8 *data, +static gint gst_marudec_frame (GstMaruDec *marudec, guint8 *data, guint size, gint *got_data, const GstTSInfo *dec_info, gint64 in_offset, GstFlowReturn *ret); -static gboolean gst_marudec_open (GstEmulDec *marudec); -static int gst_marudec_close (GstEmulDec *marudec); +static gboolean gst_marudec_open (GstMaruDec *marudec); +static int gst_marudec_close (GstMaruDec *marudec); static const GstTSInfo * -gst_ts_info_store (GstEmulDec *dec, GstClockTime timestamp, +gst_ts_info_store (GstMaruDec *dec, GstClockTime timestamp, GstClockTime duration, gint64 offset) { gint idx = dec->ts_idx; @@ -158,7 +158,7 @@ gst_ts_info_store (GstEmulDec *dec, GstClockTime timestamp, } static const GstTSInfo * -gst_ts_info_get (GstEmulDec *dec, gint idx) +gst_ts_info_get (GstMaruDec *dec, gint idx) { if (G_UNLIKELY (idx < 0 || idx > MAX_TS_MASK)) return GST_TS_INFO_NONE; @@ -167,13 +167,13 @@ gst_ts_info_get (GstEmulDec *dec, gint idx) } static void -gst_marudec_reset_ts (GstEmulDec *marudec) +gst_marudec_reset_ts (GstMaruDec *marudec) { marudec->next_out = GST_CLOCK_TIME_NONE; } static void -gst_marudec_update_qos (GstEmulDec *marudec, gdouble proportion, +gst_marudec_update_qos (GstMaruDec *marudec, gdouble proportion, GstClockTime timestamp) { GST_LOG_OBJECT (marudec, "update QOS: %f, %" GST_TIME_FORMAT, @@ -186,7 +186,7 @@ gst_marudec_update_qos (GstEmulDec *marudec, gdouble proportion, } static void -gst_marudec_reset_qos (GstEmulDec *marudec) +gst_marudec_reset_qos (GstMaruDec *marudec) { gst_marudec_update_qos (marudec, 0.5, GST_CLOCK_TIME_NONE); marudec->processed = 0; @@ -194,7 +194,7 @@ gst_marudec_reset_qos (GstEmulDec *marudec) } static gboolean -gst_marudec_do_qos (GstEmulDec *marudec, GstClockTime timestamp, +gst_marudec_do_qos (GstMaruDec *marudec, GstClockTime timestamp, gboolean *mode_switch) { GstClockTimeDiff diff; @@ -258,7 +258,7 @@ gst_marudec_do_qos (GstEmulDec *marudec, GstClockTime timestamp, } static void -clear_queued (GstEmulDec *marudec) +clear_queued (GstMaruDec *marudec) { g_list_foreach (marudec->queued, (GFunc) gst_mini_object_unref, NULL); g_list_free (marudec->queued); @@ -266,7 +266,7 @@ clear_queued (GstEmulDec *marudec) } static GstFlowReturn -flush_queued (GstEmulDec *marudec) +flush_queued (GstMaruDec *marudec) { GstFlowReturn res = GST_FLOW_OK; @@ -292,11 +292,11 @@ flush_queued (GstEmulDec *marudec) } static void -gst_marudec_drain (GstEmulDec *marudec) +gst_marudec_drain (GstMaruDec *marudec) { - GstEmulDecClass *oclass; + GstMaruDecClass *oclass; - oclass = (GstEmulDecClass *) (G_OBJECT_GET_CLASS (marudec)); + oclass = (GstMaruDecClass *) (G_OBJECT_GET_CLASS (marudec)); // TODO: drain #if 1 @@ -326,7 +326,7 @@ gst_marudec_drain (GstEmulDec *marudec) * Implementation */ static void -gst_marudec_base_init (GstEmulDecClass *klass) +gst_marudec_base_init (GstMaruDecClass *klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstCaps *sinkcaps = NULL, *srccaps = NULL; @@ -389,7 +389,7 @@ gst_marudec_base_init (GstEmulDecClass *klass) } static void -gst_marudec_class_init (GstEmulDecClass *klass) +gst_marudec_class_init (GstMaruDecClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); @@ -406,11 +406,11 @@ gst_marudec_class_init (GstEmulDecClass *klass) } static void -gst_marudec_init (GstEmulDec *marudec) +gst_marudec_init (GstMaruDec *marudec) { - GstEmulDecClass *oclass; + GstMaruDecClass *oclass; - oclass = (GstEmulDecClass*) (G_OBJECT_GET_CLASS(marudec)); + oclass = (GstMaruDecClass*) (G_OBJECT_GET_CLASS(marudec)); marudec->sinkpad = gst_pad_new_from_template (oclass->sinktempl, "sink"); gst_pad_set_setcaps_function (marudec->sinkpad, @@ -449,7 +449,7 @@ gst_marudec_init (GstEmulDec *marudec) static void gst_marudec_finalize (GObject *object) { - GstEmulDec *marudec = (GstEmulDec *) object; + GstMaruDec *marudec = (GstMaruDec *) object; if (marudec->context) { g_free (marudec->context); @@ -462,10 +462,10 @@ gst_marudec_finalize (GObject *object) static gboolean gst_marudec_src_event (GstPad *pad, GstEvent *event) { - GstEmulDec *marudec; + GstMaruDec *marudec; gboolean res; - marudec = (GstEmulDec *) gst_pad_get_parent (pad); + marudec = (GstMaruDec *) gst_pad_get_parent (pad); switch (GST_EVENT_TYPE (event)) { /* Quality Of Service (QOS) event contains a report @@ -497,10 +497,10 @@ gst_marudec_src_event (GstPad *pad, GstEvent *event) static gboolean gst_marudec_sink_event (GstPad *pad, GstEvent *event) { - GstEmulDec *marudec; + GstMaruDec *marudec; gboolean ret = FALSE; - marudec = (GstEmulDec *) gst_pad_get_parent (pad); + marudec = (GstMaruDec *) gst_pad_get_parent (pad); GST_DEBUG_OBJECT (marudec, "Handling %s event", GST_EVENT_TYPE_NAME (event)); @@ -608,8 +608,8 @@ gst_marudec_sink_event (GstPad *pad, GstEvent *event) static gboolean gst_marudec_setcaps (GstPad *pad, GstCaps *caps) { - GstEmulDec *marudec; - GstEmulDecClass *oclass; + GstMaruDec *marudec; + GstMaruDecClass *oclass; GstStructure *structure; const GValue *par; const GValue *fps; @@ -617,8 +617,8 @@ gst_marudec_setcaps (GstPad *pad, GstCaps *caps) GST_DEBUG_OBJECT (pad, "setcaps called."); - marudec = (GstEmulDec *) (gst_pad_get_parent (pad)); - oclass = (GstEmulDecClass *) (G_OBJECT_GET_CLASS (marudec)); + marudec = (GstMaruDec *) (gst_pad_get_parent (pad)); + oclass = (GstMaruDecClass *) (G_OBJECT_GET_CLASS (marudec)); GST_OBJECT_LOCK (marudec); @@ -715,11 +715,11 @@ gst_marudec_setcaps (GstPad *pad, GstCaps *caps) } static gboolean -gst_marudec_open (GstEmulDec *marudec) +gst_marudec_open (GstMaruDec *marudec) { - GstEmulDecClass *oclass; + GstMaruDecClass *oclass; - oclass = (GstEmulDecClass *) (G_OBJECT_GET_CLASS (marudec)); + oclass = (GstMaruDecClass *) (G_OBJECT_GET_CLASS (marudec)); if (!marudec->dev) { return FALSE; @@ -763,7 +763,7 @@ gst_marudec_open (GstEmulDec *marudec) } static int -gst_marudec_close (GstEmulDec *marudec) +gst_marudec_close (GstMaruDec *marudec) { int ret = 0; @@ -788,12 +788,12 @@ gst_marudec_close (GstEmulDec *marudec) static gboolean -gst_marudec_negotiate (GstEmulDec *marudec, gboolean force) +gst_marudec_negotiate (GstMaruDec *marudec, gboolean force) { - GstEmulDecClass *oclass; + GstMaruDecClass *oclass; GstCaps *caps; - oclass = (GstEmulDecClass *) (G_OBJECT_GET_CLASS (marudec)); + oclass = (GstMaruDecClass *) (G_OBJECT_GET_CLASS (marudec)); switch (oclass->codec->media_type) { case AVMEDIA_TYPE_VIDEO: @@ -912,7 +912,7 @@ new_aligned_buffer (gint size, GstCaps *caps) } static GstFlowReturn -get_output_buffer (GstEmulDec *marudec, GstBuffer **outbuf) +get_output_buffer (GstMaruDec *marudec, GstBuffer **outbuf) { gint pict_size; GstFlowReturn ret; @@ -972,7 +972,7 @@ get_output_buffer (GstEmulDec *marudec, GstBuffer **outbuf) } static gboolean -clip_video_buffer (GstEmulDec *dec, GstBuffer *buf, +clip_video_buffer (GstMaruDec *dec, GstBuffer *buf, GstClockTime in_ts, GstClockTime in_dur) { gboolean res = TRUE; @@ -981,7 +981,7 @@ clip_video_buffer (GstEmulDec *dec, GstBuffer *buf, } static gboolean -clip_audio_buffer (GstEmulDec *dec, GstBuffer *buf, +clip_audio_buffer (GstMaruDec *dec, GstBuffer *buf, GstClockTime in_ts, GstClockTime in_dur) { GstClockTime stop; @@ -1042,7 +1042,7 @@ clip_audio_buffer (GstEmulDec *dec, GstBuffer *buf, } static gint -gst_marudec_video_frame (GstEmulDec *marudec, guint8 *data, guint size, +gst_marudec_video_frame (GstMaruDec *marudec, guint8 *data, guint size, const GstTSInfo *dec_info, gint64 in_offset, GstBuffer **outbuf, GstFlowReturn *ret) { @@ -1200,7 +1200,7 @@ gst_marudec_video_frame (GstEmulDec *marudec, guint8 *data, guint size, } static gint -gst_marudec_audio_frame (GstEmulDec *marudec, CodecElement *codec, +gst_marudec_audio_frame (GstMaruDec *marudec, CodecElement *codec, guint8 *data, guint size, const GstTSInfo *dec_info, GstBuffer **outbuf, GstFlowReturn *ret) @@ -1288,10 +1288,10 @@ gst_marudec_audio_frame (GstEmulDec *marudec, CodecElement *codec, } static gint -gst_marudec_frame (GstEmulDec *marudec, guint8 *data, guint size, +gst_marudec_frame (GstMaruDec *marudec, guint8 *data, guint size, gint *got_data, const GstTSInfo *dec_info, gint64 in_offset, GstFlowReturn *ret) { - GstEmulDecClass *oclass; + GstMaruDecClass *oclass; GstBuffer *outbuf = NULL; gint have_data = 0, len = 0; @@ -1301,7 +1301,7 @@ gst_marudec_frame (GstEmulDec *marudec, guint8 *data, guint size, } *ret = GST_FLOW_OK; - oclass = (GstEmulDecClass *) (G_OBJECT_GET_CLASS (marudec)); + oclass = (GstMaruDecClass *) (G_OBJECT_GET_CLASS (marudec)); switch (oclass->codec->media_type) { case AVMEDIA_TYPE_VIDEO: @@ -1375,8 +1375,8 @@ gst_marudec_frame (GstEmulDec *marudec, guint8 *data, guint size, static GstFlowReturn gst_marudec_chain (GstPad *pad, GstBuffer *buffer) { - GstEmulDec *marudec; - GstEmulDecClass *oclass; + GstMaruDec *marudec; + GstMaruDecClass *oclass; guint8 *in_buf; gint in_size, len, have_data; GstFlowReturn ret = GST_FLOW_OK; @@ -1387,11 +1387,11 @@ gst_marudec_chain (GstPad *pad, GstBuffer *buffer) const GstTSInfo *in_info; const GstTSInfo *dec_info; - marudec = (GstEmulDec *) (GST_PAD_PARENT (pad)); + marudec = (GstMaruDec *) (GST_PAD_PARENT (pad)); if (G_UNLIKELY (!marudec->opened)) { // not_negotiated - oclass = (GstEmulDecClass *) (G_OBJECT_GET_CLASS (marudec)); + oclass = (GstMaruDecClass *) (G_OBJECT_GET_CLASS (marudec)); GST_ELEMENT_ERROR (marudec, CORE, NEGOTIATION, (NULL), ("maru_%sdec: input format was not set before data start", oclass->codec->name)); @@ -1412,7 +1412,7 @@ gst_marudec_chain (GstPad *pad, GstBuffer *buffer) } // marudec->clear_ts = TRUE; - oclass = (GstEmulDecClass *) (G_OBJECT_GET_CLASS (marudec)); + oclass = (GstMaruDecClass *) (G_OBJECT_GET_CLASS (marudec)); #if 0 if (G_UNLIKELY (marudec->waiting_for_key)) { if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT) && @@ -1493,7 +1493,7 @@ gst_marudec_chain (GstPad *pad, GstBuffer *buffer) static GstStateChangeReturn gst_marudec_change_state (GstElement *element, GstStateChange transition) { - GstEmulDec *marudec = (GstEmulDec *) element; + GstMaruDec *marudec = (GstMaruDec *) element; GstStateChangeReturn ret; ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); @@ -1518,20 +1518,20 @@ gboolean gst_marudec_register (GstPlugin *plugin, GList *element) { GTypeInfo typeinfo = { - sizeof (GstEmulDecClass), + sizeof (GstMaruDecClass), (GBaseInitFunc) gst_marudec_base_init, NULL, (GClassInitFunc) gst_marudec_class_init, NULL, NULL, - sizeof (GstEmulDec), + sizeof (GstMaruDec), 0, (GInstanceInitFunc) gst_marudec_init, }; GType type; gchar *type_name; - gint rank = GST_RANK_PRIMARY; + gint rank = GST_RANK_NONE; GList *elem = element; CodecElement *codec = NULL; diff --git a/src/gstmaruenc.c b/src/gstmaruenc.c index 1af5a9f..8ce4fff 100644 --- a/src/gstmaruenc.c +++ b/src/gstmaruenc.c @@ -35,7 +35,7 @@ #define GST_MARUENC_PARAMS_QDATA g_quark_from_static_string("maruenc-params") -typedef struct _GstEmulEnc +typedef struct _GstMaruEnc { GstElement element; @@ -60,9 +60,9 @@ typedef struct _GstEmulEnc GQueue *delay; -} GstEmulEnc; +} GstMaruEnc; -typedef struct _GstEmulEncClass +typedef struct _GstMaruEncClass { GstElementClass parent_class; @@ -70,19 +70,19 @@ typedef struct _GstEmulEncClass GstPadTemplate *sinktempl; GstPadTemplate *srctempl; GstCaps *sinkcaps; -} GstEmulEncClass; +} GstMaruEncClass; static GstElementClass *parent_class = NULL; -static void gst_maruenc_base_init (GstEmulEncClass *klass); -static void gst_maruenc_class_init (GstEmulEncClass *klass); -static void gst_maruenc_init (GstEmulEnc *maruenc); +static void gst_maruenc_base_init (GstMaruEncClass *klass); +static void gst_maruenc_class_init (GstMaruEncClass *klass); +static void gst_maruenc_init (GstMaruEnc *maruenc); static void gst_maruenc_finalize (GObject *object); static gboolean gst_maruenc_setcaps (GstPad *pad, GstCaps *caps); static GstCaps *gst_maruenc_getcaps (GstPad *pad); -static GstCaps *gst_maruenc_get_possible_sizes (GstEmulEnc *maruenc, +static GstCaps *gst_maruenc_get_possible_sizes (GstMaruEnc *maruenc, GstPad *pad, const GstCaps *caps); static GstFlowReturn gst_maruenc_chain_video (GstPad *pad, GstBuffer *buffer); @@ -104,7 +104,7 @@ GstStateChangeReturn gst_maruenc_change_state (GstElement *element, GstStateChan * Implementation */ static void -gst_maruenc_base_init (GstEmulEncClass *klass) +gst_maruenc_base_init (GstMaruEncClass *klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstPadTemplate *sinktempl = NULL, *srctempl = NULL; @@ -169,7 +169,7 @@ gst_maruenc_base_init (GstEmulEncClass *klass) } static void -gst_maruenc_class_init (GstEmulEncClass *klass) +gst_maruenc_class_init (GstMaruEncClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); @@ -187,10 +187,10 @@ gst_maruenc_class_init (GstEmulEncClass *klass) } static void -gst_maruenc_init (GstEmulEnc *maruenc) +gst_maruenc_init (GstMaruEnc *maruenc) { - GstEmulEncClass *oclass; - oclass = (GstEmulEncClass*) (G_OBJECT_GET_CLASS(maruenc)); + GstMaruEncClass *oclass; + oclass = (GstMaruEncClass*) (G_OBJECT_GET_CLASS(maruenc)); maruenc->sinkpad = gst_pad_new_from_template (oclass->sinktempl, "sink"); gst_pad_set_setcaps_function (maruenc->sinkpad, @@ -245,7 +245,7 @@ static void gst_maruenc_finalize (GObject *object) { // Deinit Decoder - GstEmulEnc *maruenc = (GstEmulEnc *) object; + GstMaruEnc *maruenc = (GstMaruEnc *) object; if (maruenc->opened) { gst_maru_avcodec_close (maruenc->context, maruenc->dev); @@ -268,7 +268,7 @@ gst_maruenc_finalize (GObject *object) } static GstCaps * -gst_maruenc_get_possible_sizes (GstEmulEnc *maruenc, GstPad *pad, +gst_maruenc_get_possible_sizes (GstMaruEnc *maruenc, GstPad *pad, const GstCaps *caps) { GstCaps *othercaps = NULL; @@ -336,9 +336,9 @@ gst_maruenc_get_possible_sizes (GstEmulEnc *maruenc, GstPad *pad, static GstCaps * gst_maruenc_getcaps (GstPad *pad) { - GstEmulEnc *maruenc = (GstEmulEnc *) GST_PAD_PARENT (pad); - GstEmulEncClass *oclass = - (GstEmulEncClass *) G_OBJECT_GET_CLASS (maruenc); + GstMaruEnc *maruenc = (GstMaruEnc *) GST_PAD_PARENT (pad); + GstMaruEncClass *oclass = + (GstMaruEncClass *) G_OBJECT_GET_CLASS (maruenc); CodecContext *ctx = NULL; enum PixelFormat pixfmt; GstCaps *caps = NULL; @@ -465,16 +465,16 @@ gst_maruenc_getcaps (GstPad *pad) static gboolean gst_maruenc_setcaps (GstPad *pad, GstCaps *caps) { - GstEmulEnc *maruenc; - GstEmulEncClass *oclass; + GstMaruEnc *maruenc; + GstMaruEncClass *oclass; GstCaps *other_caps; GstCaps *allowed_caps; GstCaps *icaps; enum PixelFormat pix_fmt; int32_t buf_size; - maruenc = (GstEmulEnc *) (gst_pad_get_parent (pad)); - oclass = (GstEmulEncClass *) (G_OBJECT_GET_CLASS (maruenc)); + maruenc = (GstMaruEnc *) (gst_pad_get_parent (pad)); + oclass = (GstMaruEncClass *) (G_OBJECT_GET_CLASS (maruenc)); if (maruenc->opened) { gst_maru_avcodec_close (maruenc->context, maruenc->dev); @@ -623,7 +623,7 @@ gst_maruenc_setcaps (GstPad *pad, GstCaps *caps) } static void -gst_maruenc_setup_working_buf (GstEmulEnc *maruenc) +gst_maruenc_setup_working_buf (GstMaruEnc *maruenc) { guint wanted_size = maruenc->context->video.width * maruenc->context->video.height * 6 + @@ -643,7 +643,7 @@ gst_maruenc_setup_working_buf (GstEmulEnc *maruenc) GstFlowReturn gst_maruenc_chain_video (GstPad *pad, GstBuffer *buffer) { - GstEmulEnc *maruenc = (GstEmulEnc *) (GST_PAD_PARENT (pad)); + GstMaruEnc *maruenc = (GstMaruEnc *) (GST_PAD_PARENT (pad)); GstBuffer *outbuf; gint ret_size = 0, frame_size; @@ -683,8 +683,8 @@ gst_maruenc_chain_video (GstPad *pad, GstBuffer *buffer) maruenc->dev); if (ret_size < 0) { - GstEmulEncClass *oclass = - (GstEmulEncClass *) (G_OBJECT_GET_CLASS (maruenc)); + GstMaruEncClass *oclass = + (GstMaruEncClass *) (G_OBJECT_GET_CLASS (maruenc)); GST_ERROR_OBJECT (maruenc, "maru_%senc: failed to encode buffer", oclass->codec->name); gst_buffer_unref (buffer); @@ -761,7 +761,7 @@ gst_maruenc_chain_video (GstPad *pad, GstBuffer *buffer) } GstFlowReturn -gst_maruenc_encode_audio (GstEmulEnc *maruenc, guint8 *audio_in, +gst_maruenc_encode_audio (GstMaruEnc *maruenc, guint8 *audio_in, guint in_size, guint max_size, GstClockTime timestamp, GstClockTime duration, gboolean discont) { @@ -807,8 +807,8 @@ gst_maruenc_encode_audio (GstEmulEnc *maruenc, guint8 *audio_in, static GstFlowReturn gst_maruenc_chain_audio (GstPad *pad, GstBuffer *buffer) { - GstEmulEnc *maruenc; - GstEmulEncClass *oclass; + GstMaruEnc *maruenc; + GstMaruEncClass *oclass; GstClockTime timestamp, duration; guint in_size, frame_size; gint osize; @@ -818,8 +818,8 @@ gst_maruenc_chain_audio (GstPad *pad, GstBuffer *buffer) guint8 *in_data; CodecContext *ctx; - maruenc = (GstEmulEnc *) (GST_OBJECT_PARENT (pad)); - oclass = (GstEmulEncClass *) G_OBJECT_GET_CLASS (maruenc); + maruenc = (GstMaruEnc *) (GST_OBJECT_PARENT (pad)); + oclass = (GstMaruEncClass *) G_OBJECT_GET_CLASS (maruenc); ctx = maruenc->context; @@ -948,7 +948,7 @@ gst_maruenc_chain_audio (GstPad *pad, GstBuffer *buffer) } static void -gst_maruenc_flush_buffers (GstEmulEnc *maruenc, gboolean send) +gst_maruenc_flush_buffers (GstMaruEnc *maruenc, gboolean send) { GstBuffer *outbuf, *inbuf; gint ret_size = 0; @@ -970,8 +970,8 @@ gst_maruenc_flush_buffers (GstEmulEnc *maruenc, gboolean send) maruenc->dev); if (ret_size < 0) { - GstEmulEncClass *oclass = - (GstEmulEncClass *) (G_OBJECT_GET_CLASS (maruenc)); + GstMaruEncClass *oclass = + (GstMaruEncClass *) (G_OBJECT_GET_CLASS (maruenc)); GST_WARNING_OBJECT (maruenc, "maru_%senc: failed to flush buffer", oclass->codec->name); break; @@ -1015,8 +1015,8 @@ gst_maruenc_flush_buffers (GstEmulEnc *maruenc, gboolean send) static gboolean gst_maruenc_event_video (GstPad *pad, GstEvent *event) { - GstEmulEnc *maruenc; - maruenc = (GstEmulEnc *) gst_pad_get_parent (pad); + GstMaruEnc *maruenc; + maruenc = (GstMaruEnc *) gst_pad_get_parent (pad); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: @@ -1044,7 +1044,7 @@ gst_maruenc_event_video (GstPad *pad, GstEvent *event) static gboolean gst_maruenc_event_src (GstPad *pad, GstEvent *event) { - GstEmulEnc *maruenc = (GstEmulEnc *) (GST_PAD_PARENT (pad)); + GstMaruEnc *maruenc = (GstMaruEnc *) (GST_PAD_PARENT (pad)); gboolean forward = TRUE; switch (GST_EVENT_TYPE (event)) { @@ -1078,7 +1078,7 @@ gst_maruenc_event_src (GstPad *pad, GstEvent *event) GstStateChangeReturn gst_maruenc_change_state (GstElement *element, GstStateChange transition) { - GstEmulEnc *maruenc = (GstEmulEnc*)element; + GstMaruEnc *maruenc = (GstMaruEnc*)element; GstStateChangeReturn ret; switch (transition) { @@ -1120,13 +1120,13 @@ gboolean gst_maruenc_register (GstPlugin *plugin, GList *element) { GTypeInfo typeinfo = { - sizeof (GstEmulEncClass), + sizeof (GstMaruEncClass), (GBaseInitFunc) gst_maruenc_base_init, NULL, (GClassInitFunc) gst_maruenc_class_init, NULL, NULL, - sizeof (GstEmulEnc), + sizeof (GstMaruEnc), 0, (GInstanceInitFunc) gst_maruenc_init, }; diff --git a/src/gstmaruinterface.h b/src/gstmaruinterface.h index 72b4b8a..522bf50 100644 --- a/src/gstmaruinterface.h +++ b/src/gstmaruinterface.h @@ -69,4 +69,4 @@ GstFlowReturn codec_buffer_alloc (GstPad *pad, guint64 offset, guint size, GstCaps *caps, GstBuffer **buf); -#endif /* __GST_EMUL_API_H__ */ +#endif /* __GST_MARU_INTERFACE_H__ */ diff --git a/src/gstmarumem.c b/src/gstmarumem.c index 42df415..e09a862 100644 --- a/src/gstmarumem.c +++ b/src/gstmarumem.c @@ -198,9 +198,15 @@ _codec_decode_audio_meta_from (AudioData *audio, int *frame_size_ptr, CODEC_LOG (DEBUG, "decode_audio. read data from device.\n"); + memcpy (&audio->sample_rate, + device_buf, sizeof(audio->sample_rate)); + size = sizeof(audio->sample_rate); + memcpy (&audio->channels, + device_buf + size, sizeof(audio->channels)); + size += sizeof(audio->channels); memcpy (&audio->channel_layout, - device_buf, sizeof(audio->channel_layout)); - size = sizeof(audio->channel_layout); + device_buf + size, sizeof(audio->channel_layout)); + size += sizeof(audio->channel_layout); memcpy (&len, device_buf + size, sizeof(len)); size += sizeof(len); memcpy (frame_size_ptr, device_buf + size, sizeof(*frame_size_ptr)); diff --git a/src/gstmaruutils.c b/src/gstmaruutils.c index 91d929e..5fb3640 100644 --- a/src/gstmaruutils.c +++ b/src/gstmaruutils.c @@ -204,7 +204,6 @@ gst_maru_codectype_to_audio_caps (CodecContext *ctx, const char *name, if (ctx) { caps = gst_maru_smpfmt_to_caps (ctx->audio.sample_fmt, ctx, name); -#if 1 } else if (codec && codec->sample_fmts[0] != -1){ GstCaps *temp; int i; @@ -217,7 +216,6 @@ gst_maru_codectype_to_audio_caps (CodecContext *ctx, const char *name, gst_caps_append (caps, temp); } } -#endif } else { GstCaps *temp; int i;