Ejemplo n.º 1
0
static GstStateChangeReturn
audio_trim_change_state (GstElement *element, GstStateChange transition)
{
  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
  AudioTrim *filter;
  filter = AUDIO_TRIM (element);
  switch(transition) {
  case GST_STATE_CHANGE_READY_TO_PAUSED:
    filter->accumulator = 0.0;
    filter->f0 = 0.99;
    filter->trim_state = AUDIO_TRIM_NOT_STARTED;
    filter->sound_duration = 0;
    break;
  default:
    break;
  }
  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
  if (ret == GST_STATE_CHANGE_FAILURE)
    return ret;
  
  switch(transition) {
  case GST_STATE_CHANGE_PAUSED_TO_READY:
    release_buffers(filter);
    break;
  default:
    break;
  }
  
  return ret;
}
Ejemplo n.º 2
0
static OMX_ERRORTYPE
httpr_prc_port_disable (const void * ap_prc, OMX_U32 a_pid)
{
  httpr_prc_t * p_prc = (httpr_prc_t *) ap_prc;
  p_prc->port_disabled_ = true;
  release_buffers (p_prc);
  return OMX_ErrorNone;
}
Ejemplo n.º 3
0
static OMX_ERRORTYPE
httpr_prc_stop_and_return (void * ap_prc)
{
  httpr_prc_t * p_prc = ap_prc;
  OMX_ERRORTYPE rc = OMX_ErrorNone;
  assert (p_prc);
  rc = httpr_srv_stop (p_prc->p_server_);
  release_buffers (p_prc);
  return rc;
}
Ejemplo n.º 4
0
void tracker_bitmap_color::initialize_buffers( int w, int h )
{
  //Do nothing, If the previous image and input image are same as the dimensions,
  if(m_img[FILTER_NONE] && m_img[FILTER_NONE]->width == w && m_img[FILTER_NONE]->height == h) return;
  else release_buffers();

  //for a camera input, assume the image is composed of 8bit RGB pixels.
  //Also for the input image, the just the headers are sufficient.
  m_img[FILTER_NONE] = cvCreateImageHeader(cvSize(w,h),8,3);

  m_img[FILTER_HSV] = cvCreateImage(cvSize(w,h),8,3);
  m_img[FILTER_HSV_THRESHOLD] = cvCreateImage(cvSize(w,h),8,1);
  m_img[FILTER_HSV_THRESHOLD_RGB] = cvCreateImage(cvSize(w,h),8,3);
}
Ejemplo n.º 5
0
static GstFlowReturn
send_buffers_before(AudioTrim *filter, gint64 before)
{
  GstFlowReturn ret = GST_FLOW_OK;
  GList *b = filter->buffers;
  while(b) {
    GstBuffer *buf = b->data;
    b->data = NULL;
    if ((gint64)GST_BUFFER_OFFSET(buf) >= before) {
      gst_buffer_unref(buf);
    } else {
      if ((gint64)GST_BUFFER_OFFSET_END(buf) > before) {
	GstBuffer *head = buffer_head(filter, buf, before);
	gst_buffer_unref(buf);
	buf = head;
      }
      ret = gst_pad_push(filter->srcpad, buf);
      if (ret != GST_FLOW_OK) break;
    }
    b = g_list_next(b);
  }
  release_buffers(filter);
  return ret;
}
Ejemplo n.º 6
0
static GstFlowReturn
send_buffers_after(AudioTrim *filter, gint64 after)
{
  GstFlowReturn ret = GST_FLOW_OK;
  GList *b = filter->buffers;
  while(b) {
    GstBuffer *buf = b->data;
    b->data = NULL;
    if ((gint64)GST_BUFFER_OFFSET_END(buf) <= after) {
      gst_buffer_unref(buf);
    } else {
      if ((gint64)GST_BUFFER_OFFSET(buf) < after) {
	GstBuffer *tail = buffer_tail(filter, buf, after);
	gst_buffer_unref(buf);
	buf = tail;
      }
      ret = gst_pad_push(filter->srcpad, buf);
      if (ret != GST_FLOW_OK) break;
    }
    b = g_list_next(b);
  }
  release_buffers(filter);
  return ret;
}
Ejemplo n.º 7
0
/* GObject vmethod implementations */
static void
audio_trim_finalize (GObject *obj)
{
  AudioTrim *filter = AUDIO_TRIM (obj);
  release_buffers(filter);
}
Ejemplo n.º 8
0
void tracker_bitmap_color::on_delete()
{
  release_buffers();
}