X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=audio_encoder.cpp;h=ac1c8f509f9aae5057335e3234dd2c2b123e6aa4;hb=3be00c8dd8b841cecc44f57234b9fc2d3a94cb45;hp=2b735e4d44f5ff27b95588032fd3e73459ff7e64;hpb=e1a58f0f4e9cd05441f1e1b43fc4c83d1f862dd7;p=nageru diff --git a/audio_encoder.cpp b/audio_encoder.cpp index 2b735e4..ac1c8f5 100644 --- a/audio_encoder.cpp +++ b/audio_encoder.cpp @@ -21,7 +21,7 @@ extern "C" { using namespace std; -AudioEncoder::AudioEncoder(const string &codec_name, int bit_rate) +AudioEncoder::AudioEncoder(const string &codec_name, int bit_rate, const AVOutputFormat *oformat) { AVCodec *codec = avcodec_find_encoder_by_name(codec_name.c_str()); if (codec == nullptr) { @@ -36,7 +36,9 @@ AudioEncoder::AudioEncoder(const string &codec_name, int bit_rate) ctx->channels = 2; ctx->channel_layout = AV_CH_LAYOUT_STEREO; ctx->time_base = AVRational{1, TIMEBASE}; - ctx->flags |= CODEC_FLAG_GLOBAL_HEADER; + if (oformat->flags & AVFMT_GLOBALHEADER) { + ctx->flags |= CODEC_FLAG_GLOBAL_HEADER; + } if (avcodec_open2(ctx, codec, NULL) < 0) { fprintf(stderr, "Could not open codec '%s'\n", codec_name.c_str()); exit(1);