Codebase list kmscube / bf80ca5
gst-decoder.c: minor cleanup Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> Carlos Rafael Giani authored 7 years ago Rob Clark committed 7 years ago
1 changed file(s) with 9 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
4141 GST_DEBUG_CATEGORY_EXTERN(kmscube_debug);
4242 #define GST_CAT_DEFAULT kmscube_debug
4343
44 #define MAX_NUM_PLANES 3
45
4446 struct decoder {
4547 GMainLoop *loop;
4648 GstElement *pipeline;
8284 return GST_PAD_PROBE_OK;
8385 }
8486
85 switch (dec->info.finfo->format) {
87 switch (GST_VIDEO_INFO_FORMAT(&(dec->info))) {
8688 case GST_VIDEO_FORMAT_I420:
8789 dec->format = DRM_FORMAT_YUV420;
8890 break;
263265 GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
264266 pad_probe, dec, NULL);
265267
266 /* hack to make sure we get dmabuf's from v4l2video0dec.. */
268 /* callback needed to make sure we get dmabuf's from v4l2videoNdec.. */
267269 decodebin = gst_bin_get_by_name(GST_BIN(dec->pipeline), "decode");
268270 g_signal_connect(decodebin, "element-added", G_CALLBACK(element_added_cb), dec);
269271
321323 static EGLImage
322324 buffer_to_image(struct decoder *dec, GstBuffer *buf)
323325 {
324 struct { int fd, offset, stride; } planes[3];
326 struct { int fd, offset, stride; } planes[MAX_NUM_PLANES];
325327 GstVideoMeta *meta = gst_buffer_get_video_meta(buf);
326328 EGLImage image;
327329 unsigned nmems = gst_buffer_n_memory(buf);
411413 EGL_LINUX_DMA_BUF_EXT, NULL, attr);
412414 }
413415
416 /* Cleanup */
414417 for (unsigned i = 0; i < nmems; i++)
415418 close(planes[i].fd);
416419
425428 EGLImage frame = NULL;
426429
427430 samp = gst_app_sink_pull_sample(GST_APP_SINK(dec->sink));
428 if (!samp)
431 if (!samp) {
432 GST_DEBUG("got no appsink sample");
429433 return NULL;
434 }
430435
431436 buf = gst_sample_get_buffer(samp);
432437