int main() { kr_mkv_t *mkv_output; kr_mkv_t *mkv_input; kr_mkv_t *settings; krad_system_init(); // krad_system_log_on("derp.log"); playlist_t *playlist = playlist_init("test.txt"); mkv_output = kr_mkv_create_stream(argv[1], atoi(argv[2]), argv[3], argv[4]); if(splice_init(settings, mkv_output, playlist) < 0) { perror("splice_init"); } printf("resolution: %d x %d\n", mkv_output->tracks[VIDEO_TRACK].width, mkv_output->tracks[VIDEO_TRACK].height); uint32_t i; while(1) { playlist->current_entry = 0; for(i = 0; i < playlist_count(playlist); i++) { if(playlist_current_video(playlist) > 0) { printf("playing: %s\n", playlist_current_video(playlist)); mkv_input = kr_mkv_open_file(playlist_current_video(playlist)); if(!mkv_input) { perror(playlist_current_video(playlist)); } splice(mkv_input, mkv_output); kr_mkv_destroy(&mkv_input); playlist_next(playlist); } } } kr_mkv_destroy(&mkv_output); playlist_destroy(playlist); return(0); }
int main(int argc, char **argv) { int optind; char **playlist_array; int items; struct stat stat_buf; int i; setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); ao_initialize(); stat_format = stat_format_create(); options_init(&options); file_options_init(file_opts); parse_std_configs(file_opts); options.playlist = playlist_create(); optind = parse_cmdline_options(argc, argv, &options, file_opts); audio_play_arg.devices = options.devices; audio_play_arg.stat_format = stat_format; /* Add remaining arguments to playlist */ for (i = optind; i < argc; i++) { if (stat(argv[i], &stat_buf) == 0) { if (S_ISDIR(stat_buf.st_mode)) { if (playlist_append_directory(options.playlist, argv[i]) == 0) fprintf(stderr, _("Warning: Could not read directory %s.\n"), argv[i]); } else { playlist_append_file(options.playlist, argv[i]); } } else /* If we can't stat it, it might be a non-disk source */ playlist_append_file(options.playlist, argv[i]); } /* Do we have anything left to play? */ if (playlist_length(options.playlist) == 0) { cmdline_usage(); exit(1); } else { playlist_array = playlist_to_array(options.playlist, &items); playlist_destroy(options.playlist); options.playlist = NULL; } /* Don't use status_message until after this point! */ status_set_verbosity(options.verbosity); print_audio_devices_info(options.devices); /* Setup buffer */ if (options.buffer_size > 0) { audio_buffer = buffer_create(options.buffer_size, options.buffer_size * options.prebuffer / 100, audio_play_callback, &audio_play_arg, AUDIO_CHUNK_SIZE); if (audio_buffer == NULL) { status_error(_("Error: Could not create audio buffer.\n")); exit(1); } } else audio_buffer = NULL; /* Shuffle playlist */ if (options.shuffle) { int i; srandom(time(NULL)); for (i = 0; i < items; i++) { int j = i + random() % (items - i); char *temp = playlist_array[i]; playlist_array[i] = playlist_array[j]; playlist_array[j] = temp; } } /* Setup signal handlers and callbacks */ ATEXIT (exit_cleanup); signal (SIGINT, signal_handler); signal (SIGTSTP, signal_handler); signal (SIGCONT, signal_handler); signal (SIGTERM, signal_handler); /* Play the files/streams */ i = 0; while (i < items && !sig_request.exit) { play(playlist_array[i]); i++; } playlist_array_destroy(playlist_array, items); exit (0); }
int main (int argc, char **argv) { #ifdef USE_GCONF GConfClient *gconf; #endif char *dir; struct sigaction action; sigset_t sigset; main_status = QUARK_STARTING; /* initialize the locale */ if (!setlocale(LC_ALL, "")) g_warning("Couldn't set locale from environment.\n"); bindtextdomain(PACKAGE_NAME, LOCALEDIR); bind_textdomain_codeset(PACKAGE_NAME, "UTF-8"); textdomain(PACKAGE_NAME); /* set up signal handler */ sigemptyset (&sigset); action.sa_handler = signal_handler; action.sa_mask = sigset; action.sa_flags = SA_NOCLDSTOP; sigaction (SIGTERM, &action, (struct sigaction *) NULL); sigaction (SIGINT, &action, (struct sigaction *) NULL); sigaction (SIGHUP, &action, (struct sigaction *) NULL); g_type_init (); gnome_vfs_init (); #ifdef USE_GCONF gconf = gconf_client_get_default (); gconf_client_add_dir (gconf, QUARK_GCONF_ROOT, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); gconf_client_notify_add (gconf, QUARK_GCONF_ROOT, config_changed, NULL, NULL, NULL); #endif /* make the directory we use in ~ */ dir = g_build_filename (g_get_home_dir(), ".quark", NULL); mkdir (dir, S_IRWXU|S_IRWXG|S_IRWXO); g_free (dir); loop = g_main_loop_new (NULL, FALSE); if (!fifo_open ()) { g_critical("failed to open fifo"); return 1; } music_init (); g_static_mutex_lock (&main_mutex); playlist_init (); #ifdef USE_GCONF config_load (gconf); #endif main_status = QUARK_RUNNING; g_static_mutex_unlock (&main_mutex); g_main_loop_run (loop); g_static_mutex_lock (&main_mutex); main_status = QUARK_EXITING; #ifdef USE_GCONF config_save (gconf); #endif playlist_destroy (); g_static_mutex_unlock (&main_mutex); music_destroy (); fifo_destroy (); g_main_loop_unref (loop); #ifdef USE_GCONF g_object_unref (G_OBJECT (gconf)); #endif gnome_vfs_shutdown (); return 0; }