Error C4576 in VS2015 enterprise

Despite what some other answers incorrectly claim, VS2015 compiler provides comprehensive support for C99 features, including the compound literal feature you are trying to use in that problematic line.

One possible explanation for the error message is that it the source file, despite being named as .c file, is being compiled as C++ file. The project settings might explicitly request C++ compiler for this file. In C++ this code is invalid.

Check your compilation settings to see if it by any chance includes a /TP ("compile as C++") switch.


Old question, but... The solution is pretty simple:

AVRational tb;
tb.num = 1;
tb.den = enc_ctx->sample_rate;

enc_ctx->time_base = tb;

or

enc_ctx->time_base.num = 1;
enc_ctx->time_base.den = enc_ctx->sample_rate;