From b4c6a2199c28753c49cabe668066f915fd22ad6c Mon Sep 17 00:00:00 2001 From: philippegorley <philippe.gorley@savoirfairelinux.com> Date: Tue, 5 Jun 2018 14:24:43 -0400 Subject: [PATCH] encoder: add file metadata Allows title and description to be specified when muxing to a file. Change-Id: Ie48c185a0177e09872867520ab1aabfddeacbb8a Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com> --- src/media/media_encoder.cpp | 6 ++++++ test/unitTest/media/test_media_encoder.cpp | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp index 56c4046aa7..91f3ab05e8 100644 --- a/src/media/media_encoder.cpp +++ b/src/media/media_encoder.cpp @@ -160,6 +160,12 @@ MediaEncoder::openFileOutput(const std::string& filename, std::map<std::string, { avformat_free_context(outputCtx_); avformat_alloc_output_context2(&outputCtx_, nullptr, nullptr, filename.c_str()); + + if (!options["title"].empty()) + av_dict_set(&outputCtx_->metadata, "title", options["title"].c_str(), 0); + if (!options["description"].empty()) + av_dict_set(&outputCtx_->metadata, "description", options["description"].c_str(), 0); + auto bitrate = SystemCodecInfo::DEFAULT_MAX_BITRATE; auto quality = SystemCodecInfo::DEFAULT_CODEC_QUALITY; // ensure all options retrieved later on are in options_ (insert does nothing if key exists) diff --git a/test/unitTest/media/test_media_encoder.cpp b/test/unitTest/media/test_media_encoder.cpp index 2a1fb24eb5..a251b518a7 100644 --- a/test/unitTest/media/test_media_encoder.cpp +++ b/test/unitTest/media/test_media_encoder.cpp @@ -150,6 +150,8 @@ MediaEncoderTest::testMultiStream() const constexpr int width = 320; const constexpr int height = 240; std::map<std::string, std::string> options; + options["title"] = "Encoder Unit Test"; + options["description"] = "Description goes here"; options["sample_rate"] = std::to_string(sampleRate); options["channels"] = std::to_string(nbChannels); options["width"] = std::to_string(width); -- GitLab