FaceDisaster
29.01.2004, 10:23
Hallo zusammen,
ich versuche bestimmte Pakete aus einem DVB-Transportstrom zu fischen um diese dann weiterzuverarbeiten. Nun beginnt jedes TS-Paket mit dem sync_byte (Bitmuster: 0100 0111), damit einem Decoder beispielsweise der Beginn des TS-Pakets signalisiert wird. Aus diesem Grund soll sich dieses Muster nicht an anderer Stelle im TS-Paket wiederholen - wenn möglich.
So steht im Standard ISO/IEC 13818-1geschrieben:
sync_byte -- The sync_byte is a fixed 8 bit field whose value is '0100 0111' (0x47). Sync_byte emulation in the
choice of values for other regularly occuring fields, such as PID, should be avoided.
Ich habe nun folgendes Problem: bei meinen Versuchen die einzelnen TS-Pakete im Transportstrom zu erkennen, ist mir aufgefallen, dass das Muster 0x47 sehr wohl an anderer Stelle auftritt. Das kann in der Payload logischerweise auch nicht vermieden werden. Wie ist es dem Decoder aber möglich das sync_byte von dem Bitmuster 0x47 in der Payload zu unterscheiden? Vor allem, wenn er die Codierung zu dem Zeitpunkt beginnt, zu dem gerade die letzten Bytes eines TS-Paketes übertragen werden.
Ich habe auch schon an die Möglichkeit gedacht, nach dem ersten Auftreten von 0x47 zu schauen ob sich 188 Byte weiter im Transportstrom das Muster wiederholt (eine TS-Paketlänge). Aber wer sagt mir dann, ob ich wirklich synchron zu den Anfängen der Pakete abtaste oder nur ein byte der Payload mit dem Muster 0x47 erkenne, welches sich dummerweise im nächsten Paket an gleicher Stelle wiederholt?
Ich hoffe auf :idea: und freue mich sehr über Anregungen
Grüße
FaceDisaster
ich versuche bestimmte Pakete aus einem DVB-Transportstrom zu fischen um diese dann weiterzuverarbeiten. Nun beginnt jedes TS-Paket mit dem sync_byte (Bitmuster: 0100 0111), damit einem Decoder beispielsweise der Beginn des TS-Pakets signalisiert wird. Aus diesem Grund soll sich dieses Muster nicht an anderer Stelle im TS-Paket wiederholen - wenn möglich.
So steht im Standard ISO/IEC 13818-1geschrieben:
sync_byte -- The sync_byte is a fixed 8 bit field whose value is '0100 0111' (0x47). Sync_byte emulation in the
choice of values for other regularly occuring fields, such as PID, should be avoided.
Ich habe nun folgendes Problem: bei meinen Versuchen die einzelnen TS-Pakete im Transportstrom zu erkennen, ist mir aufgefallen, dass das Muster 0x47 sehr wohl an anderer Stelle auftritt. Das kann in der Payload logischerweise auch nicht vermieden werden. Wie ist es dem Decoder aber möglich das sync_byte von dem Bitmuster 0x47 in der Payload zu unterscheiden? Vor allem, wenn er die Codierung zu dem Zeitpunkt beginnt, zu dem gerade die letzten Bytes eines TS-Paketes übertragen werden.
Ich habe auch schon an die Möglichkeit gedacht, nach dem ersten Auftreten von 0x47 zu schauen ob sich 188 Byte weiter im Transportstrom das Muster wiederholt (eine TS-Paketlänge). Aber wer sagt mir dann, ob ich wirklich synchron zu den Anfängen der Pakete abtaste oder nur ein byte der Payload mit dem Muster 0x47 erkenne, welches sich dummerweise im nächsten Paket an gleicher Stelle wiederholt?
Ich hoffe auf :idea: und freue mich sehr über Anregungen
Grüße
FaceDisaster