|
|
|
@@ -24,7 +24,6 @@ |
|
|
|
* |
|
|
|
* TODO: |
|
|
|
* - add support to more formats |
|
|
|
* - add support to window id specification |
|
|
|
*/ |
|
|
|
|
|
|
|
#include <X11/Xlib.h> |
|
|
|
@@ -44,6 +43,7 @@ typedef struct { |
|
|
|
GC gc; |
|
|
|
|
|
|
|
Window window; |
|
|
|
int64_t window_id; |
|
|
|
char *window_title; |
|
|
|
int window_width, window_height; |
|
|
|
int window_x, window_y; |
|
|
|
@@ -144,6 +144,8 @@ static int xv_write_header(AVFormatContext *s) |
|
|
|
xv->window_height = av_rescale(xv->window_height, sar.den, sar.num); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!xv->window_id) { |
|
|
|
//TODO: reident |
|
|
|
xv->window = XCreateSimpleWindow(xv->display, DefaultRootWindow(xv->display), |
|
|
|
xv->window_x, xv->window_y, |
|
|
|
xv->window_width, xv->window_height, |
|
|
|
@@ -156,6 +158,8 @@ static int xv_write_header(AVFormatContext *s) |
|
|
|
} |
|
|
|
XStoreName(xv->display, xv->window, xv->window_title); |
|
|
|
XMapWindow(xv->display, xv->window); |
|
|
|
} else |
|
|
|
xv->window = xv->window_id; |
|
|
|
|
|
|
|
if (XvQueryAdaptors(xv->display, DefaultRootWindow(xv->display), &num_adaptors, &ai) != Success) { |
|
|
|
ret = AVERROR_EXTERNAL; |
|
|
|
@@ -315,6 +319,7 @@ static int xv_write_frame(AVFormatContext *s, int stream_index, AVFrame **frame, |
|
|
|
#define OFFSET(x) offsetof(XVContext, x) |
|
|
|
static const AVOption options[] = { |
|
|
|
{ "display_name", "set display name", OFFSET(display_name), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, AV_OPT_FLAG_ENCODING_PARAM }, |
|
|
|
{ "window_id", "set existing window id", OFFSET(window_id), AV_OPT_TYPE_INT64, {.i64 = 0 }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM }, |
|
|
|
{ "window_size", "set window forced size", OFFSET(window_width), AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM }, |
|
|
|
{ "window_title", "set window title", OFFSET(window_title), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, AV_OPT_FLAG_ENCODING_PARAM }, |
|
|
|
{ "window_x", "set window x offset", OFFSET(window_x), AV_OPT_TYPE_INT, {.i64 = 0 }, -INT_MAX, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM }, |
|
|
|
|