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; }
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; }
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; }
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); }
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; }
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; }
/* GObject vmethod implementations */ static void audio_trim_finalize (GObject *obj) { AudioTrim *filter = AUDIO_TRIM (obj); release_buffers(filter); }
void tracker_bitmap_color::on_delete() { release_buffers(); }