Esempio n. 1
0
static gboolean
_goo_ti_post_processor_set_rotation (GooTiPostProcessor* self,
				     GooTiPostProcessorRotation rotation)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);

	gboolean retval = FALSE;
	OMX_CONFIG_ROTATIONTYPE *param = NULL;
	param = g_new0 (OMX_CONFIG_ROTATIONTYPE, 1);
	GOO_INIT_PARAM (param, OMX_CONFIG_ROTATIONTYPE);

	param->nRotation = rotation;

	GOO_OBJECT_INFO (self, "");

	retval = goo_component_set_config_by_index
		(GOO_COMPONENT (self),
		 OMX_IndexConfigCommonRotate, param);

	if (retval == TRUE)
	{
		GooTiPostProcessorPriv* priv =
			GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);
		priv->rotation = rotation;
		GOO_OBJECT_INFO (self, "rotation = %d", param->nRotation);
	}

	g_free (param);

	return retval;

}
Esempio n. 2
0
static gboolean
_goo_ti_post_processor_set_mirror (GooTiPostProcessor* self, gboolean mirror)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);

	GooTiPostProcessorPriv* priv =
		GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);

	gboolean retval = FALSE;
	OMX_CONFIG_MIRRORTYPE *param = NULL;
	param = g_new0 (OMX_CONFIG_MIRRORTYPE, 1);
	GOO_INIT_PARAM (param, OMX_CONFIG_SCALEFACTORTYPE);

	param->eMirror = (mirror == TRUE) ?
		OMX_MirrorHorizontal : OMX_MirrorNone;

	retval = goo_component_set_config_by_index
		(GOO_COMPONENT (self),
		 OMX_IndexConfigCommonMirror, param);

	if (retval == TRUE)
	{
		priv->mirror = mirror;
		GOO_OBJECT_INFO (self, "Mirror = %s", mirror ? "yes" : "no");
	}

	g_free (param);

	return retval;
}
Esempio n. 3
0
static gboolean
_goo_ti_audio_component_set_volume (GooTiAudioComponent* self, guint volume)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (volume >= MIN_VOLUME && volume <= MAX_VOLUME);

	g_return_val_if_fail (self->dasf_mode == TRUE, FALSE);

	gboolean retval = FALSE;
	OMX_AUDIO_CONFIG_VOLUMETYPE* param = NULL;
	param = g_new0 (OMX_AUDIO_CONFIG_VOLUMETYPE, 1);
	GOO_INIT_PARAM (param, OMX_AUDIO_CONFIG_VOLUMETYPE);

	param->bLinear = OMX_FALSE;
	param->sVolume.nValue = volume;
	param->sVolume.nMin = MIN_VOLUME;
	param->sVolume.nMax = MAX_VOLUME;

	retval = goo_component_set_config_by_index (GOO_COMPONENT (self),
						    OMX_IndexConfigAudioVolume,
						    param);

	if (retval == TRUE)
	{
		self->volume = volume;
		GOO_OBJECT_INFO (self, "volume = %d", param->sVolume.nValue);
	}

	g_free (param);

	return retval;
}
Esempio n. 4
0
void
gst_dasf_sink_set_halted (GstDasfSink* self, gboolean halted)
{
	GST_LOG ("");
	GstDasfSinkPrivate* priv = GST_DASF_SINK_GET_PRIVATE (self);

	GooComponent *component = NULL;
	GooComponent *pp = NULL;

	if(self->component != NULL)
		component = GOO_COMPONENT (self->component);

	if(self->pp != NULL)
		pp = GOO_COMPONENT (self->pp);


	if (halted)
	{
		if (component != NULL && component->cur_state == OMX_StateExecuting)
			goo_component_set_state_pause (component);
		if (pp != NULL && pp->cur_state == OMX_StateExecuting)
			goo_component_set_state_pause (pp);
	}
	else
	{
		if (pp != NULL && pp->cur_state == OMX_StatePause)
			goo_component_set_state_executing (pp);
		if (component != NULL  && component->cur_state == OMX_StatePause)
			goo_component_set_state_executing (component);
	}
}
Esempio n. 5
0
static gboolean
_goo_ti_post_processor_set_crop_height (GooTiPostProcessor* self,
					guint cropheight)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);

	GooTiPostProcessorPriv* priv =
		GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);

	gboolean retval = FALSE;
	OMX_CONFIG_RECTTYPE* param = NULL;
	param = g_new0 (OMX_CONFIG_RECTTYPE, 1);
	GOO_INIT_PARAM (param, OMX_CONFIG_RECTTYPE);

	param->nLeft   = priv->cropleft;
	param->nTop    = priv->croptop;
	param->nWidth  = priv->cropwidth;
	param->nHeight = cropheight;

	retval = goo_component_set_config_by_index
		(GOO_COMPONENT (self),
		 OMX_IndexConfigCommonOutputCrop, param);

	if (retval == TRUE)
	{
		priv->cropheight = cropheight;
		GOO_OBJECT_INFO (self, "Crop Height = %d", priv->cropheight);
	}

	g_free (param);

	return retval;
}
Esempio n. 6
0
static gboolean
_goo_ti_post_processor_set_yscale (GooTiPostProcessor* self, guint yscale)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (yscale >= 25 && yscale <= 800);

	GooTiPostProcessorPriv* priv =
		GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);

	gboolean retval = FALSE;
	OMX_CONFIG_SCALEFACTORTYPE *param = NULL;
	param = g_new0 (OMX_CONFIG_SCALEFACTORTYPE, 1);
	GOO_INIT_PARAM (param, OMX_CONFIG_SCALEFACTORTYPE);

	param->xWidth = priv->xscale;
	param->xHeight = yscale;

	retval = goo_component_set_config_by_index
		(GOO_COMPONENT (self), OMX_IndexConfigCommonScale, param);

	if (retval == TRUE)
	{
		priv->yscale = yscale;
		GOO_OBJECT_INFO (self, "Y scale = %d", param->xWidth);
	}

	g_free (param);

	return retval;
}
Esempio n. 7
0
static gboolean
_goo_ti_post_processor_set_ypos (GooTiPostProcessor* self, guint ypos)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);

	GooTiPostProcessorPriv* priv =
		GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);

	gboolean retval = FALSE;
	OMX_CONFIG_POINTTYPE *param = NULL;
	param = g_new0 (OMX_CONFIG_POINTTYPE, 1);
	GOO_INIT_PARAM (param, OMX_CONFIG_POINTTYPE);

	param->nX = priv->xpos;
	param->nY = ypos;

	retval = goo_component_set_config_by_index
		(GOO_COMPONENT (self),
		 OMX_IndexConfigCommonOutputPosition, param);

	if (retval == TRUE)
	{
		priv->ypos = ypos;
		GOO_OBJECT_INFO (self, "Y pos = %d", param->nY);
	}

	g_free (param);

	return retval;

}
Esempio n. 8
0
static gboolean
_goo_ti_post_processor_set_opacity (GooTiPostProcessor* self, guint opacity)
{
	GOO_OBJECT_DEBUG (self, "Entering set opacity method");
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (opacity >= 0 && opacity <= 255);

	GooTiPostProcessorPriv* priv =
		GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);

	gboolean retval = FALSE;
	OMX_CONFIG_COLORBLENDTYPE *param = NULL;
	param = g_new0 (OMX_CONFIG_COLORBLENDTYPE, 1);
	GOO_INIT_PARAM (param, OMX_CONFIG_COLORBLENDTYPE);


	param->eColorBlend  	 = 	OMX_ColorBlendAlphaConstant;
	param->nRGBAlphaConstant = 	opacity;

	retval = goo_component_set_config_by_index
						(GOO_COMPONENT (self),
						OMX_IndexConfigCommonColorBlend, param);
	if (retval == TRUE)
	{
		priv->opacity = opacity;
		GOO_OBJECT_INFO (self, "Opacity = %d", param->nRGBAlphaConstant);
	}

	g_free (param);

	return retval;
}
Esempio n. 9
0
static gboolean
_goo_ti_audio_component_set_mute (GooTiAudioComponent* self, gboolean mute)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);

	g_return_val_if_fail (self->dasf_mode == TRUE, FALSE);

	gboolean retval = FALSE;

	OMX_AUDIO_CONFIG_MUTETYPE* param = NULL;
	param = g_new0 (OMX_AUDIO_CONFIG_MUTETYPE, 1);
	GOO_INIT_PARAM (param, OMX_AUDIO_CONFIG_MUTETYPE);

	param->nPortIndex = 0;
	param->bMute = (mute) ? OMX_TRUE : OMX_FALSE;
	retval = goo_component_set_config_by_index (GOO_COMPONENT (self),
						    OMX_IndexConfigAudioMute,
						    param);

	if (retval == TRUE)
	{
		self->mute = mute;
		GOO_OBJECT_INFO (self, "mute = %s",
				 (param->bMute) ? "true" : "false");
	}

	g_free (param);

	return retval;
}
Esempio n. 10
0
static gboolean
_goo_ti_post_processor_set_ouput (GooTiPostProcessor* self,
				  GooTiPostProcessorOutput output)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);

	gboolean retval = TRUE;
	POSTPROC_CUSTOM_OUTPUTDEVICES outdev;

	if (self->video_pipeline == 1 &&
	    output == GOO_TI_POST_PROCESSOR_OUTPUT_LCD)
	{
		outdev.nVideoPipeline1 = GOO_TI_POST_PROCESSOR_OUTPUT_LCD;
		outdev.nVideoPipeline2 = GOO_TI_POST_PROCESSOR_OUTPUT_NONE;
	}
	else if (self->video_pipeline == 2 &&
		 output == GOO_TI_POST_PROCESSOR_OUTPUT_LCD)
	{
		outdev.nVideoPipeline1 = GOO_TI_POST_PROCESSOR_OUTPUT_NONE;
		outdev.nVideoPipeline2 = GOO_TI_POST_PROCESSOR_OUTPUT_LCD;
	}
	else if (self->video_pipeline == 1 &&
		 output == GOO_TI_POST_PROCESSOR_OUTPUT_TV)
	{
		outdev.nVideoPipeline1 = GOO_TI_POST_PROCESSOR_OUTPUT_TV;
		outdev.nVideoPipeline2 = GOO_TI_POST_PROCESSOR_OUTPUT_NONE;
	}
	else if (self->video_pipeline == 2 &&
		 output == GOO_TI_POST_PROCESSOR_OUTPUT_TV)
	{
		outdev.nVideoPipeline1 = GOO_TI_POST_PROCESSOR_OUTPUT_NONE;
		outdev.nVideoPipeline2 = GOO_TI_POST_PROCESSOR_OUTPUT_TV;
	}
	else if (output == GOO_TI_POST_PROCESSOR_OUTPUT_BOTH)
	{
		outdev.nVideoPipeline1 = GOO_TI_POST_PROCESSOR_OUTPUT_LCD;
		outdev.nVideoPipeline2 = GOO_TI_POST_PROCESSOR_OUTPUT_TV;
	}
	else
	{
		GOO_OBJECT_WARNING (self, "No configurable output");
		return retval;
	}

	retval = goo_component_set_config_by_name (GOO_COMPONENT (self),
						   OUTPUT_DEVICE,
						   (OMX_PTR*) &outdev);

	if (retval == TRUE)
	{
		GooTiPostProcessorPriv* priv =
			GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);
		priv->output = output;
		GOO_OBJECT_INFO (self, "output = %d", priv->output);
	}

	return retval;
}
Esempio n. 11
0
static gboolean
_goo_ti_audio_component_set_dasf_mode (GooTiAudioComponent* self,
				       gboolean dasf_mode)
{
	g_assert (GOO_IS_TI_AUDIO_COMPONENT (self));
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (self->dasf_param_name != NULL);

	gboolean retval = FALSE;

	self->audioinfo->dasfMode = (dasf_mode) ? 1 : 0;

	if (self->audioinfo->dasfMode == 1)
	{
		if (G_UNLIKELY (self->manager == NULL))
		{
			self->manager = goo_ti_audio_manager_new
				(GOO_COMPONENT (self));

			_goo_ti_audio_component_get_stream_id (self);
		}

		g_assert (self->stream_id > 0);

		self->audioinfo->streamId = self->stream_id;
		GOO_OBJECT_INFO (self, "stream id = %ld",
				 self->audioinfo->streamId);
	}

	retval = goo_component_set_config_by_name (GOO_COMPONENT (self),
						   self->dasf_param_name,
						   self->audioinfo);

	if (retval == TRUE && self->audioinfo->dasfMode == 1)
	{
		self->dasf_mode = dasf_mode;
		GOO_OBJECT_INFO (self, "dasf mode = %d",
				 self->audioinfo->dasfMode);

		/* output port is tunneled in DASF mode */
		GooPort* port = NULL;
		GooIterator *iter =
			goo_ti_audio_component_iterate_ports (self);
		while (!goo_iterator_is_done (iter))
		{
			port = GOO_PORT (goo_iterator_get_current (iter));
			g_object_set (G_OBJECT (port),
				      "tunneled", self->dasf_mode, NULL);
			g_object_unref (G_OBJECT (port));
			goo_iterator_next (iter);
		}
		g_object_unref (G_OBJECT (iter));
	}

	return retval;
}
Esempio n. 12
0
static void
goo_ti_clock_init (GooTiClock* self)
{
    GOO_COMPONENT (self)->id = g_strdup (ID);
    GOO_COMPONENT (self)->port_param_type = OMX_IndexParamOtherInit;

    goo_object_set_name (GOO_OBJECT (self), NAME);

    return;
}
Esempio n. 13
0
static gboolean
_goo_ti_audio_component_get_stream_id (GooTiAudioComponent* self)
{
	g_assert (GOO_TI_AUDIO_COMPONENT (self));
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (self->streamid_param_name != NULL);

	gboolean retval = FALSE;

	if (self->stream_id > -1)
	{
		return retval;
	}

	GOO_OBJECT_DEBUG (self, "");

#if 0  /* this is deprected since audio manager */
	TI_OMX_STREAM_INFO param;

	retval = goo_component_get_config_by_name (GOO_COMPONENT (self),
						   self->streamid_param_name,
						   &param);

	if (retval == TRUE)
	{
		self->stream_id = param.streamId;
		GOO_INFO ("stream id = %d", self->stream_id);
	}
#else
	if (G_LIKELY (self->manager != NULL))
	{
		self->stream_id = goo_ti_audio_manager_get_stream_id (self->manager);
		if (self->stream_id > 0)
		{
			retval = TRUE;
		}
		else
		{
			retval = FALSE;
		}
	}
	else
	{
		retval = FALSE;
	}
#endif


	return retval;
}
Esempio n. 14
0
static void
omx_output_buffer_cb (GooPort* port,
		      OMX_BUFFERHEADERTYPE* buffer,
		      gpointer data)
{
	g_return_if_fail (buffer->nFlags != OMX_BUFFERFLAG_DATACORRUPT);

	g_assert (GOO_IS_PORT (port));
	g_assert (buffer != NULL);
	g_assert (GOO_IS_COMPONENT (data));

	GooComponent* component = GOO_COMPONENT (data);
	GstGooEncPcm* self = GST_GOO_ENCPCM (
		g_object_get_data (G_OBJECT (data), "gst")
		);
	g_assert (self != NULL);

	{
		process_output_buffer (self, buffer);

		if (buffer->nFlags == OMX_BUFFERFLAG_EOS ||
		    goo_port_is_eos (port))
		{
			GST_INFO_OBJECT (self,
					 "EOS found in output buffer (%d)",
					 buffer->nFilledLen);
			goo_component_set_done (self->component);
		}
	}

	GST_INFO_OBJECT (self, "");

	return;
}
Esempio n. 15
0
static void
_goo_ti_wmadec_set_header_info (GooTiWmaDec *self)
{
	g_assert (self != NULL);

	goo_component_set_config_by_name (GOO_COMPONENT(self),
		GOO_TI_AUDIO_COMPONENT (self)->dasf_param_name,
		GOO_TI_AUDIO_COMPONENT (self)->audioinfo);

}
Esempio n. 16
0
static void
goo_engine_outport_cb (GooPort* port, OMX_BUFFERHEADERTYPE* buffer,
                       gpointer data)
{
    g_assert (GOO_IS_PORT (port));
    g_assert (buffer != NULL);
    g_assert (GOO_IS_COMPONENT (data));

    GooComponent* component = GOO_COMPONENT (data);
    GooEngine* self = GOO_ENGINE (
                          g_object_get_data (G_OBJECT (component), "engine")
                      );

    g_assert (self->outstream != NULL);

    if (buffer->nFilledLen <= 0 &&
            (buffer->nFlags & OMX_BUFFERFLAG_EOS) != 0x1)
    {
        GOO_OBJECT_ERROR (self, "Empty buffer received!!");
    }

    if (buffer->nFilledLen > 0)
    {
        GOO_OBJECT_DEBUG (self, "%d bytes written",
                          buffer->nFilledLen);
        fwrite (buffer->pBuffer, 1, buffer->nFilledLen,
                self->outstream);
        /* fflush (self->outfile); */
    }

    /* we count the empty buffer only if it have de EOS flag */
    if ((buffer->nFilledLen > 0) ||
            ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0x1 &&
             buffer->nFilledLen == 0))
    {
        g_atomic_int_inc (&self->outcount);
    }

    /* if we assigned the number of buffer to process */
    if (self->numbuffers != 0 && self->outcount == self->numbuffers)
    {
        goo_port_set_eos (port);
    }

    if ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0x1 ||
            goo_port_is_eos (port))
    {
        goo_component_set_done (self->component);
    }

    goo_component_release_buffer (component, buffer);

    return;
}
Esempio n. 17
0
void _goo_ti_mp3dec_set_layer(GooTiMp3Dec *self, guint layer)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (layer == 2 || layer == 3);
	GooTiAudioComponent *component = GOO_TI_AUDIO_COMPONENT(self);

	gboolean retval = FALSE;
	component->audioinfo->mpeg1_layer2 = (layer == 2) ? 1 : 0;
	retval = goo_component_set_config_by_name (GOO_COMPONENT (self),
						   component->dasf_param_name,
						   component->audioinfo);
	if (retval == TRUE)
	{
		self->layer = layer;

		GOO_OBJECT_INFO (self, "mpeg1_layer2 = %d",
				 component->audioinfo->mpeg1_layer2);
	}
}
Esempio n. 18
0
static gboolean
_goo_ti_audio_component_set_data_path (GooTiAudioComponent* self,
				       guint datapath)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (self->datapath_param_name != NULL);
	gboolean retval = FALSE;

	self->datapath= datapath ? 1: 0;
	GOO_OBJECT_DEBUG (self, "datapath set to: %p",
			  self->datapath);
	retval = goo_component_set_config_by_name (GOO_COMPONENT (self),
						   self->datapath_param_name,
						   &(self->datapath));

	GOO_OBJECT_DEBUG (self, "datapath set to: %d", self->datapath);

	return retval;
}
Esempio n. 19
0
static void
_goo_ti_aacenc_set_output_frames (GooTiAacEnc *self)
{
	g_assert (self != NULL);

	GOO_OBJECT_DEBUG (self, "Frames per output = %d", self->output_frames);

	goo_component_set_config_by_name (GOO_COMPONENT (self),
					  FRAMESPERBUFFER,
					  &self->output_frames);

	return;
}
Esempio n. 20
0
static gboolean
_goo_ti_audio_component_set_acoustic_mode (GooTiAudioComponent *self,
					   gboolean acoustic_mode)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (self->acoustic_param_name != NULL);

	gboolean retval = FALSE;
	self->audioinfo->acousticMode = (acoustic_mode) ? 1 : 0;
	retval = goo_component_set_config_by_name (GOO_COMPONENT (self),
						   self->acoustic_param_name,
						   self->audioinfo);
	if (retval == TRUE)
	{
		self->acoustic_mode = acoustic_mode;
		GOO_OBJECT_INFO (self, "acoustic mode = %d",
				 self->audioinfo->acousticMode);
	}

	return retval;
}
Esempio n. 21
0
/**
 * gst_goo_filter_outport_buffer:
 * @port: A #GooPort instance
 * @buffer: An #OMX_BUFFERHEADERTYPE pointer
 * @data: A pointer to extra data
 *
 * This function is a generic callback for a libgoo's output port and push
 * a new GStreamer's buffer.
 *
 * This method can be reused in derived classes.
 **/
