Browse Source

Merge pull request #7 from yedajiang44/master

写入AudioTag
tags/v1.1.0
SmallChi(Koike) 5 years ago
committed by GitHub
parent
commit
474236055a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 9 deletions
  1. +14
    -9
      src/JT1078.Flv/MessagePack/FlvMessagePackWriter_Flv.cs

+ 14
- 9
src/JT1078.Flv/MessagePack/FlvMessagePackWriter_Flv.cs View File

@@ -18,6 +18,9 @@ namespace JT1078.Flv.MessagePack
WriteUInt24(tag.StreamId);
switch (tag.Type)
{
case TagType.Audio:
WriteAudioTags(tag.AudioTagsData);
break;
case TagType.Video:
//VideoTag
WriteVideoTags(tag.VideoTagsData);
@@ -29,11 +32,8 @@ namespace JT1078.Flv.MessagePack
//flv Amf3
WriteAmf3(tag.DataTagsData);
break;
case TagType.Audio:
//todo:VIDEODATA
break;
}
tag.DataSize = GetCurrentPosition() - 11;
tag.DataSize = (GetCurrentPosition() - DataSizePosition - 3 - 7);
WriteInt24Return(tag.DataSize, DataSizePosition);
}

@@ -57,28 +57,33 @@ namespace JT1078.Flv.MessagePack
public void WriteVideoTags(VideoTags videoTags)
{
WriteByte((byte)((byte)videoTags.FrameType | (byte)videoTags.CodecId));
if (videoTags.CodecId== CodecId.AvcVideoPacke)
if (videoTags.CodecId == CodecId.AvcVideoPacke)
{
WriteAvcVideoPacke(videoTags.VideoData);
}
}

public void WriteAudioTags(AudioTags audioTags)
{
WriteArray(audioTags.ToArray());
}

public void WriteAvcVideoPacke(AvcVideoPacke videoPacke)
{
WriteByte((byte)videoPacke.AvcPacketType);
if (videoPacke.AvcPacketType== AvcPacketType.SequenceHeader)
if (videoPacke.AvcPacketType == AvcPacketType.SequenceHeader)
{
//videoPacke.CompositionTime = 0;
WriteUInt24(0);
//AVCDecoderConfigurationRecord
WriteAVCDecoderConfigurationRecord(videoPacke.AVCDecoderConfiguration);
}
else if(videoPacke.AvcPacketType == AvcPacketType.Raw)
else if (videoPacke.AvcPacketType == AvcPacketType.Raw)
{
WriteUInt24(videoPacke.CompositionTime);
if (videoPacke.MultiData != null && videoPacke.MultiData.Count>0)
if (videoPacke.MultiData != null && videoPacke.MultiData.Count > 0)
{
foreach(var item in videoPacke.MultiData)
foreach (var item in videoPacke.MultiData)
{
WriteInt32(item.Length);
WriteArray(item);


Loading…
Cancel
Save