[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