[MPlayer-dev-eng] [PATCH] further dvr-ms playback improvements

John Donaghy johnfdonaghy at gmail.com
Wed Aug 30 00:50:01 CEST 2006


>
> this explains the nonsense pts we were seeing. Why didn't you say it
> sooner? :))

Good question - I guess I didnt fully understand the pts issue until I
looked again after reading all the comments. I was concentrating on a
framerate fix.

>
> ths right solution, IMO, is to try and understand how to use those optional
> fields; I can't believe the extended asf just to store mpeg2, so there
> must a general way to handle that frame fragmentation. How does vlc cope
> with dvr-ms/asf ?

Last I looked VLC didnt play dvr-ms. As far as I know no open source
player could because the audio stream header was purposely concealed
in a header extension object. The original purpose of this asf header
extension feature was to support the inclusion of new streams while
allowing legacy players to at least play the video and audio - but
instead M$ used it to hide the audio... even WMP9 cant play dvr-ms. I
think they also broke the asf rules a bit to further ensure it would
be difficult to figure out how to play the format. Once I saw that
lavf could play the video successfully I became tempted to have a go
at discovering the audio - which I eventually did after much trial and
error.

The information we need could still be in the replicated data object
as you suggest - there's about 176 bytes of it per segment  - but it
could mean anything. Any ideas on how to go about trying to understand
it? I though of reading it in 2 or 4 byte chunks into ints and just
printing it out to have a look.


>
> duration 6 what? what's the unit?

milisecs afaik - each packet has a time and a duration but I dont
think those values help us at all. The segment replicated data is more
likely to mean something. Here's some slightly better output...

Playing test.dvr-ms.
ASF file format detected.

PACKET START: time=0, duration=6 (ms)
  SEGMENT 0: streamno=1  seq=1  type=B0  len=2024
    NEW VIDEO FRAME pts=0.000
  SEGMENT 1: streamno=2  seq=1  type=9E  len=2016
    NEW AUDIO FRAME pts=4.000
  SEGMENT 2: streamno=1  seq=2  type=B0  len=2024
    pres_time=5 VIDEO
  SEGMENT 3: streamno=1  seq=3  type=B0  len=1392
    pres_time=6 VIDEO

PACKET START: time=6, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=3  type=B0  len=632
    pres_time=6 VIDEO
  SEGMENT 1: streamno=1  seq=4  type=B0  len=608
    pres_time=7 VIDEO
  SEGMENT 2: streamno=1  seq=5  type=B0  len=2020
    pres_time=8 VIDEO
    NEW VIDEO FRAME pts=8.000
  SEGMENT 3: streamno=1  seq=6  type=B0  len=2024
    pres_time=9 VIDEO
  SEGMENT 4: streamno=1  seq=7  type=B0  len=1969
    pres_time=10 VIDEO

PACKET START: time=10, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=7  type=B0  len=55
    pres_time=10 VIDEO
  SEGMENT 1: streamno=1  seq=8  type=B0  len=2024
    pres_time=11 VIDEO
  SEGMENT 2: streamno=1  seq=9  type=B0  len=2024
    pres_time=12 VIDEO
  SEGMENT 3: streamno=1  seq=10  type=B0  len=2024
    pres_time=13 VIDEO
  SEGMENT 4: streamno=1  seq=11  type=B0  len=1126
    pres_time=14 VIDEO

PACKET START: time=14, duration=28 (ms)
  SEGMENT 0: streamno=1  seq=11  type=B0  len=898
    pres_time=14 VIDEO
  SEGMENT 1: streamno=3  seq=1  type=9E  len=2
  SEGMENT 2: streamno=1  seq=12  type=B0  len=2024
    pres_time=39 VIDEO
  SEGMENT 3: streamno=1  seq=13  type=B0  len=2024
    pres_time=40 VIDEO
  SEGMENT 4: streamno=2  seq=2  type=9E  len=2016
    pres_time=41 AUDIO
    NEW AUDIO FRAME pts=41.000
  SEGMENT 5: streamno=1  seq=14  type=B0  len=140
    pres_time=42 VIDEO

PACKET START: time=42, duration=3 (ms)
  SEGMENT 0: streamno=1  seq=14  type=B0  len=1884
    pres_time=42 VIDEO
  SEGMENT 1: streamno=1  seq=15  type=B0  len=2024
    pres_time=43 VIDEO
  SEGMENT 2: streamno=1  seq=16  type=B0  len=1816
    pres_time=44 VIDEO
  SEGMENT 3: streamno=1  seq=17  type=B0  len=1714
    pres_time=45 VIDEO
    NEW VIDEO FRAME pts=45.000

