[gstreamer-bugs] [Bug 607555] asfmux plugin generates data streams incompatible with WMSP (MMSH) and WMP

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Jan 22 08:25:36 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=607555
  GStreamer | gst-plugins-bad | 0.10.25

--- Comment #11 from Håkon Skjelten <skjelten at pvv.org> 2010-01-22 16:25:31 UTC ---
> that the stream changes the packet size between 8000 and lower values
> (typically 7998) - indicating padding. To save you some time with wireshark:
> switch to hex dump, search for $D and skip 15 bytes. Then you'll see the packet
> size field - normally 40 1f => 8000. If you where right that packet length ==
> total packet length, then this would be wrong.

I can see that my previous post is a bit unclear, it should read:

that the stream changes the packet size between 8000 and lower values
(typically 7998) - indicating padding. To save you some time with wireshark:
switch to hex dump, search for $D and skip 15 bytes. Then you'll see the packet
size field - normally 40 1f => 8000, but sometimes less. If you where right
that packet length == total packet length, then Microsoft implements their own
protocol wrong when they set packet length to lower values.

Here's the first MMS data packet I get from the NRK stream (which sets min/max
packet size in the file prop. header to 8000). As you can see the packet size
is set to 1661 bytes (7d 06). The ASF packet starts at position 0x09c.

00000090  24 44 85 06 9b ac 43 00  01 00 85 06 82 00 00 41 $D....C. .......A
000000A0  5d 7d 06 9c c3 e6 11 46                          ]}.....F 

Here's the 3rd MMS data packet. As you can see is the packet size now is 8000
bytes (40 if).

00000268  24 44 48 1f 9f ac 43 00  01 04 48 1f 82 00 00 41 $DH...C. ..H....A
00000278  5d 40 1f 8d c4 e6 11 47                          ]@.....G 


Also the WMSP specification suggests that the data size field should not
include the padding size.

>From the WMSP specification, page 69:
---
Payload (variable): This field MUST contain exactly one complete ASF packet. If
the ASF packet contains a Padding Data field, as specified in [ASF] section
5.2.4, that field SHOULD be removed before encapsulating the ASF packet in the
$D packet, except if the client identifies itself as "NSServer" with a version
earlier than 5.0 on the User-Agent (section 2.2.1.8) header. If the Padding
Data field is removed, the Padding Length field in the ASF payload parsing
information section, as specified in [ASF] section 5.2.2, MUST be updated to
indicate a nonexistent Padding Data field.
---
When padding is removed from the packet it only says the the padding size
should be updated and not the packet size. Thus packet size cannot be
interpreted as the size including padding.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.



More information about the Gstreamer-bugs mailing list