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:
Martin Pulec
2011-10-11 19:01:02 +02:00
parent daea458d42
commit f568fc5187
5 changed files with 35 additions and 19 deletions

View File

@@ -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);

View File

@@ -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
}

View File

@@ -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 =

View File

@@ -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);

View File

@@ -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 {