[FFmpeg-devel] Match per stream option macro

Chau Pham chaupv79 at hotmail.com
Mon Feb 22 10:12:10 CET 2016


Hello,


Is there anyone help me to explain what does the Macro below do?

This macro is in ffmpeg_opt.c


#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)\
{\
    int i, ret;\
    for (i = 0; i < o->nb_ ## name; i++) {\
        char *spec = o->name[i].specifier;\
        if ((ret = check_stream_specifier(fmtctx, st, spec)) > 0)\
            outvar = o->name[i].u.type;\
        else if (ret < 0)\
            exit_program(1);\
    }\
}



below is my explanation but it can't cover all its functionality


MATCH_PER_STREAM_OPT(OptionsContext *o, char *outvar, AVFormatContext *fmtctx, AVStream *st){
int i, ret;

for (i = 0; i < o->nb_stream_maps; i++) {
char *spec = o->codec_names[i].specifier;

if ((ret = check_stream_specifier(fmtctx, st, spec)) > 0)
outvar = (char*)o->codec_names[i].u.str;
else if (ret < 0)
exit_program(1);
}
}



Thanks.



More information about the ffmpeg-devel mailing list