void
gst_goo_filter_outport_buffer (GooPort* port, OMX_BUFFERHEADERTYPE* buffer,
				  gpointer data)
{
	g_return_if_fail (buffer->nFlags != OMX_BUFFERFLAG_DATACORRUPT);

	GST_DEBUG ("Enter");

	g_assert (GOO_IS_PORT (port));
	g_assert (buffer != NULL);
	g_assert (GOO_IS_COMPONENT (data));

	GooComponent* component = GOO_COMPONENT (data);
	GstGooFilter* self =
		GST_GOO_FILTER (g_object_get_data (G_OBJECT (data), "gst"));
	g_assert (self != NULL);
	GstGooFilterPrivate* priv = GST_GOO_FILTER_GET_PRIVATE (self);

	GstBuffer* gst_buffer = gst_goo_buffer_new ();
	gst_goo_buffer_set_data (gst_buffer, component, buffer);
	priv->outcount++;

#if 0
	if (goo_port_is_tunneled (self->inport))
	{
		GST_DEBUG_OBJECT (self, "sem up");
         gst_goo_sem_up (self->dasfsrc_sem);
	}
#endif

	/** FIXME GStreamer should not insert the header.  OMX component should take
	 * care of it.  Remove this function upon resolution of DR OMAPS00140835 and
	 * OMAPS00140836 **/
	gst_buffer = gst_goo_filter_insert_header (self, gst_buffer, priv->outcount);

	gst_goo_filter_timestamp_buffer (self, gst_buffer, buffer);

	GST_BUFFER_OFFSET (gst_buffer) = priv->outcount;
	gst_buffer_set_caps (gst_buffer, GST_PAD_CAPS (self->srcpad));
	gst_pad_push (self->srcpad, gst_buffer);

	if (buffer->nFlags == OMX_BUFFERFLAG_EOS || goo_port_is_eos (port) ||
		gst_goo_filter_is_last_dasf_buffer (self, priv->outcount))
	{
		GST_INFO ("EOS flag found in output buffer (%d)",
			  buffer->nFilledLen);
		goo_component_set_done (self->component);
	}

	return;
}
Esempio n. 22
0
static gboolean
_goo_ti_audio_component_set_frame_mode (GooTiAudioComponent* self,
					gboolean frame_mode)
{
	g_assert (self != NULL);
	g_assert (GOO_COMPONENT (self)->cur_state != OMX_StateInvalid);
	g_assert (self->frame_param_name != NULL);

	gboolean retval = FALSE;
	self->audioinfo->framemode = (frame_mode) ? 1 : 0;
	retval = goo_component_set_config_by_name (GOO_COMPONENT (self),
						   self->frame_param_name,
						   self->audioinfo);
	if (retval == TRUE)
	{
		self->frame_mode = frame_mode;
		GOO_OBJECT_INFO (self, "dasf mode = %d",
				 self->audioinfo->framemode);

#if 0
		/* output port is tunneled in DASF mode */
		GooPort* port = NULL;
		GooIterator* iter = goo_component_iterate_output_ports
			(GOO_COMPONENT (self));
		while (!goo_iterator_is_done (iter))
		{
			port = GOO_PORT (goo_iterator_get_current (iter));
			g_object_set (G_OBJECT (port),
				      "tunneled", self->dasf_mode, NULL);
			g_object_unref (G_OBJECT (port));
			goo_iterator_next (iter);
		}
		g_object_unref (G_OBJECT (iter));
#endif
	}

	return retval;
}
Esempio n. 23
0
static void
goo_ti_gsmfrdec_init (GooTiGsmFrDec* self)