PACKET START: time=45, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=17  type=B0  len=306
    pres_time=45 VIDEO
  SEGMENT 1: streamno=1  seq=18  type=B0  len=2024
    pres_time=46 VIDEO
  SEGMENT 2: streamno=1  seq=19  type=B0  len=2024
    pres_time=47 VIDEO
  SEGMENT 3: streamno=1  seq=20  type=B0  len=2024
    pres_time=48 VIDEO
  SEGMENT 4: streamno=1  seq=21  type=B0  len=875
    pres_time=49 VIDEO

PACKET START: time=49, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=21  type=B0  len=1149
    pres_time=49 VIDEO
  SEGMENT 1: streamno=1  seq=22  type=B0  len=2024
    pres_time=50 VIDEO
  SEGMENT 2: streamno=1  seq=23  type=B0  len=2024
    pres_time=51 VIDEO
  SEGMENT 3: streamno=2  seq=3  type=9E  len=2016
    pres_time=52 AUDIO
    NEW AUDIO FRAME pts=52.000
  SEGMENT 4: streamno=1  seq=24  type=B0  len=59
    pres_time=53 VIDEO

PACKET START: time=53, duration=3 (ms)
  SEGMENT 0: streamno=1  seq=24  type=B0  len=1965
    pres_time=53 VIDEO
  SEGMENT 1: streamno=1  seq=25  type=B0  len=2024
    pres_time=54 VIDEO
  SEGMENT 2: streamno=1  seq=26  type=B0  len=2024
    pres_time=55 VIDEO
  SEGMENT 3: streamno=1  seq=27  type=B0  len=1425
    pres_time=56 VIDEO

PACKET START: time=56, duration=5 (ms)
  SEGMENT 0: streamno=1  seq=27  type=B0  len=599
    pres_time=56 VIDEO
  SEGMENT 1: streamno=1  seq=28  type=B0  len=220
    pres_time=57 VIDEO
  SEGMENT 2: streamno=1  seq=29  type=B0  len=2012
    pres_time=58 VIDEO
    NEW VIDEO FRAME pts=58.000
  SEGMENT 3: streamno=1  seq=30  type=B0  len=2024
    pres_time=59 VIDEO
  SEGMENT 4: streamno=1  seq=31  type=B0  len=2024
    pres_time=60 VIDEO
  SEGMENT 5: streamno=1  seq=32  type=B0  len=189
    pres_time=61 VIDEO

PACKET START: time=61, duration=9 (ms)
  SEGMENT 0: streamno=1  seq=32  type=B0  len=1835
    pres_time=61 VIDEO
  SEGMENT 1: streamno=1  seq=33  type=B0  len=2024
    pres_time=62 VIDEO
  SEGMENT 2: streamno=3  seq=2  type=9E  len=2
  SEGMENT 3: streamno=1  seq=34  type=B0  len=2024
    pres_time=69 VIDEO
  SEGMENT 4: streamno=1  seq=35  type=B0  len=1386
    pres_time=70 VIDEO

PACKET START: time=70, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=35  type=B0  len=638
    pres_time=70 VIDEO
  SEGMENT 1: streamno=1  seq=36  type=B0  len=2024
    pres_time=71 VIDEO
  SEGMENT 2: streamno=1  seq=37  type=B0  len=2024
    pres_time=72 VIDEO
  SEGMENT 3: streamno=1  seq=38  type=B0  len=2024
    pres_time=73 VIDEO
  SEGMENT 4: streamno=1  seq=39  type=B0  len=543
    pres_time=74 VIDEO

PACKET START: time=74, duration=3 (ms)
  SEGMENT 0: streamno=1  seq=39  type=B0  len=1481
    pres_time=74 VIDEO
  SEGMENT 1: streamno=1  seq=40  type=B0  len=2024
    pres_time=75 VIDEO
  SEGMENT 2: streamno=1  seq=41  type=B0  len=2024
    pres_time=76 VIDEO
  SEGMENT 3: streamno=1  seq=42  type=B0  len=1909
    pres_time=77 VIDEO

PACKET START: time=77, duration=61 (ms)
  SEGMENT 0: streamno=1  seq=42  type=B0  len=115
    pres_time=77 VIDEO
  SEGMENT 1: streamno=1  seq=43  type=B0  len=2024
    pres_time=78 VIDEO
  SEGMENT 2: streamno=1  seq=44  type=B0  len=2024
    pres_time=79 VIDEO
  SEGMENT 3: streamno=1  seq=45  type=B0  len=2024
    pres_time=80 VIDEO
  SEGMENT 4: streamno=3  seq=3  type=9E  len=2
  SEGMENT 5: streamno=3  seq=4  type=9E  len=2
  SEGMENT 6: streamno=1  seq=46  type=B0  len=728
    pres_time=138 VIDEO

