diff -r cb885ee44618 -r 6620b7037407 gmyth-stream/gmemcoder/src/main.c --- a/gmyth-stream/gmemcoder/src/main.c Thu Jun 14 20:40:47 2007 +0100 +++ b/gmyth-stream/gmemcoder/src/main.c Tue Jun 26 14:32:33 2007 +0100 @@ -81,6 +81,7 @@ gchar **aopts; gchar **files; gint i; + gboolean ret; GOptionContext *context; static const GOptionEntry options[] = { @@ -150,40 +151,48 @@ coder = g_mencoder_new(); ch = g_io_channel_unix_new(0); - aopts = g_strsplit(audio_opts, ",", 0); - vopts = g_strsplit(video_opts, ",", 0); + if (audio_opts != NULL) + aopts = g_strsplit(audio_opts, ",", 0); + else + aopts = NULL; - g_mencoder_setup_stream(coder, mux_name, - video_encode, vopts, video_fps, - video_rate, video_width, video_height, - audio_encode, aopts, audio_rate, output_uri); + if (video_opts != NULL) + vopts = g_strsplit(video_opts, ",", 0); + else + vopts = NULL; - files = g_strsplit(input_file, ",", 0); - for (i = 0; i < g_strv_length(files); i++) { - if (!g_mencoder_append_uri(coder, files[i])) { - g_debug("Invalid uri: %s", files[i]); + + ret = g_mencoder_setup_stream(coder, mux_name, + video_encode, vopts, video_fps, + video_rate, video_width, video_height, + audio_encode, aopts, audio_rate, output_uri); + + if (ret == TRUE) { + files = g_strsplit(input_file, ",", 0); + for (i = 0; i < g_strv_length(files); i++) { + if (!g_mencoder_append_uri(coder, files[i])) { + g_debug("Invalid uri: %s", files[i]); + } } + g_strfreev(files); } - g_strfreev(files); g_strfreev(aopts); g_strfreev(vopts); - g_io_add_watch(ch, G_IO_IN, _io_channel_cb, coder); + if (ret == TRUE) { + g_io_add_watch(ch, G_IO_IN, _io_channel_cb, coder); + g_signal_connect(G_OBJECT(coder), + "eos", G_CALLBACK(_mencoder_eos_cb), mainloop); - g_signal_connect(G_OBJECT(coder), - "eos", G_CALLBACK(_mencoder_eos_cb), mainloop); + g_signal_connect(G_OBJECT(coder), + "error", G_CALLBACK(_mencoder_error_cb), mainloop); - g_signal_connect(G_OBJECT(coder), - "error", G_CALLBACK(_mencoder_error_cb), mainloop); + g_mencoder_play_stream(coder); + g_main_loop_run(mainloop); + } - g_mencoder_play_stream(coder); - - g_debug("RUNNING.."); - g_main_loop_run(mainloop); - g_debug("DONE"); g_object_unref(coder); - return 0; }