Auslesen eines Buffers



  • Hallo

    wie kann ich die Daten eines unsigned short Buffers auslesen? In dem Array pPackets[] werden mehrere Objekte gespeichert. m_pUdw zeigt auf einen Buffer der weitere Daten speichert. Die müssten die Struktur 2E4 1B6 E4 usw.. haben. Wie kann ich auf den Speicher auf den m_pUdw zeigt zugreifen?

    if (m_numPackets > 0) {
            //get all anc data that is found in the stream.
            DtMxAncPacket* pPacket = new DtMxAncPacket[m_numPackets];
            m_mxFrame->AncGetPacket(ALL_DID, ALL_SDID_OR_DBN, pPacket, m_numPackets, ANC_SPACE, STREAM_SPACE);
            for (int i = 0; i < m_numPackets; ++i) {
                int type = pPacket[i].Type();
                int did = pPacket[i].m_Did;
                int sdidOrDbn = pPacket[i].m_SdidOrDbn;
                int dataCount = pPacket[i].m_Dc;
                unsigned short *udw = pPacket[i].m_pUdw; 
                int checkSum = pPacket[i].m_Cs;
                int line = pPacket[i].m_Line;
                emit sendRawAncillaryData(numberOfFrames, type, did, sdidOrDbn, dataCount, udw, checkSum, line);
            }
        }
    


  • Meinst Du dereferenzieren? Dann such mal nach "C++ Zeiger dereferenzieren"; bekommst sogar aus diesem Forum was angezeigt.



  • @Helmut-Jakoby sagte in Auslesen eines Buffers:

    C++ Zeiger dereferenzieren

    Hallo,

    hmmm, ich dereferenziere den Zeiger eigentlich und erhalte auch einen Wert der im Buffer gespeichert ist. Meiner Meinung nach müssten aber eine ganze Folge von Wörtern im Speicher hinterlegt sein.
    Der Wert den ich durch das dereferenzieren erhalte düfte doch nur der Gesamtwert sein?

    Meine IDEE ist, die Wortfolge (sofern sie vorhanden ist) in einem Vector zu speichern und bei der Ausgabe dann in einen String zu konvertieren.
    Mein PROBLEM ist aber das ich nicht verstehe wie die Daten in diesem unsinged short Buffer aussehen können.
    Wenn ich die m_pUdw dereferenziere erhalte ich wie gesagt nur einen Wert und dieser steht dann ja auch im Vector.



  • Ich nehme mal an, es geht um die DekTec Matrix API (DtMxAncPacketauf Seite 15).

    In m_Dc steht ja die Anzahl der Daten, d.h. du mußt mittels einer Schleife über den m_pUdw-Puffer iterieren.
    Und die Interpretation der Daten ist wohl über SMPTE Ancillary Data SMPTE ST 291 definiert.


Anmelden zum Antworten