+ if( scan_options(asset->ff_video_options, sopts) ) {
+ eprintf("FFMPEG::open_encoder: bad video options %s:%s\n",
+ codec_name, filename);
+ ret = 1;
+ break;
+ }
+ if( asset->ff_video_bitrate > 0 ) {
+ ctx->bit_rate = asset->ff_video_bitrate;
+ char arg[BCSTRLEN];
+ sprintf(arg, "%d", asset->ff_video_bitrate);
+ av_dict_set(&sopts, "b", arg, 0);
+ }
+ else if( asset->ff_video_quality > 0 ) {
+ ctx->global_quality = asset->ff_video_quality * FF_QP2LAMBDA;
+ ctx->qmin = ctx->qmax = asset->ff_video_quality;
+ ctx->mb_lmin = ctx->qmin * FF_QP2LAMBDA;
+ ctx->mb_lmax = ctx->qmax * FF_QP2LAMBDA;
+ ctx->flags |= CODEC_FLAG_QSCALE;
+ char arg[BCSTRLEN];
+ av_dict_set(&sopts, "flags", "+qscale", 0);
+ sprintf(arg, "%d", asset->ff_video_quality);
+ av_dict_set(&sopts, "qscale", arg, 0);
+ sprintf(arg, "%d", ctx->global_quality);
+ av_dict_set(&sopts, "global_quality", arg, 0);
+ }