[libdvbpsi-devel] TS files that has PCR hickups

Morgan Tørvolt morgan.torvolt at gmail.com
Fri Feb 29 19:54:19 CET 2008


Hi

As I did not get any response from the vlc-devel list, I am trying
this mailing list instead. Hopefully someone can help me out here so
that this problem can be fixed. I would love to help out myself, but a
hint on where to begin would be much appreciated.
Below is a copy of my original message go vlc-devel:


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


More information about the libdvbpsi-devel mailing list