GLOBAL(void)jpeg_start_compress(j_compress_ptr cinfo, boolean write_all_tables)
{
    // DHKIM
    //  cinfo->raw_data_in = 1;

    if (cinfo->global_state != CSTATE_START)
        ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);

    if (write_all_tables)
        jpeg_suppress_tables(cinfo, FALSE);
    /* mark all tables to be written */

    /* (Re)initialize error mgr and destination modules */
    //  (*cinfo->err->reset_error_mgr) ((j_common_ptr) cinfo);
#ifndef JPEG_ENC_OPT  //bmy 04.12.29 jpeg_enc_opt +
    init_destination(cinfo);
#endif //bmy 04.12.29 jpeg_enc_opt +
    /* Perform master selection of active modules */
    jinit_compress_master(cinfo);
    /* Set up for the first pass */
    prepare_for_pass(cinfo);
    /* Ready for application to drive first pass through jpeg_write_scanlines
     * or jpeg_write_raw_data.
     */
    //  cinfo->next_scanline = 0;


    cinfo->global_state = CSTATE_SCANNING;
}
示例#2
0
int
main (int argc, char **argv)
{
  struct destination dest;
  struct key key;

  init_destination (&dest, &argc, argv);
  init_code_to_string ();

  while (!feof (stdin))
    {
      if (read_key (&key) == EOF)
	break;

      send_key (&dest, &key);
    }

  return 0;
}
int main(int argc, char** argv){
  struct sockaddr_in sock;
  int my_sock_fd, i;
  unsigned short port = 57843;
  char is_sink = false;

  if(argc < 3){
    printf("Usage: %s -i <interface> [-r samples_per_second | -sp sink_port | -p port | -e] [-s]\n",argv[0]);
    exit(-1);
  }

  for(i = 1; i < argc;){
    if(strcmp(argv[i], "-e") == 0){
      emulate_ts = true;
      i++;
      continue;
    }
    if(strcmp(argv[i], "-s") == 0){
      is_sink = true;
      i++;
      continue;
    }
    if(strcmp(argv[i], "-r") == 0){
      samples_per_second = parse_samples_per_second(argv[i + 1]);
      i+=2;
      continue;
    }
    if(strcmp(argv[i], "-i") == 0){
      iface = argv[i + 1];
      i+=2;
      continue;
    }
    if(strcmp(argv[i], "-p") == 0){
      port = atoi(argv[i + 1]);
      i+=2;
      continue;
    }
    if(strcmp(argv[i], "-sp") == 0){
      sink_dport = atoi(argv[i + 1]);
      i+=2;
      continue;
    }
  }

  if(is_sink)
    printf("Acting as sink.\n");

  my_sock_fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  if(my_sock_fd == -1){
    log(E, "Cannot open my socket\n");
    exit(-1);
  }

  memset(& sock, 0, sizeof(sock));
  sock.sin_family = AF_INET;
  sock.sin_port = htons(port);
  sock.sin_addr = get_ip_from_iface();

  if(bind(my_sock_fd, (struct sockaddr *) &sock, sizeof(sock)) == -1){
    log(E, "Unnable to bind socket\n");
    exit(-1);
  }

  printf("Bound to %s:%u\n", inet_ntoa(sock.sin_addr), port);

  init_statistics();
  signal(SIGINT,(void*) cleanup);
  if(is_sink){
    serve(my_sock_fd);
  }
  else{
    init_destination();
    if(emulate_ts)
      printf("Emulating timestamp.\n");
    printf("Sampling at %u\n", samples_per_second);
    collect(my_sock_fd);
  }
  return 0;
}