Exemple #1
0
int kr_streamer_destroy (kr_streamer_t **streamer) {

  int c;

  if ((streamer == NULL) || (*streamer == NULL)) {
    return -1;
  }

  krad_vpx_encoder_destroy (&(*streamer)->vpx_enc);
  kr_mkv_destroy (&(*streamer)->mkv);
  kr_audioport_disconnect((*streamer)->audioport);
  kr_audioport_destroy ((*streamer)->audioport);
  kr_videoport_deactivate ((*streamer)->videoport);
  kr_videoport_destroy ((*streamer)->videoport);
  kr_client_destroy (&(*streamer)->client);
  krad_vorbis_encoder_destroy (&(*streamer)->vorbis_enc);
  for (c = 0; c < (*streamer)->params->channels; c++) {
    krad_ringbuffer_free ((*streamer)->audio_ring[c]);
  }
  krad_ringbuffer_free ((*streamer)->frame_ring);
  krad_framepool_destroy (&(*streamer)->framepool);
  free (*streamer);
  *streamer = NULL;
  return 0;
}
Exemple #2
0
int main (int argc, char *argv[]) {

	kr_client_t *kr;
	kr_videoport_t *kr_videoport;

	if (argc != 2) {
		if (argc > 2) {
			fprintf (stderr, "Only takes station argument.\n");
		} else {
			fprintf (stderr, "No station specified.\n");
		}
		return 1;
	}
		
	kr = kr_connect (argv[1]);
	
	if (kr == NULL) {
		fprintf (stderr, "Could not connect to %s krad radio daemon.\n", argv[1]);
		return 1;
	}	

	kr_videoport = kr_videoport_create (kr);

	if (kr_videoport != NULL) {
		printf ("i worked real good\n");
	}
	
	kr_videoport_set_callback (kr_videoport, videoport_process, NULL);
	
	kr_videoport_activate (kr_videoport);
	
	usleep (8000000);
	
	kr_videoport_deactivate (kr_videoport);
	
	kr_videoport_destroy (kr_videoport);

	kr_disconnect (kr);

	return 0;
	
}
void kr_videoport_destroy (kr_videoport_t *kr_videoport) {

  if (kr_videoport->active == 1) {
    kr_videoport_deactivate (kr_videoport);
  }

  kr_videoport_destroy_cmd (kr_videoport->client);

  if (kr_videoport != NULL) {
    if (kr_videoport->sd != 0) {
      close (kr_videoport->sd);
      kr_videoport->sd = 0;
    }
    if (kr_videoport->kr_shm != NULL) {
      kr_shm_destroy (kr_videoport->kr_shm);
      kr_videoport->kr_shm = NULL;
    }
    free(kr_videoport);
  }
}
Exemple #4
0
int main (int argc, char *argv[]) {

  int ret;
	uint32_t width;
	uint32_t height;
	kr_client_t *client;
	kr_videoport_t *videoport;
  kr_udp_recvr_t *udp_recvr;
  int port;
  
  port = 3777;
  ret = 0;

	if (argc < 2) {
		if (argc > 2) {
			fprintf (stderr, "Only takes station argument.\n");
		} else {
			fprintf (stderr, "No station specified.\n");
		}
		return 1;
	}
	
	if (argc > 2) {
	  port = atoi (argv[2]);
	}	
	
	client = kr_client_create ("krad videoport client");

	if (client == NULL) {
		fprintf (stderr, "Could not create KR client.\n");
		return 1;
	}	

  kr_connect (client, argv[1]);
  
  if (!kr_connected (client)) {
		fprintf (stderr, "Could not connect to %s krad radio daemon.\n", argv[1]);
	  kr_client_destroy (&client);
	  return 1;
  }
	
  if (kr_compositor_get_info_wait (client, &width, &height, NULL, NULL) != 1) {
	  kr_client_destroy (&client);
	  return 1;
  }
  
  if (kr_compositor_get_info_wait (client, &width, &height, NULL, NULL) != 1) {
    fprintf (stderr, "Could not get compositor info!\n");
	  kr_client_destroy (&client);
	  return 1;
  }

	videoport = kr_videoport_create (client, INPUT);

	if (videoport == NULL) {
		fprintf (stderr, "Could not make videoport.\n");
	  kr_client_destroy (&client);
	  return 1;
	} else {
		printf ("Working!\n");
	}

  udp_recvr = calloc (1, sizeof (kr_udp_recvr_t));
  
  udp_recvr->width = width;
  udp_recvr->height = height;
	
	udp_recvr->client = client;
	udp_recvr->videoport = videoport;
	
	kr_videoport_set_callback (videoport, videoport_process, udp_recvr);
	
  signal (SIGINT, signal_recv);
  signal (SIGTERM, signal_recv);	
	
	kr_videoport_activate (videoport);
	
  kr_udp_recvr (udp_recvr, port);	
	
	kr_videoport_deactivate (videoport);
	
	kr_videoport_destroy (videoport);

	kr_client_destroy (&client);

	if (udp_recvr->frames > 0) {
		printf ("Rendered %d frames!\n", udp_recvr->frames);
	}

  free (udp_recvr);

	if (ret == 0) {
		printf ("Worked!\n");
	}

	return ret;	
}