{
    GOO_COMPONENT (self)->id = g_strdup (ID);
    GOO_TI_AUDIO_COMPONENT (self)->dasf_param_name = g_strdup (DASF_PARAM_NAME);
    GOO_TI_AUDIO_COMPONENT (self)->frame_param_name = g_strdup (FRAME_PARAM_NAME);
    GOO_TI_AUDIO_COMPONENT (self)->streamid_param_name = g_strdup (STREAMID_PARAM_NAME);
    GOO_TI_AUDIO_COMPONENT (self)->datapath_param_name = g_strdup (DATAPATH_PARAM_NAME);
    self->input_port_param = NULL;
    self->output_port_param = NULL;

    return;
}
Esempio n. 24
0
static void
goo_ti_post_processor_init (GooTiPostProcessor* self)
{
	GOO_COMPONENT (self)->port_param_type = OMX_IndexParamVideoInit;
	GOO_COMPONENT (self)->id = g_strdup (ID);

	GooTiPostProcessorPriv* priv =
		GOO_TI_POST_PROCESSOR_GET_PRIVATE (self);

	priv->rotation 	= DEFAULT_ROTATION;
	priv->opacity= DEFAULT_OPACITY;
	priv->xscale   	= DEFAULT_XSCALE;
	priv->yscale   	= DEFAULT_YSCALE;
	priv->xpos     	= DEFAULT_XPOS;
	priv->ypos     	= DEFAULT_YPOS;
	priv->mirror   	= DEFAULT_MIRROR;
	priv->output   	= DEFAULT_OUTPUT;

	self->video_pipeline   = 1;
	self->background_color = NULL;
	self->transcolor_key   = NULL;

	return;
}
Esempio n. 25
0
/**
 * helper for gst_goo_util_find_goo_component() to check if the current element
 * is the one we are searching for
 */
