Пример #1
0
static av_cold int init(AVFilterContext *ctx, const char *args0, void *opaque)
{
    ABufferSourceContext *abuffer = ctx->priv;
    char *arg = NULL, *ptr, chlayout_str[16];
    char *args = av_strdup(args0);
    int ret;

    arg = av_strtok(args, ":", &ptr);

#define ADD_FORMAT(fmt_name)                                            \
    if (!arg)                                                           \
        goto arg_fail;                                                  \
    if ((ret = ff_parse_##fmt_name(&abuffer->fmt_name, arg, ctx)) < 0) { \
        av_freep(&args);                                                \
        return ret;                                                     \
    }                                                                   \
    if (*args)                                                          \
        arg = av_strtok(NULL, ":", &ptr)

    ADD_FORMAT(sample_rate);
    ADD_FORMAT(sample_format);
    ADD_FORMAT(channel_layout);
    ADD_FORMAT(packing_format);

    abuffer->fifo = av_fifo_alloc(FIFO_SIZE*sizeof(AVFilterBufferRef*));
    if (!abuffer->fifo) {
        av_log(ctx, AV_LOG_ERROR, "Failed to allocate fifo, filter init failed.\n");
        return AVERROR(ENOMEM);
    }

    av_get_channel_layout_string(chlayout_str, sizeof(chlayout_str),
                                 -1, abuffer->channel_layout);
    av_log(ctx, AV_LOG_INFO, "format:%s layout:%s rate:%d\n",
           av_get_sample_fmt_name(abuffer->sample_format), chlayout_str,
           abuffer->sample_rate);
    av_freep(&args);

    return 0;

arg_fail:
    av_log(ctx, AV_LOG_ERROR, "Invalid arguments, must be of the form "
                              "sample_rate:sample_fmt:channel_layout:packing\n");
    av_freep(&args);
    return AVERROR(EINVAL);
}
Пример #2
0
int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout)
{
    av_assert1(!(*l && (*l)->all_layouts));
    ADD_FORMAT(l, channel_layout, uint64_t, channel_layouts, nb_channel_layouts);
    return 0;
}
Пример #3
0
int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout)
{
    ADD_FORMAT(l, channel_layout, uint64_t, channel_layouts, nb_channel_layouts);
}
Пример #4
0
ThumbSettings::ThumbSettings() : VerticalConfigurationGroup()
{
    setLabel(tr("Thumbnails"));
    
    HostComboBox *order = new HostComboBox("GalleryImageOrder");
    order->setLabel(tr("Image Order"));
    order->setHelpText(tr("The order that pictures/videos are shown in thumbnail "
                          "view and ordered slideshows."));
    order->addSelection(tr("Filename (A-Z)"), QString::number(kSortByNameAsc));
    order->addSelection(tr("Reverse Filename (Z-A)"), QString::number(kSortByNameDesc));
    order->addSelection(tr("Exif Date (oldest first)"), QString::number(kSortByDateAsc));
    order->addSelection(tr("Reverse Exif Date (newest first)"), QString::number(kSortByDateDesc));
    order->addSelection(tr("File Modified Time (oldest first)"), QString::number(kSortByModTimeAsc));
    order->addSelection(tr("Reverse File Modified Time (newest first)"), QString::number(kSortByModTimeDesc));
    order->addSelection(tr("File Extension (A-Z)"), QString::number(kSortByExtAsc));
    order->addSelection(tr("Reverse File Extension (Z-A)"), QString::number(kSortByExtDesc));
    order->addSelection(tr("File Size (smallest first)"), QString::number(kSortBySizeAsc));
    order->addSelection(tr("Reverse File Size (largest first)"), QString::number(kSortBySizeDesc));
    addChild(order);
    
    HostComboBox *orderDir = new HostComboBox("GalleryDirOrder");
    orderDir->setLabel(tr("Directory Order"));
    orderDir->setHelpText(tr("The order that dirctories are shown and traversed "
                             "in recursive slideshows."));
    orderDir->addSelection(tr("Filename (A-Z)"), QString::number(kSortByNameAsc));
    orderDir->addSelection(tr("Reverse Filename (Z-A)"), QString::number(kSortByNameDesc));
    orderDir->addSelection(tr("File Modified Time (oldest first)"), QString::number(kSortByModTimeAsc));
    orderDir->addSelection(tr("Reverse File Modified Time (newest first)"), QString::number(kSortByModTimeDesc));
    addChild(orderDir);
    
    HostComboBox *fmt = new HostComboBox("GalleryDateFormat");
    fmt->setLabel(tr("Date Format"));
    
    QDateTime sampdate = MythDate::fromString("2002-05-03");
    
    ADD_FORMAT(sampdate, "dd/MM/yy");
    ADD_FORMAT(sampdate, "dd-MM-yy");
    ADD_FORMAT(sampdate, "d/M/yy");
    ADD_FORMAT(sampdate, "d-M-yy");
    ADD_FORMAT(sampdate, "MM/dd/yy");
    ADD_FORMAT(sampdate, "MM-dd-yy");
    ADD_FORMAT(sampdate, "M/d/yy");
    ADD_FORMAT(sampdate, "M-d-yy");
    ADD_FORMAT(sampdate, "yyyy/MM/dd");
    ADD_FORMAT(sampdate, "yyyy-MM-dd");
    ADD_FORMAT(sampdate, QString("yyyy") % QChar(0x5E74) %
               "M" % QChar(0x6708) % "d" % QChar(0x65E5)); // yyyy年M月d日
    
    fmt->setHelpText(tr("Date format of thumbnail captions. Other places use the system date format. "
                        "Sample shows 3rd May 2002."));
    addChild(fmt);
}