4.1.4 Data Streaming Sequence

The following annotation shows the Set Allocator message sent from the server to the client. The various fields of the message indicate the buffer properties preferred by the server.

 Set Allocator
 ChannelName = TSMF,48,server to client
 00000000 00 00 00 40 00 00 00 00 12 01 00 00 79 40 84 8b ...@........y@..
 00000010 0e b7 0f 45 87 93 3d 7f fa 31 d0 53 01 00 00 00 ...E..=..1.S....
 00000020 64 00 00 00 05 00 01 00 01 00 00 00 00 00 00 00 d...............
  
 00 00 00 40 -> Interface Id = 0x00000000 | mask STREAM_ID_PROXY (0x40000000)
 00 00 00 00 -> Message Id = 0x00000000
 12 01 00 00 -> SET_ALLOCATOR = 0x112
 79 40 84 8b -> PresentationId (GUID) = {8b844079-b70e-450f-8793-3d7ffa31d053}
 0e b7 0f 45
 87 93 3d 7f
 fa 31 d0 53
 01 00 00 00 -> StreamId = 0x01
 64 00 00 00 -> cBuffers = 0x64
 05 00 01 00 -> cbBuffer = 0x10005
 01 00 00 00 -> cbAlign = 0x01
 00 00 00 00 -> cbPrefix = 0x00
  

The following annotation shows the Notify Preroll message sent from the server to the client. This message indicates that the stream is preloading the media data before playback.

  
 Notify Preroll
 ChannelName = TSMF,32,server to client
 00000000 00 00 00 40 00 00 00 00 13 01 00 00 9e f9 48 4e ...@..........HN
 00000010 46 7b 8e 4a b7 7a e4 0f b5 9e cc 63 01 00 00 00 F{.J.z.....c....
  
 00 00 00 40 -> Interface Id = 0x00000000 | mask STREAM_ID_PROXY (0x40000000)
 00 00 00 00 -> Message Id = 0x00000000
 13 01 00 00 -> NOTIFY_PREROLL = 0x113
 9e f9 48 4e -> PresentationId (GUID) = {4e48f99e-7b46-4a8e-b77a-e40fb59ecc63}
 46 7b 8e 4a 
 b7 7a e4 0f 
 b5 9e cc 63
 01 00 00 00 -> StreamId = 0x01
  

The following annotation shows the On Sample message sent from the server to the client. Various fields of this message indicate the sample properties and the sample data encoded in the stream format.

 On Sample
 ChannelName = TSMF,2090,server to client
 00000000 00 00 00 40 00 00 00 00 03 01 00 00 79 40 84 8b ...@........y@..
 00000010 0e b7 0f 45 87 93 3d 7f fa 31 d0 53 01 00 00 00 ...E..=..1.S....
 00000020 06 08 00 00 37 00 00 00 00 00 00 00 38 00 00 00 ....7.......8...
 00000030 00 00 00 00 15 16 05 00 00 00 00 00 00 00 00 00 ................
 00000040 03 00 00 00 e2 07 00 00 00 00 01 b3 14 00 f0 13 ................
 00000050 ff ff e0 c1 10 11 11 12 12 12 13 13 13 13 14 14 ................
  
    (skipped)
  
 00000820 09 9c 9a 91 80 0c 00 1b 93 78          .........x
  
 00 00 00 40 -> Interface Id = 0x00000000 | mask STREAM_ID_PROXY (0x40000000)
 00 00 00 00 -> Message Id = 0x00000000
 03 01 00 00 -> ON_SAMPLE = 0x103
 79 40 84 8b -> PresentationId (GUID) = {8b844079-b70e-450f-8793-3d7ffa31d053}
 0e b7 0f 45 
 87 93 3d 7f 
 fa 31 d0 53
 01 00 00 00 -> StreamId = 0x01
 06 08 00 00 -> numSample = 0x806
 37 00 00 00 -> SampleStartTime = 0x37
 00 00 00 00 
 38 00 00 00 -> SampleEndTime = 0x38
 00 00 00 00
 15 16 05 00 -> ThrottleDuration = 0x51615  
 00 00 00 00
 00 00 00 00 -> SampleFlags = 0x00
 03 00 00 00 -> SampleExtensions = 
            TSMM_SAMPLE_EXT_CLEANPOINT | TSMM_SAMPLE_EXT_DISCONTINUITY = 0x03
 e2 07 00 00 -> cbData = 0x7e2
 00 00 01 b3 -> pData (variable size = 0x7e2)
  
    (skipped)
  
 80 0c 00 1b 
 93 78

The following annotation shows the On Flush message sent from the server to the client. The StreamId field identifies the stream to be flushed.

  
 On Flush
 ChannelName = TSMF,32,server to client
 00000000 00 00 00 40 00 00 00 00 0e 01 00 00 99 ac f1 31 ...@...........1
 00000010 0c 83 97 43 92 28 dc ff-1a 45 1d d1 01 00 00 00 ...C.(...E......
 00 00 00 40 -> Interface Id = 0x00000000 | mask STREAM_ID_PROXY (0x40000000)
 00 00 00 00 -> Message Id = 0x00000000
 0e 01 00 00 -> ON_FLUSH = 0x10e
 99 ac f1 31 -> PresentationId (GUID) = {31f1ac99-830c-4397-9228-dcff1a451dd1}
 0c 83 97 43 
 92 28 dc ff 
 1a 45 1d d1
 01 00 00 00 -> StreamId = 0x01
  

The following annotation shows the On End of Stream message sent from the server to the client. The StreamId field identifies the stream for which the end of data has been reached.

  
 On End of Stream
 ChannelName = TSMF,32,server to client
 00000000 00 00 00 40 00 00 00 00 11 01 00 00 99 ac f1 31 ...@...........1
 00000010 0c 83 97 43 92 28 dc ff 1a 45 1d d1 01 00 00 00 ...C.(...E......
  
 00 00 00 40 -> Interface Id = 0x00000000 | mask STREAM_ID_PROXY (0x40000000)
 00 00 00 00 -> Message Id = 0x00000000
 11 01 00 00 -> ON_END_OF_STREAM = 0x111
 99 ac f1 31 -> PresentationId (GUID) = {31f1ac99-830c-4397-9228-dcff1a451dd1}
 0c 83 97 43 
 92 28 dc ff 
 1a 45 1d d1
 01 00 00 00 -> StreamId = 0x01