2016-05-06 21 views
0

Es gibt eine Option für Video-Größe zu erklären:AVOptions für Videogröße Komponenten

av_dict_set(&options, "video_size", "1920x1080", 0); 

es irgendwelche gleichwertige Optionen für die Größe Komponenten? Wie:

av_dict_set_int(&options, VIDEO_WIDTH_OPT_STR , 1920, 0); 
av_dict_set_int(&options, VIDEO_HEIGHT_OPT_STR, 1080, 0); 

Was wären die Werte für diese Makros (falls vorhanden)?

#define VIDEO_WIDTH_OPT_STR "?" 
#define VIDEO_HEIGHT_OPT_STR "?" 

Bitte beachten Sie, ich bin mir dessen bewusst man snprintf, das ist nicht meine Sorge, danke.

Antwort

2

Sie können hinzufügen, was auch immer Sie im Wörterbuch möchten, es ist nur ein Container. video_size wird zu zwei Ganzzahlen für die Formate geparst, die es zum Beispiel verwenden. Siehe AV_OPT_TYPE_IMAGE_SIZE in libavutil/opt.c.

Sie können Ihre eigenen Optionen (AVOption) für eine Klasse definieren. Sie können also keine zwei Optionen wie video_width und video_height hinzufügen und über ein Wörterbuch initialisieren.

static const AVOption options[] = { 
    { "video_width", "frame width", OFFSET(width), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, INT_MAX, DEC }, 
    { "video_height", "frame height", OFFSET(height), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, INT_MAX, DEC }, 
    { NULL } 
}; 

static const AVClass some_class = { 
    [...] 
    .option  = options, 
    [...] 
} 

wo width und height sind Mitglieder der Struktur von Ihrem Format verwendet.

+0

Interessant, danke. – sharpener

Verwandte Themen