void ElementsComuns::creacomuns(int k, QString ref) { QString sbin("_bin_%1"), stee("_tee_%1"), squeue("_queue_%1"),squeue_m("_queue_mix_%1"); bin = gst_bin_new ((char*)sbin.prepend(ref).arg(k).toStdString().c_str()); tee = gst_element_factory_make("tee", (char*)stee.prepend(ref).arg(k).toStdString().c_str()); queue = gst_element_factory_make("queue2", (char*)squeue.prepend(ref).arg(k).toStdString().c_str()); queue_mix = gst_element_factory_make("queue2", (char*)squeue_m.prepend(ref).arg(k).toStdString().c_str()); //Comprovem que s'han pogut crear tots els elements d'entrada if(!bin || !tee || !queue || !queue_mix){ g_printerr ("Un dels elements de comuns no s'ha pogut crear. Sortint.\n"); } }
int main(int argc, char *argv[]) { int fd, index; if (argc < 2) return usage(argv[0]); if (check_input_pipe()) return usage(argv[0]); index = parse_options(argc, argv); if (index == -1 || index + 1 > argc) return usage(argv[0]); fd = open(argv[index], O_WRONLY | O_CREAT | O_TRUNC, 0644); if (fd < 0) return error("open output"); do { int tee_len = stee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, 0); if (tee_len < 0) { if (errno == EAGAIN) { usleep(1000); continue; } return error("tee"); } else if (!tee_len) break; /* * Send output to file, also consumes input pipe. */ if (do_splice(STDIN_FILENO, fd, tee_len, "splice-file")) break; } while (1); return 0; }