1.1 --- a/gmyth-stream/gmemcoder/src/main.c Thu Jun 14 20:40:47 2007 +0100
1.2 +++ b/gmyth-stream/gmemcoder/src/main.c Tue Jun 26 14:32:33 2007 +0100
1.3 @@ -81,6 +81,7 @@
1.4 gchar **aopts;
1.5 gchar **files;
1.6 gint i;
1.7 + gboolean ret;
1.8
1.9 GOptionContext *context;
1.10 static const GOptionEntry options[] = {
1.11 @@ -150,40 +151,48 @@
1.12 coder = g_mencoder_new();
1.13 ch = g_io_channel_unix_new(0);
1.14
1.15 - aopts = g_strsplit(audio_opts, ",", 0);
1.16 - vopts = g_strsplit(video_opts, ",", 0);
1.17 + if (audio_opts != NULL)
1.18 + aopts = g_strsplit(audio_opts, ",", 0);
1.19 + else
1.20 + aopts = NULL;
1.21
1.22 - g_mencoder_setup_stream(coder, mux_name,
1.23 - video_encode, vopts, video_fps,
1.24 - video_rate, video_width, video_height,
1.25 - audio_encode, aopts, audio_rate, output_uri);
1.26 + if (video_opts != NULL)
1.27 + vopts = g_strsplit(video_opts, ",", 0);
1.28 + else
1.29 + vopts = NULL;
1.30
1.31 - files = g_strsplit(input_file, ",", 0);
1.32 - for (i = 0; i < g_strv_length(files); i++) {
1.33 - if (!g_mencoder_append_uri(coder, files[i])) {
1.34 - g_debug("Invalid uri: %s", files[i]);
1.35 +
1.36 + ret = g_mencoder_setup_stream(coder, mux_name,
1.37 + video_encode, vopts, video_fps,
1.38 + video_rate, video_width, video_height,
1.39 + audio_encode, aopts, audio_rate, output_uri);
1.40 +
1.41 + if (ret == TRUE) {
1.42 + files = g_strsplit(input_file, ",", 0);
1.43 + for (i = 0; i < g_strv_length(files); i++) {
1.44 + if (!g_mencoder_append_uri(coder, files[i])) {
1.45 + g_debug("Invalid uri: %s", files[i]);
1.46 + }
1.47 }
1.48 + g_strfreev(files);
1.49 }
1.50
1.51 - g_strfreev(files);
1.52 g_strfreev(aopts);
1.53 g_strfreev(vopts);
1.54
1.55
1.56 - g_io_add_watch(ch, G_IO_IN, _io_channel_cb, coder);
1.57 + if (ret == TRUE) {
1.58 + g_io_add_watch(ch, G_IO_IN, _io_channel_cb, coder);
1.59 + g_signal_connect(G_OBJECT(coder),
1.60 + "eos", G_CALLBACK(_mencoder_eos_cb), mainloop);
1.61
1.62 - g_signal_connect(G_OBJECT(coder),
1.63 - "eos", G_CALLBACK(_mencoder_eos_cb), mainloop);
1.64 + g_signal_connect(G_OBJECT(coder),
1.65 + "error", G_CALLBACK(_mencoder_error_cb), mainloop);
1.66
1.67 - g_signal_connect(G_OBJECT(coder),
1.68 - "error", G_CALLBACK(_mencoder_error_cb), mainloop);
1.69 + g_mencoder_play_stream(coder);
1.70 + g_main_loop_run(mainloop);
1.71 + }
1.72
1.73 - g_mencoder_play_stream(coder);
1.74 -
1.75 - g_debug("RUNNING..");
1.76 - g_main_loop_run(mainloop);
1.77 - g_debug("DONE");
1.78 g_object_unref(coder);
1.79 -
1.80 return 0;
1.81 }