mirror of
https://github.com/badaix/snapcast.git
synced 2025-08-03 16:48:52 +02:00
Add null encoder for use with meta streams
This commit is contained in:
parent
7c1c257501
commit
876f424bae
12 changed files with 137 additions and 22 deletions
|
@ -17,6 +17,7 @@
|
|||
***/
|
||||
|
||||
#include "encoder_factory.hpp"
|
||||
#include "null_encoder.hpp"
|
||||
#include "pcm_encoder.hpp"
|
||||
#if defined(HAS_OGG) && defined(HAS_VORBIS) && defined(HAS_VORBIS_ENC)
|
||||
#include "ogg_encoder.hpp"
|
||||
|
@ -48,6 +49,8 @@ std::unique_ptr<Encoder> EncoderFactory::createEncoder(const std::string& codecS
|
|||
}
|
||||
if (codec == "pcm")
|
||||
return std::make_unique<PcmEncoder>(codecOptions);
|
||||
else if (codec == "null")
|
||||
return std::make_unique<NullEncoder>(codecOptions);
|
||||
#if defined(HAS_OGG) && defined(HAS_VORBIS) && defined(HAS_VORBIS_ENC)
|
||||
else if (codec == "ogg")
|
||||
return std::make_unique<OggEncoder>(codecOptions);
|
||||
|
|
48
server/encoder/null_encoder.cpp
Normal file
48
server/encoder/null_encoder.cpp
Normal file
|
@ -0,0 +1,48 @@
|
|||
/***
|
||||
This file is part of snapcast
|
||||
Copyright (C) 2014-2020 Johannes Pohl
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
#include "null_encoder.hpp"
|
||||
|
||||
|
||||
namespace encoder
|
||||
{
|
||||
|
||||
|
||||
NullEncoder::NullEncoder(const std::string& codecOptions) : Encoder(codecOptions)
|
||||
{
|
||||
headerChunk_.reset(new msg::CodecHeader("null"));
|
||||
}
|
||||
|
||||
|
||||
void NullEncoder::encode(const msg::PcmChunk& chunk)
|
||||
{
|
||||
std::ignore = chunk;
|
||||
}
|
||||
|
||||
|
||||
void NullEncoder::initEncoder()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
std::string NullEncoder::name() const
|
||||
{
|
||||
return "null";
|
||||
}
|
||||
|
||||
} // namespace encoder
|
39
server/encoder/null_encoder.hpp
Normal file
39
server/encoder/null_encoder.hpp
Normal file
|
@ -0,0 +1,39 @@
|
|||
/***
|
||||
This file is part of snapcast
|
||||
Copyright (C) 2014-2020 Johannes Pohl
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
#ifndef NULL_ENCODER_HPP
|
||||
#define NULL_ENCODER_HPP
|
||||
#include "encoder.hpp"
|
||||
|
||||
namespace encoder
|
||||
{
|
||||
|
||||
class NullEncoder : public Encoder
|
||||
{
|
||||
public:
|
||||
NullEncoder(const std::string& codecOptions = "");
|
||||
void encode(const msg::PcmChunk& chunk) override;
|
||||
std::string name() const override;
|
||||
|
||||
protected:
|
||||
void initEncoder() override;
|
||||
};
|
||||
|
||||
} // namespace encoder
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue