public Dispatcher(ILogger <Dispatcher <T> > logger, IFrameDecoder <T> decoder, IOutputProducerFactory producerFactory) { _logger = logger; _decoder = decoder; _producerFactory = producerFactory; }
public FrameBuilder(IFrameEncoder encoder, IFrameDecoder decoder) { if (encoder == null) throw new ArgumentNullException("encoder"); if (decoder == null) throw new ArgumentNullException("decoder"); this.Encoder = encoder; this.Decoder = decoder; }
public FrameBuilder(IFrameEncoder encoder, IFrameDecoder decoder) { if (encoder == null) { throw new ArgumentNullException("encoder"); } if (decoder == null) { throw new ArgumentNullException("decoder"); } this.Encoder = encoder; this.Decoder = decoder; }
protected IFrameDecoder retrieveDecoder(Header header, Bitstream stream, int layer) { IFrameDecoder decoder = null; // REVIEW: allow channel output selection type // (LEFT, RIGHT, BOTH, DOWNMIX) switch (layer) { case 3: if (l3decoder == null) { l3decoder = new LayerIIIDecoder(stream, header, filter1, filter2, output, OutputChannels.Both); } decoder = l3decoder; break; case 2: if (l2decoder == null) { l2decoder = new LayerIIDecoder(); l2decoder.create(stream, header, filter1, filter2, output, OutputChannels.Both); } decoder = l2decoder; break; case 1: if (l1decoder == null) { l1decoder = new LayerIDecoder(); l1decoder.create(stream, header, filter1, filter2, output, OutputChannels.Both); } decoder = l1decoder; break; } if (decoder == null) { throw new DecoderException(Errors.UNSUPPORTED_LAYER); } return(decoder); }
protected internal virtual IFrameDecoder RetrieveDecoder(Header header, Bitstream stream, int layer) { IFrameDecoder decoder = null; // REVIEW: allow channel output selection type // (LEFT, RIGHT, BOTH, DOWNMIX) switch (layer) { case 3: if (m_L3Decoder == null) { m_L3Decoder = new LayerIIIDecoder(stream, header, m_LeftChannelFilter, m_RightChannelFilter, m_Output, (int)OutputChannelsEnum.BOTH_CHANNELS); } decoder = m_L3Decoder; break; case 2: if (m_L2Decoder == null) { m_L2Decoder = new LayerIIDecoder(); m_L2Decoder.Create(stream, header, m_LeftChannelFilter, m_RightChannelFilter, m_Output, (int)OutputChannelsEnum.BOTH_CHANNELS); } decoder = m_L2Decoder; break; case 1: if (m_L1Decoder == null) { m_L1Decoder = new LayerIDecoder(); m_L1Decoder.Create(stream, header, m_LeftChannelFilter, m_RightChannelFilter, m_Output, (int)OutputChannelsEnum.BOTH_CHANNELS); } decoder = m_L1Decoder; break; } if (decoder == null) { throw NewDecoderException(DecoderErrors.UNSUPPORTED_LAYER, null); } return(decoder); }
/// <summary> /// Decodes one frame from an MPEG audio bitstream. /// </summary> /// <param name="header"> /// Header describing the frame to decode. /// </param> /// <param name="stream"> /// Bistream that provides the bits for the body of the frame. /// </param> /// <returns> /// A SampleBuffer containing the decoded samples. /// </returns> public virtual ABuffer DecodeFrame(Header header, Bitstream stream) { if (!m_IsInitialized) { Initialize(header); } int layer = header.layer(); m_Output.ClearBuffer(); IFrameDecoder decoder = RetrieveDecoder(header, stream, layer); decoder.DecodeFrame(); m_Output.WriteBuffer(1); return(m_Output); }
/** * Decodes one frame from an MPEG audio bitstream. * * @param header The header describing the frame to decode. * @param bitstream The bistream that provides the bits for te body of the frame. * * @return A SampleBuffer containing the decoded samples. */ public Obuffer decodeFrame(Header header, Bitstream stream) { if (!initialized) { initialize(header); } int layer = header.layer(); output.clear_buffer(); IFrameDecoder decoder = retrieveDecoder(header, stream, layer); decoder.decodeFrame(); output.write_buffer(1); return(output); }
/// <summary> /// Construct a new <see cref="FrameBuilder"></see> class's instance. /// </summary> /// <param name="encoder">Frame encoder.</param> /// <param name="decoder">Frame decoder.</param> /// <exception cref="ArgumentNullException"></exception> public FrameBuilder(IFrameEncoder encoder, IFrameDecoder decoder) { this.Encoder = encoder ?? throw new ArgumentNullException($"{nameof(encoder)}"); this.Decoder = decoder ?? throw new ArgumentNullException($"{nameof(decoder)}"); }