static GooComponent *
check_for_goo_component (GstElement *elem, SearchContext *ctx)
{
	GooComponent *component = GOO_COMPONENT (g_object_get_data (G_OBJECT (elem), "goo"));

	if (component != NULL)
	{
		if (!G_TYPE_CHECK_INSTANCE_TYPE (component, ctx->type))
		{
			GST_INFO("found GOO component: %s", G_OBJECT_TYPE_NAME (component));
			component = NULL;
		}
	}

	return component;
}
Esempio n. 26
0
static void
goo_ti_gsmfrenc_init (GooTiGsmFrEnc* self)
{
        GOO_COMPONENT (self)->id = g_strdup (ID);
        GOO_TI_AUDIO_COMPONENT (self)->dasf_param_name =
                g_strdup (DASF_PARAM_NAME);
        GOO_TI_AUDIO_COMPONENT (self)->acoustic_param_name =
                g_strdup (ACOUSTIC_PARAM_NAME);
        GOO_TI_AUDIO_COMPONENT (self)->streamid_param_name =
                g_strdup (STREAMID_PARAM_NAME);
        GOO_TI_AUDIO_COMPONENT (self)->datapath_param_name =
                g_strdup (DATAPATH_PARAM_NAME);

        self->output_port_param = NULL;

        return;
}
Esempio n. 27
0
static void
_goo_ti_aacenc_set_bit_rate_mode (GooTiAacEnc *self,
				  GooTiAacEncBitRateMode bit_rate_mode)
{
	g_assert (self != NULL);
	GooTiAudioComponent *me = GOO_TI_AUDIO_COMPONENT (self);

	me->audioinfo->aacencHeaderInfo->bitratemode = bit_rate_mode;

	goo_component_set_config_by_name (GOO_COMPONENT (self),
					  me->dasf_param_name,
					  me->audioinfo);

	GOO_OBJECT_DEBUG (self, "");

	return;
}
Esempio n. 28
0
static void
goo_ti_audio_component_finalize (GObject* object)
{
	g_assert (GOO_IS_TI_AUDIO_COMPONENT (object));
	GooTiAudioComponent* self = GOO_TI_AUDIO_COMPONENT (object);

	if (G_LIKELY (self->dasf_param_name))
	{
		g_free (self->dasf_param_name);
		self->dasf_param_name = NULL;
	}
	if (G_LIKELY (self->frame_param_name))
	{
		g_free (self->frame_param_name);
		self->frame_param_name = NULL;
	}
	if (G_LIKELY (self->acoustic_param_name))
	{
		g_free (self->acoustic_param_name);
		self->acoustic_param_name = NULL;
	}
	if (G_LIKELY (self->datapath_param_name))
	{
		g_free (self->datapath_param_name);
		self->datapath_param_name = NULL;
	}
	if (G_LIKELY (self->audioinfo))
	{
		g_free (self->audioinfo);
		self->audioinfo = NULL;
	}
	if (G_LIKELY (self->streamid_param_name))
	{
		g_free (self->streamid_param_name);
		self->streamid_param_name = NULL;
	}

	GOO_COMPONENT (self)->port_param_type = OMX_IndexComponentStartUnused;

	(*G_OBJECT_CLASS (goo_ti_audio_component_parent_class)->finalize)
		(object);

	return;
}
Esempio n. 29
0
/**
 * goo_ti_clock_get_timestamp:
 * @self: A #GooTiClock instance
 *
 * Retrieve the current media time ellapsed from the moment of an audio stream
 * started to now.
 *
 * Return value: The number of ticks in microseconds ocurred to now.
 */
gint64
goo_ti_clock_get_timestamp (GooTiClock* self)
{
    OMX_TIME_CONFIG_TIMESTAMPTYPE* param;
    gint64 ts = 0;

    param = g_new0 (OMX_TIME_CONFIG_TIMESTAMPTYPE, 1);
    GOO_INIT_PARAM (param, OMX_TIME_CONFIG_TIMESTAMPTYPE);

    goo_component_get_config_by_index (GOO_COMPONENT (self),
                                       OMX_IndexConfigTimeCurrentMediaTime,
                                       param);

    ts = (gint64) param->nTimestamp;

    g_free (param);

    return ts;
}
Esempio n. 30
0
static void
goo_ti_wmadec_init (GooTiWmaDec* self)
{
        GOO_COMPONENT (self)->id = g_strdup (ID);
        GOO_TI_AUDIO_COMPONENT (self)->dasf_param_name =
                g_strdup (DASF_PARAM_NAME);
        GOO_TI_AUDIO_COMPONENT (self)->frame_param_name =
                g_strdup (FRAME_PARAM_NAME);
        GOO_TI_AUDIO_COMPONENT (self)->datapath_param_name =
                g_strdup (DATAPATH_PARAM_NAME);
        GOO_TI_AUDIO_COMPONENT (self)->streamid_param_name =
                g_strdup (STREAMID_PARAM_NAME);

        self->input_param = NULL;
        self->output_param = NULL;
	GOO_TI_AUDIO_COMPONENT (self)->audioinfo->wmaHeaderInfo = g_new0(WMA_HeadInfo, 1);

        return;
}