mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-04-05 07:04:43 +00:00
Do not require hostname/IP address
* expect localhost where not set * TODO: revide iHDTV (remained untouched by this change) + minor changes in yuv422->yuv444 shader
This commit is contained in:
@@ -97,7 +97,8 @@ int dxt_prepare_yuv422_shader(struct dxt_encoder *encoder) {
|
||||
|
||||
glUseProgramObjectARB(encoder->yuv422_to_444_program);
|
||||
glUniform1i(glGetUniformLocation(encoder->yuv422_to_444_program, "image"), 0);
|
||||
glUniform2f(glGetUniformLocation(encoder->yuv422_to_444_program, "imageSize"), encoder->width, encoder->height);
|
||||
glUniform1f(glGetUniformLocation(encoder->yuv422_to_444_program, "imageWidth"),
|
||||
(GLfloat) encoder->width);
|
||||
|
||||
// Create fbo
|
||||
glGenFramebuffersEXT(1, &encoder->fbo444_id);
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
|
||||
in vec4 TEX0;
|
||||
uniform sampler2D image;
|
||||
uniform vec2 imageSize;
|
||||
uniform float imageWidth;
|
||||
out vec4 color;
|
||||
|
||||
void main()
|
||||
{
|
||||
color.rgba = texture(image, TEX0.xy).grba; // store Y0UVY1 ro rgba
|
||||
if(TEX0.x * imageSize.x / 2 - floor(TEX0.x * imageSize.x / 2) > 0.25)
|
||||
if(TEX0.x * imageWidth / 2.0f - floor(TEX0.x * imageWidth / 2.0f) > 0.5f) // 'odd' pixel
|
||||
color.r = color.a; // use Y1 instead of Y0
|
||||
}
|
||||
|
||||
@@ -176,7 +176,10 @@ void print_audio_devices(enum audio_device_kind kind)
|
||||
#endif
|
||||
}
|
||||
|
||||
struct state_audio * audio_cfg_init(char *addrs[], char *send_cfg, char *recv_cfg, char *jack_cfg)
|
||||
/**
|
||||
* take care that addrs can also be comma-separated list of addresses !
|
||||
*/
|
||||
struct state_audio * audio_cfg_init(char *addrs, char *send_cfg, char *recv_cfg, char *jack_cfg)
|
||||
{
|
||||
struct state_audio *s;
|
||||
char *tmp, *unused;
|
||||
@@ -202,7 +205,7 @@ struct state_audio * audio_cfg_init(char *addrs[], char *send_cfg, char *recv_cf
|
||||
|
||||
gettimeofday(&s->start_time, NULL);
|
||||
|
||||
tmp = strdup(addrs[0]);
|
||||
tmp = strdup(addrs);
|
||||
s->audio_participants = pdb_init();
|
||||
addr = strtok_r(tmp, ",", &unused);
|
||||
if ((s->audio_network_device =
|
||||
|
||||
@@ -80,7 +80,7 @@ typedef struct audio_frame
|
||||
}
|
||||
audio_frame;
|
||||
|
||||
struct state_audio * audio_cfg_init(char *addrs[], char *send_cfg, char *recv_cfg, char *jack_cfg);
|
||||
struct state_audio * audio_cfg_init(char *addrs, char *send_cfg, char *recv_cfg, char *jack_cfg);
|
||||
void audio_done(struct state_audio *s);
|
||||
void audio_join(struct state_audio *s);
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ static void usage(void)
|
||||
{
|
||||
/* TODO -c -p -b are deprecated options */
|
||||
printf("Usage: uv [-d <display_device>] [-g <display_cfg>] [-t <capture_device>] [-g <capture_cfg>]\n");
|
||||
printf(" [-m <mtu>] [-r <audio_playout> [-s <audio_caputre>] [-c] [-i] address(es)\n\n");
|
||||
printf(" [-m <mtu>] [-r <audio_playout>] [-s <audio_caputre>] [-c] [-i] address(es)\n\n");
|
||||
printf
|
||||
("\t-d <display_device>\tselect display device, use '-d help' to get\n");
|
||||
printf("\t \tlist of supported devices\n");
|
||||
@@ -193,7 +193,7 @@ static struct display *initialize_video_display(const char *requested_display,
|
||||
{
|
||||
struct display *d;
|
||||
display_type_t *dt;
|
||||
display_id_t id;
|
||||
display_id_t id = 0;
|
||||
int i;
|
||||
|
||||
if(!strcmp(requested_display, "none"))
|
||||
@@ -249,7 +249,7 @@ static struct vidcap *initialize_video_capture(const char *requested_capture,
|
||||
char *fmt, unsigned int flags)
|
||||
{
|
||||
struct vidcap_type *vt;
|
||||
vidcap_id_t id;
|
||||
vidcap_id_t id = 0;
|
||||
int i;
|
||||
|
||||
if(!strcmp(requested_capture, "none"))
|
||||
@@ -539,6 +539,8 @@ int main(int argc, char *argv[])
|
||||
#ifdef HAVE_SCHED_SETSCHEDULER
|
||||
struct sched_param sp;
|
||||
#endif
|
||||
char *network_device = NULL;
|
||||
|
||||
char *capture_cfg = NULL;
|
||||
char *display_cfg = NULL;
|
||||
char *audio_send = NULL;
|
||||
@@ -546,7 +548,7 @@ int main(int argc, char *argv[])
|
||||
char *jack_cfg = NULL;
|
||||
|
||||
struct state_uv *uv;
|
||||
char *compress_options;
|
||||
char *compress_options = NULL;
|
||||
int ch;
|
||||
int prev_option_set = 0;
|
||||
|
||||
@@ -554,6 +556,11 @@ int main(int argc, char *argv[])
|
||||
unsigned vidcap_flags = 0,
|
||||
display_flags = 0;
|
||||
|
||||
if (argc == 1) {
|
||||
usage();
|
||||
return EXIT_FAIL_USAGE;
|
||||
}
|
||||
|
||||
uv_argc = argc;
|
||||
uv_argv = argv;
|
||||
|
||||
@@ -585,6 +592,7 @@ int main(int argc, char *argv[])
|
||||
uv->requested_mtu = 0;
|
||||
uv->use_ihdtv_protocol = 0;
|
||||
uv->participants = NULL;
|
||||
uv->tx = NULL;
|
||||
|
||||
perf_init();
|
||||
perf_record(UVP_INIT, 0);
|
||||
@@ -679,21 +687,25 @@ int main(int argc, char *argv[])
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
uv->audio = audio_cfg_init (&argv[0], audio_send, audio_recv, jack_cfg);
|
||||
if(audio_does_send_sdi(uv->audio))
|
||||
vidcap_flags |= VIDCAP_FLAG_ENABLE_AUDIO;
|
||||
if(audio_does_receive_sdi(uv->audio))
|
||||
display_flags |= DISPLAY_FLAG_ENABLE_AUDIO;
|
||||
|
||||
if (uv->use_ihdtv_protocol) {
|
||||
if ((argc != 0) && (argc != 1) && (argc != 2)) {
|
||||
usage();
|
||||
return EXIT_FAIL_USAGE;
|
||||
}
|
||||
} else if (argc != 1) {
|
||||
usage();
|
||||
return EXIT_FAIL_USAGE;
|
||||
} else {
|
||||
if (argc == 0) {
|
||||
network_device = "localhost";
|
||||
} else {
|
||||
network_device = (char *) argv[0];
|
||||
}
|
||||
}
|
||||
|
||||
uv->audio = audio_cfg_init (network_device, audio_send, audio_recv, jack_cfg);
|
||||
if(audio_does_send_sdi(uv->audio))
|
||||
vidcap_flags |= VIDCAP_FLAG_ENABLE_AUDIO;
|
||||
if(audio_does_receive_sdi(uv->audio))
|
||||
display_flags |= DISPLAY_FLAG_ENABLE_AUDIO;
|
||||
|
||||
printf("%s\n", ULTRAGRID_VERSION);
|
||||
printf("Display device: %s\n", uv->requested_display);
|
||||
@@ -845,7 +857,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
} else {
|
||||
if ((uv->network_devices =
|
||||
initialize_network(argv[0], uv->participants)) == NULL) {
|
||||
initialize_network(network_device, uv->participants)) == NULL) {
|
||||
printf("Unable to open network\n");
|
||||
return EXIT_FAIL_NETWORK;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user