[vlc-devel] TS files that has PCR hickups

Morgan Tørvolt morgan.torvolt at gmail.com
Tue Feb 26 17:56:00 CET 2008


Hi.

I was told to use this mailing list on the IRC channel, please advice
if this is the wrong place for it.

I have been testing the VLC output transportstream files for use in a
streaming server. I use DVDs for testing, and do nothing but mux them
to a ts file, keeping all elementary pids. This works reasonably well
with live555 streaming.

I have found some issues though, and they all seem to revolve around
the PCR in the TS being faulty at some point. Whatever DVD I use, I
get random occurences of the a PCR being signalled as earlier than the
previous, usually resulting in the following PCRs having very long
durations between to compensate and get back on track.

I have made a program that gets both PCR in hex, shows a floating
point representation of it, and shows the first 20 bytes of the TS
packets, as well as calculate the duration per packet using current
and previous PCR values.

It has become obvious that it happens on random spots (some seen 4-6
seconds apart, others 300-400 seconds apart), but often at about the
same length of time into the movie on different movies.

I have found no good explaination for this. At first I thougth it
could have something to do with faulty PTS/DTS timestamps, so I
printed the DTS as well, but they seem pretty consistent.

Using the DTS as timing for the playout actually helped a lot, giving
lot less trouble in the other end, but seemingly the client seems to
have some issues still, flickering mostly. I am wondering if some
timing information inside the MPEG stream is also affected, but I have
not gotten that far yet. I was hoping someone here could explain the
problems so that I did not have to =)

I have pasted a printout from my program, showing the actual issue here:
http://paste.videolan.org/3381

As you can see, I get the correct information from the TS packet, and
that the actual data in the TS packet is not consistent. I could have
some errors in my floating point conversion, but the issue is apparent
in the original data as well, so I am quite confident that I have not.

I print "ERROR HERE" if there is a negative or an unreasonably high
packet duration period.

Thanks for any help on resolving this.


Regards
Morgan Tørvolt


PS. Your mailing list is not a good friend of my last name special
character, ø. Not important, just thought you should know =)



More information about the vlc-devel mailing list