diff options
-rw-r--r-- | waltham-transmitter/transmitter-plugin/output.c | 15 | ||||
-rw-r--r-- | waltham-transmitter/transmitter-plugin/transmitter_api.h | 2 | ||||
-rw-r--r-- | waltham-transmitter/waltham-renderer/waltham-renderer.c | 12 |
3 files changed, 23 insertions, 6 deletions
diff --git a/waltham-transmitter/transmitter-plugin/output.c b/waltham-transmitter/transmitter-plugin/output.c index 829b4bf..c7aa616 100644 --- a/waltham-transmitter/transmitter-plugin/output.c +++ b/waltham-transmitter/transmitter-plugin/output.c @@ -193,7 +193,7 @@ transmitter_output_repaint(struct weston_output *base, output->renderer->dmafd = api->get_dma_fd_from_view(&output->base, view, &output->renderer->buf_stride); - if(!output->renderer->dmafd) { + if(output->renderer->dmafd < 0) { weston_log("Failed to get dmafd\n"); goto out; } @@ -210,7 +210,7 @@ transmitter_output_repaint(struct weston_output *base, output->renderer->repaint_output(output); output->renderer->dmafd = NULL; transmitter_api->surface_gather_state(txs); - weston_buffer_reference(&view->surface->buffer_ref, NULL); + //weston_buffer_reference(&view->surface->buffer_ref, NULL); break; } } @@ -222,7 +222,18 @@ transmitter_output_repaint(struct weston_output *base, if (!found_output) goto out; +#if 0 weston_compositor_read_presentation_clock(output->base.compositor, &ts); +#else + clock_gettime(CLOCK_MONOTONIC_RAW, &ts); + ts.tv_nsec += 33000000; + if(ts.tv_nsec >= 1000000000) + { + ts.tv_sec++; + ts.tv_nsec -= 1000000000; + } +#endif + weston_output_finish_frame(&output->base, &ts, 0); return 0; diff --git a/waltham-transmitter/transmitter-plugin/transmitter_api.h b/waltham-transmitter/transmitter-plugin/transmitter_api.h index 9f382bf..b067c78 100644 --- a/waltham-transmitter/transmitter-plugin/transmitter_api.h +++ b/waltham-transmitter/transmitter-plugin/transmitter_api.h @@ -270,7 +270,7 @@ struct renderer { void (*repaint_output)(struct weston_output *base); struct GstAppContext *ctx; int32_t dmafd; /* dmafd received from compositor-drm */ - int buf_stride; + int buf_stride; int surface_width; int surface_height; bool recorder_enabled; diff --git a/waltham-transmitter/waltham-renderer/waltham-renderer.c b/waltham-transmitter/waltham-renderer/waltham-renderer.c index 47ba9ce..9125c17 100644 --- a/waltham-transmitter/waltham-renderer/waltham-renderer.c +++ b/waltham-transmitter/waltham-renderer/waltham-renderer.c @@ -162,6 +162,7 @@ gst_pipe_init(struct weston_transmitter_output *output, struct gst_settings *set return -1; g_object_set(G_OBJECT(gstctx->appsrc), + "block", TRUE, "caps", caps, "stream-type", 0, "format", GST_FORMAT_TIME, @@ -174,7 +175,10 @@ gst_pipe_init(struct weston_transmitter_output *output, struct gst_settings *set gint g_port = (gint)atoi(output->remote->port); g_object_set(G_OBJECT(sink), "host", g_host, "port", g_port, NULL); - weston_log("Parsing GST pipeline:%s",pipe); + gchar *g_getHost; + gint *g_getPort; + g_object_get(G_OBJECT(sink), "host", &g_getHost, "port", &g_getPort, NULL); + weston_log("pipline Host:%s Port:%d\n",g_getHost, g_getPort); gst_element_set_state((GstElement*)((void*)gstctx->pipeline), GST_STATE_PLAYING); output->renderer->ctx = gstctx; @@ -204,8 +208,10 @@ recorder_enable(struct weston_transmitter_output *output) settings->port = atoi(remote->port); settings->bitrate = bitrate; - settings->width = output->renderer->surface_width; - settings->height = output->renderer->surface_height; + settings->width = remote->width; + settings->height = remote->height; + //settings->width = output->renderer->surface_width; + //settings->height = output->renderer->surface_height; weston_log("gst-setting are :-->\n"); weston_log("ip = %s \n",settings->ip); |