mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
BluRay LPCM audio reader: initial version
This commit is contained in:
59
CUETools.Codecs.BDLPCM/TsStream.cs
Normal file
59
CUETools.Codecs.BDLPCM/TsStream.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace CUETools.Codecs.BDLPCM
|
||||
{
|
||||
internal class TsStream
|
||||
{
|
||||
internal UInt16 channel; // channel number (1,2 ...)
|
||||
internal int streamId; // stream number in channel
|
||||
internal byte type; // 0xff - not ES
|
||||
internal AudioPCMConfig pcm;
|
||||
internal byte[] savedBuffer;
|
||||
internal int savedBufferOffset;
|
||||
internal int savedBufferSize;
|
||||
|
||||
internal byte[] psi; // PAT,PMT cache (only for PSI streams)
|
||||
internal int psi_len;
|
||||
internal int psi_offset;
|
||||
internal int psi_table;
|
||||
internal bool at_packet_header;
|
||||
|
||||
internal byte ts_stream_id; // MPEG stream id
|
||||
|
||||
internal bool is_opened;
|
||||
|
||||
internal UInt64 dts; // current MPEG stream DTS (presentation time for audio, decode time for video)
|
||||
internal UInt64 first_dts;
|
||||
internal UInt64 first_pts;
|
||||
internal UInt64 last_pts;
|
||||
internal UInt32 frame_length; // frame length in ticks (90 ticks = 1 ms, 90000/frame_length=fps)
|
||||
internal UInt32 frame_size; // frame size in bytes
|
||||
internal UInt64 frame_num; // frame counter
|
||||
|
||||
internal TsStream()
|
||||
{
|
||||
is_opened = false;
|
||||
psi = new byte[512];
|
||||
psi_len = 0;
|
||||
psi_offset = 0;
|
||||
psi_table = 0;
|
||||
channel = 0xffff;
|
||||
streamId = 0;
|
||||
type = 0xff;
|
||||
ts_stream_id = 0;
|
||||
dts = 0;
|
||||
first_dts = 0;
|
||||
first_pts = 0;
|
||||
last_pts = 0;
|
||||
frame_length = 0;
|
||||
frame_size = 0;
|
||||
frame_num = 0;
|
||||
pcm = null;
|
||||
savedBuffer = new byte[192];
|
||||
savedBufferOffset = 0;
|
||||
savedBufferSize = 0;
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user