PACKET START: time=138, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=46  type=B0  len=1008
    pres_time=138 VIDEO
  SEGMENT 1: streamno=2  seq=4  type=9E  len=2016
    pres_time=139 AUDIO
    NEW AUDIO FRAME pts=139.000
  SEGMENT 2: streamno=1  seq=47  type=B0  len=2020
    pres_time=140 VIDEO
    NEW VIDEO FRAME pts=140.000
  SEGMENT 3: streamno=1  seq=48  type=B0  len=2024
    pres_time=141 VIDEO
  SEGMENT 4: streamno=1  seq=49  type=B0  len=203
    pres_time=142 VIDEO

PACKET START: time=142, duration=3 (ms)
  SEGMENT 0: streamno=1  seq=49  type=B0  len=1821
    pres_time=142 VIDEO
  SEGMENT 1: streamno=1  seq=50  type=B0  len=2024
    pres_time=143 VIDEO
  SEGMENT 2: streamno=1  seq=51  type=B0  len=2024
    pres_time=144 VIDEO
  SEGMENT 3: streamno=1  seq=52  type=B0  len=1569
    pres_time=145 VIDEO

PACKET START: time=145, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=52  type=B0  len=455
    pres_time=145 VIDEO
  SEGMENT 1: streamno=1  seq=53  type=B0  len=2024
    pres_time=146 VIDEO
  SEGMENT 2: streamno=1  seq=54  type=B0  len=2024
    pres_time=147 VIDEO
  SEGMENT 3: streamno=1  seq=55  type=B0  len=2024
    pres_time=148 VIDEO
  SEGMENT 4: streamno=1  seq=56  type=B0  len=726
    pres_time=149 VIDEO

PACKET START: time=149, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=56  type=B0  len=1214
    pres_time=149 VIDEO
  SEGMENT 1: streamno=1  seq=57  type=B0  len=2020
    pres_time=150 VIDEO
    NEW VIDEO FRAME pts=150.000
  SEGMENT 2: streamno=1  seq=58  type=B0  len=2024
    pres_time=151 VIDEO
  SEGMENT 3: streamno=1  seq=59  type=B0  len=2024
    pres_time=152 VIDEO

PACKET START: time=153, duration=3 (ms)
  SEGMENT 0: streamno=1  seq=60  type=B0  len=2024
    pres_time=153 VIDEO
  SEGMENT 1: streamno=1  seq=61  type=B0  len=2024
    pres_time=154 VIDEO
  SEGMENT 2: streamno=1  seq=62  type=B0  len=2024
    pres_time=155 VIDEO
  SEGMENT 3: streamno=1  seq=63  type=B0  len=1366
    pres_time=156 VIDEO

PACKET START: time=156, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=63  type=B0  len=658
    pres_time=156 VIDEO
  SEGMENT 1: streamno=1  seq=64  type=B0  len=2024
    pres_time=157 VIDEO
  SEGMENT 2: streamno=1  seq=65  type=B0  len=2024
    pres_time=158 VIDEO
  SEGMENT 3: streamno=1  seq=66  type=B0  len=2024
    pres_time=159 VIDEO
  SEGMENT 4: streamno=1  seq=67  type=B0  len=523
    pres_time=160 VIDEO

PACKET START: time=160, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=67  type=B0  len=1501
    pres_time=160 VIDEO
  SEGMENT 1: streamno=1  seq=68  type=B0  len=2024
    pres_time=161 VIDEO
  SEGMENT 2: streamno=1  seq=69  type=B0  len=304
    pres_time=162 VIDEO
  SEGMENT 3: streamno=2  seq=5  type=9E  len=2016
    pres_time=163 AUDIO
    NEW AUDIO FRAME pts=163.000
  SEGMENT 4: streamno=1  seq=70  type=B0  len=1426
    pres_time=164 VIDEO
    NEW VIDEO FRAME pts=164.000

PACKET START: time=164, duration=4 (ms)
  SEGMENT 0: streamno=1  seq=70  type=B0  len=586
    pres_time=164 VIDEO
  SEGMENT 1: streamno=1  seq=71  type=B0  len=2024
    pres_time=165 VIDEO
  SEGMENT 2: streamno=1  seq=72  type=B0  len=2024
    pres_time=166 VIDEO
  SEGMENT 3: streamno=1  seq=73  type=B0  len=2024
    pres_time=167 VIDEO
  SEGMENT 4: streamno=1  seq=74  type=B0  len=595
    pres_time=168 VIDEO

PACKET START: time=168, duration=3 (ms)
  SEGMENT 0: streamno=1  seq=74  type=B0  len=1429
    pres_time=168 VIDEO
  SEGMENT 1: streamno=1  seq=75  type=B0  len=2024
    pres_time=169 VIDEO
  SEGMENT 2: streamno=1  seq=76  type=B0  len=2024
    pres_time=170 VIDEO
  SEGMENT 3: streamno=1  seq=77  type=B0  len=1961
    pres_time=171 VIDEO



More information about the MPlayer-dev-eng mailing list