When decoding generic byte data packets from a RawLiveSource (containing H.265 video) I am seeing that the Field Value is 0x000E and not 0x000D as expected. I am using a StableFps device with the provided H265 file)
Hi Jon,
The H265 packet type is 0xE for GenericVideoStreamDataPacket, 0xD is for VideoBlocks. The documentation doesnt mention it, i am sorry. We will update the documentation.
Thanks for the information, I will change my software to use 0x000E for H.265 when decoding a Video Stream Data Packet.
Am I correct in assuming then that 0x000D is a reserved value for the Codec Type field of a Video Stream Data Packet?
Actually no, 0xd is value for codec H.261. 0xA is H.264 and 0x1 is JPEG. there will be documentation update to reflect all the values.
Is it possible that I could get up to date versions of the tables defining the Codec Types for
- VideoStreamPackets
- Video Blocks
- AudioStreamPackets
I need to be able to accurately identify the data contained within a packet of Generic Byte Data
Sorry that the documentation is incorrect. We will update it for the next release, but I will also attach the updated page with this post. Current documentation on video blocks and audio stream packets documentation should be okay.
Be aware that although we will accept other codec formats the VMS is only able to analyze and display a subset of these. Refer to the general VMS documentation for more information of handled codices.
Thank you for the advanced information Peter. I look forward to the updated documentation with the next release. Is it safe to assume that recordings containing data encoded using codecs not described under Video Blocks will be delivered in Video Stream Packets?
I don’t think you can assume that, but as mentioned in the documentation you can distinguish blocks from stream packets by looking at the datatype field in the header.
Peter, sorry to labour the point…
Assume we have a device streaming MS VC-1 which is being recorded on the VMS and, in my application, I only want to receive the raw data.
I can retrieve the live stream and would receive Video Stream Packets with the Codec Type field set to 0x000C to identify the data as such. Video Stream Packets generally being used for ‘live’ data.
If, on the other hand I want to stream the recorded data how would the Video Block identify the data as there is no corresponding value for this Codec in the Codec Type field for a Video Block? Video Blocks being used for ‘recorded’ data.
A similar case could be made for all of the other codecs present in the Codec Table for Video Stream Packets that do not appear in the table for Video Blocks.
Am I missing something in the documentation?
Hi Jon,
In playback you will get a whole GOP at a time containing GenericVideoStreamDataPackets so the codecs are the same in there as well. VideoBlocks are a legacy type that is not used in XPCO products.
And most likely you will not receive other codec than Mpeg4/Jpeg/H264/H265 from the cameras connected to XPCO.