Exemplo n.º 1
0
        /// <summary>
        /// Default constructor
        /// </summary>
        /// <param name="msd"></param>
        public H264Parser(SampleBuffer outputBuffer, IContainerMetadata metadata, HLSStream hlsStream)
            : base(outputBuffer, hlsStream)
        {
            string[] resolution = null;

            string s;
            if (metadata.Attributes != null &&
                metadata.Attributes.TryGetValue(HLSPlaylistMetaKeys.Resolution, out s))
            {
                string[] components = s.Split(new char[] { 'x' });
                if (components != null && components.Length == 2)
                    resolution = components;
            }

            if (resolution == null)
            {
                HLSTrace.WriteLine("Missing 'Resolution' tag in HLS MetaKeys, defaulting to the maximum supported resolution of 1280x720.");
                resolution = new string[] { "1280", "720" };
            }

            Dictionary<MediaStreamAttributeKeys, string> streamAttributes = new Dictionary<MediaStreamAttributeKeys, string>();
            streamAttributes[MediaStreamAttributeKeys.VideoFourCC] = "H264";
            streamAttributes[MediaStreamAttributeKeys.Width] = resolution[0];
            streamAttributes[MediaStreamAttributeKeys.Height] = resolution[1];
            Description = new MediaStreamDescription(MediaStreamType.Video, streamAttributes);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Constructor for pass-through reading without decrypting
 /// </summary>
 /// <param name="stream"></param>
 public EncryptedStream(Stream stream, DateTime RequestStartTime, HttpWebResponse response, bool discontinuity, HLSStream hlsStream)
 {
     _stream = stream;
     _response = response;
     _discontinuity = discontinuity;
     _hlsStream = hlsStream;
     _requestStartTime = RequestStartTime;
 }
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="msd"></param>
 public ADTSParser(SampleBuffer outputBuffer, HLSStream hlsStream)
     : base(outputBuffer, hlsStream)
 {
     _bitstream = new BitstreamReader();
 }
Exemplo n.º 4
0
        /// <summary>
        /// Default constructor
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="decryptor"></param>
        /// <param name="bufferSize"></param>
        public EncryptedStream(Stream stream, DateTime RequestStartTime, HttpWebResponse response, bool discontinuity, ICryptoTransform decryptor, int bufferSize, HLSStream hlsStream)
        {
            _stream = stream;
            _response = response;
            _discontinuity = discontinuity;
            _decryptor = decryptor;

            _hlsStream = hlsStream;
            _requestStartTime = RequestStartTime;

            if (decryptor != null)
            {
                bufferSize = (bufferSize/_decryptor.InputBlockSize + 2) * _decryptor.InputBlockSize;
                _decryptBuffer = new byte[bufferSize];
                _swapBuffer = new byte[bufferSize];
            }
        }
 /// <summary>
 /// Default constructor.
 /// </summary>
 /// <param name="msd"></param>
 public MediaFormatParser(SampleBuffer outputBuffer, HLSStream hlsStream)
 {
     _outputBuffer = outputBuffer;
     _byteBuffer = new byte[InitialBufferSize];
     _hlsStream = hlsStream;
 }
Exemplo n.º 6
0
 public Sample AllocSample(long timestamp, long duration, uint bitrate, HLSStream hlsStream, int dataSize)
 {
     lock (this)
     {
         if (0 == _sampleWrapperPool.Count)
         {
             Sample sample = new Sample(timestamp, duration, bitrate, hlsStream, dataSize, _msd, this);
             return sample;
         }
         else
         {
             Sample sample = _sampleWrapperPool.Dequeue();
             sample.Reset(timestamp, duration, bitrate, hlsStream, dataSize, _msd, this);
             return sample;
         }
     }
 }
Exemplo n.º 7
0
 public void Reset(long timestamp, long duration, uint bitrate, HLSStream hlsStream, int dataSize, MediaStreamDescription msd, SampleBuffer buffer)
 {
     _timestamp = timestamp;
     _duration = duration;
     _bitrate = bitrate;
     _hlsStream = hlsStream;
     _msd = msd;
     _isKeyFrame = false;
     _adjustedTimeStamp = 0;
     if (dataSize != -1 && null != buffer)
     {
         _dataItem = buffer.FIFOMemoryPool.Alloc(dataSize);
     }
     else
     {
         _dataItem = null;
     }
     _sampleBuffer = buffer;
 }
Exemplo n.º 8
0
        /// <summary>
        /// Default constructor
        /// </summary>
        /// <param name="timestamp"></param>
        /// <param name="timestamp">Sample timestamp in HNS units</param>
        /// <param name="duration">Sample duartion in HNS units</param>
        /// <param name="bitrate">Bitrate of the stream that this sample was created from</param>
        public Sample(long timestamp, long duration, uint bitrate, HLSStream hlsStream, int dataSize, MediaStreamDescription msd, SampleBuffer buffer)
        {
            if (null == _keyFrameAttr)
            {
                _keyFrameAttr = new Dictionary<MediaSampleAttributeKeys,string>();
                _keyFrameAttr[MediaSampleAttributeKeys.KeyFrameFlag] = Boolean.TrueString;
            }

            if (null == _nonKeyFrameAttr)
            {
                _nonKeyFrameAttr = new Dictionary<MediaSampleAttributeKeys,string>();
                _nonKeyFrameAttr[MediaSampleAttributeKeys.KeyFrameFlag] = Boolean.FalseString;
            }

            Reset(timestamp, duration, bitrate, hlsStream, dataSize, msd, buffer);
        }