Example #1
0
//---------------------------------------------------------------------------
void File_Nut::Header_Parse()
{
    //Parsing
    int8u  N;
    Peek_B1(N);
    if (N==0x4E) //'N'
    {
        //Header
        int64u startcode, forward_ptr;
        Get_B8(startcode,                                       "startcode");
        Get_VS(forward_ptr,                                     "forward_ptr");
        if (forward_ptr>4096)
            Skip_B4(                                            "header_checksum");

        Header_Fill_Code(startcode, Ztring().From_Number(startcode, 16)); //Quick filling for CC8 with text
        Header_Fill_Size(Element_Offset+forward_ptr); //4 for cheksum

    }
    else
    {
        //Frame
        Header_Fill_Code(0, "Frame");
        Header_Fill_Size(0);
        Finish();
    }
}
Example #2
0
//---------------------------------------------------------------------------
int64u File_Ibi::UInteger_Get()
{
    switch (Element_Size)
    {
        case 1 :
                {
                    int8u Data;
                    Get_B1 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        case 2 :
                {
                    int16u Data;
                    Get_B2 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        case 3 :
                {
                    int32u Data;
                    Get_B3 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        case 4 :
                {
                    int32u Data;
                    Get_B4 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        case 5 :
                {
                    int64u Data;
                    Get_B5 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        case 6 :
                {
                    int64u Data;
                    Get_B6 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        case 7 :
                {
                    int64u Data;
                    Get_B7 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        case 8 :
                {
                    int64u Data;
                    Get_B8 (Data,                               "Data"); Element_Info(Data);
                    return Data;
                }
        default :   Skip_XX(Element_Size,                       "Data");
                    return 0;
    }
}
Example #3
0
//---------------------------------------------------------------------------
void File_Caf::pakt()
{
    //Parsing
    int64u  NumberPackets, NumberValidFrames;
    int32u  PrimingFrames, RemainderFrames;
    Get_B8 (NumberPackets,                                      "NumberPackets");
    Get_B8 (NumberValidFrames,                                  "NumberValidFrames");
    Get_B4 (PrimingFrames,                                      "PrimingFrames");
    Get_B4 (RemainderFrames,                                    "RemainderFrames");
    Skip_XX(Element_Size-Element_Offset,                        "Packet sizes");

    FILLING_BEGIN();
        float64 SampleRate=Retrieve(Stream_Audio, 0, Audio_SamplingRate).To_float64();
        Fill(Stream_Audio, 0, Audio_FrameCount, NumberPackets);
        Fill(Stream_Audio, 0, Audio_Duration, NumberValidFrames/SampleRate*1000, 0);
        if (PrimingFrames && RemainderFrames)
            Fill(Stream_Audio, 0, Audio_Source_Duration, (PrimingFrames+NumberValidFrames+RemainderFrames)/SampleRate*1000, 0);
        Fill(Stream_Audio, 0, Audio_Delay, PrimingFrames/SampleRate*1000, 0);
    FILLING_END();
}
Example #4
0
//---------------------------------------------------------------------------
void File_Caf::Header_Parse()
{
    //Parsing
    int64u  ChunkSize;
    int32u  ChunkType;
    Get_B4 (ChunkType,                                          "ChunkType");
    Get_B8(ChunkSize,                                           "ChunkSize");

    //Filling
    Header_Fill_Code2(ChunkType, Ztring().From_CC4(ChunkType));
    Header_Fill_Size(12+ChunkSize);
}