[MPlayer-G2-dev] mpeg container's timing (PTS values)
Billy Biggs
vektor at dumbterm.net
Thu May 8 01:20:43 CEST 2003
Arpi (arpi at thot.banki.hu):
> The video part is relative easy, but a bit tricky: when a PS packet
> has a PTS timestamp, that timestamp belongs to the next complete
> frame. (not to the one which ends in that packet!)
Doesn't it belong to the video frame which starts in that packet?
> The audio is however very tricky.
I remember it being a total bitch.
> It is very inaccurate for mpeg. Now i've found why: in mpeg
> containers, the audio timestamps behave like the video: they belong to
> the _next_ complete frame/block.
I don't think this is exactly correct.
> After experimencng with several streams, i've found that ct: value is
> the time length of an audio frame. Strange, isn't it?
I think there is a more logical explination.
> Do anyone have accurate info about the meaning/calculation of audio
> PTS for mpeg container?
It's been a while, but here is a comment I wrote in movietime:
/**
* Interesting tidbit. The PTS value in an A/52 audio frame
* is for the audio frame which starts after the pointer
* value (bytes p[2] and p[3] of the 4-byte header, byte
* p[1] is the number of frames in the pack). So, I need to
* pass this into the A/52 parse code so it can tag the new
* PTS at the correct position.
*/
Basically, each pack can contain multiple audio frames, and the header
tells you which one the PTS belongs to. It's not necessarily the first
one.
I can go through my code some more, but when I wrote all this code in
movietime walken and I had a ton of conversations on IRC, and I was just
shocked at how hard it was to get all the sync to line up perfectly such
that I wasn't like dropping audio or resyncing my video all the time.
Once I had it done though, everything lined up _perfect_.
I'm anxious to get into the G2 code, and when I'll do I'll probably go
through it alongside my movietime code and post any discrepancies I
find.
If it would help, I can go through my code some more and refresh my
memory.
-Billy
More information about the MPlayer-G2-dev
mailing list