static void *thread(void *unused)
{
    struct ev_loop *loop = ev_loop_new(0);
    struct upump_mgr *upump_mgr =
        upump_ev_mgr_alloc(loop, UPUMP_POOL, UPUMP_BLOCKER_POOL);
    assert(upump_mgr != NULL);

    struct upipe *upipe;
    upipe = upipe_void_alloc(&uprobe_test_mgr, uprobe_use(uprobe));
    assert(upump_mgr_get_opaque(upump_mgr, struct upipe *) == NULL);
    uprobe_test_free(upipe);

    uprobe_pthread_upump_mgr_set(uprobe, upump_mgr);
    upipe = upipe_void_alloc(&uprobe_test_mgr, uprobe_use(uprobe));
    assert(upump_mgr_get_opaque(upump_mgr, struct upipe *) == upipe);
    uprobe_test_free(upipe);
    upump_mgr_set_opaque(upump_mgr, NULL);

    uprobe_throw(uprobe, NULL, UPROBE_FREEZE_UPUMP_MGR);
    upipe = upipe_void_alloc(&uprobe_test_mgr, uprobe_use(uprobe));
    assert(upump_mgr_get_opaque(upump_mgr, struct upipe *) == NULL);
    uprobe_test_free(upipe);

    uprobe_throw(uprobe, NULL, UPROBE_THAW_UPUMP_MGR);
    upipe = upipe_void_alloc(&uprobe_test_mgr, uprobe_use(uprobe));
    assert(upump_mgr_get_opaque(upump_mgr, struct upipe *) == upipe);
    uprobe_test_free(upipe);

    upump_mgr_release(upump_mgr);
    ev_loop_destroy(loop);
    return NULL;
}
Пример #2
0
int main(int argc, char **argv)
{
    struct ev_loop *loop = ev_default_loop(0);
    upump_mgr = upump_ev_mgr_alloc(loop);
    assert(upump_mgr != NULL);

    struct uprobe *uprobe = uprobe_upump_mgr_alloc(NULL, upump_mgr);
    assert(uprobe != NULL);

    struct upipe *upipe = uprobe_test_alloc(&uprobe_test_mgr, uprobe);
    uprobe_test_free(upipe);

    uprobe_upump_mgr_free(uprobe);

    upump_mgr_release(upump_mgr);
    return 0;
}
Пример #3
0
/** @This starts the avcodec thread.
 *
 * @param _glxplayer pointer to glxplayer structure
 * @return always NULL
 */
static void *upipe_glxplayer_dec_thread(void *_glxplayer)
{
    struct upipe_glxplayer *glxplayer = (struct upipe_glxplayer *)_glxplayer;

    struct ev_loop *loop = ev_loop_new(0);
    struct upump_mgr *upump_mgr =
        upump_ev_mgr_alloc(loop, UPUMP_POOL, UPUMP_BLOCKER_POOL);
    upipe_xfer_mgr_attach(glxplayer->dec_xfer, upump_mgr);
    uprobe_pthread_upump_mgr_set(glxplayer->uprobe_logger, upump_mgr);
    upump_mgr_release(upump_mgr);

    ev_loop(loop, 0);

    ev_loop_destroy(loop);
    printf("end of avc thread\n");

    return NULL;
}
Пример #4
0
int main(int argc, char** argv)
{
    enum uprobe_log_level loglevel = UPROBE_LOG_LEVEL;
    bool upipe_ts = false;
    int opt;
    // parse options
    while ((opt = getopt(argc, argv, "dt")) != -1) {
        switch (opt) {
            case 'd':
                loglevel--;
                break;
            case 't':
                upipe_ts = true;
                break;
            default:
                break;
        }
    }
    if (optind >= argc) {
        printf("Usage: %s [-d] [-t] filename\n", argv[0]);
        exit(-1);
    }

    const char *uri = argv[optind++];

    // upipe env
    struct ev_loop *loop = ev_default_loop(0);
    struct upump_mgr *upump_mgr =
        upump_ev_mgr_alloc(loop, UPUMP_POOL, UPUMP_BLOCKER_POOL);
    assert(upump_mgr != NULL);
    struct upipe_glxplayer *glxplayer = upipe_glxplayer_alloc(loglevel);
    assert(glxplayer != NULL);

    upipe_glxplayer_play(glxplayer, upump_mgr, uri, upipe_ts);
    upump_mgr_release(upump_mgr);

    ev_loop(loop, 0);

    upipe_glxplayer_free(glxplayer);
    ev_default_destroy();

    return 0; 
}
Пример #5
0
int main(int argc, char **argv)
{
    long flags;
    loop = ev_default_loop(0);
    mgr = upump_ev_mgr_alloc(loop, UPUMP_POOL, UPUMP_BLOCKER_POOL);
    assert(mgr != NULL);

    /* Create a pipe with non-blocking write */
    assert(pipe(pipefd) != -1);
    flags = fcntl(pipefd[1], F_GETFL);
    assert(flags != -1);
    flags |= O_NONBLOCK;
    assert(fcntl(pipefd[1], F_SETFL, flags) != -1);

    /* Create watchers */
    write_idler = upump_alloc_idler(mgr, write_idler_cb, NULL);
    assert(write_idler != NULL);
    write_watcher = upump_alloc_fd_write(mgr, write_watcher_cb, NULL,
                                         pipefd[1]);
    assert(write_watcher != NULL);
    read_timer = upump_alloc_timer(mgr, read_timer_cb, NULL, timeout, 0);
    assert(read_timer != NULL);
    read_watcher = upump_alloc_fd_read(mgr, read_watcher_cb, NULL, pipefd[0]);
    assert(read_watcher != NULL);

    /* Start tests */
    upump_start(write_idler);
    ev_loop(loop, 0);
    assert(bytes_read);
    assert(bytes_read == bytes_written);

    /* Clean up */
    upump_free(write_idler);
    upump_free(write_watcher);
    upump_free(read_timer);
    upump_free(read_watcher);
    upump_mgr_release(mgr);

    ev_default_destroy();
    return 0;
}