static GstFlowReturn gst_cacasink_render (GstBaseSink * basesink, GstBuffer * buffer) { GstCACASink *cacasink = GST_CACASINK (basesink); GstVideoFrame frame; GST_DEBUG ("render"); if (!gst_video_frame_map (&frame, &cacasink->info, buffer, GST_MAP_READ)) goto invalid_frame; caca_clear (); caca_draw_bitmap (0, 0, cacasink->screen_width - 1, cacasink->screen_height - 1, cacasink->bitmap, GST_VIDEO_FRAME_PLANE_DATA (&frame, 0)); caca_refresh (); gst_video_frame_unmap (&frame); return GST_FLOW_OK; /* ERRORS */ invalid_frame: { GST_ERROR_OBJECT (cacasink, "invalid frame received"); return GST_FLOW_ERROR; } }
static int draw_frame(uint8_t *src[]) { caca_draw_bitmap(0, 0, screen_w, screen_h, cbitmap, src[0]); return 0; }