summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2010-01-25 15:04:07 +0200
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-01-25 15:07:30 +0200
commit69fe2522f8c2a04eda112eee6319ca2e85d7038b (patch)
tree83a8b19997e621309344ca1f3997a48886ef0944 /libmpdemux
parent9436e0452fad48e671d7320cb18c588655f3d230 (diff)
parent1cda8b002fb19c3da14760fe1f9fc76992a05c29 (diff)
downloadmpv-69fe2522f8c2a04eda112eee6319ca2e85d7038b.tar.bz2
mpv-69fe2522f8c2a04eda112eee6319ca2e85d7038b.tar.xz
Merge svn changes up to r30301
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_ts.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c
index af9e2109f4..264a84f77d 100644
--- a/libmpdemux/demux_ts.c
+++ b/libmpdemux/demux_ts.c
@@ -97,7 +97,7 @@ typedef struct {
unsigned char *start;
uint16_t payload_size;
es_stream_type_t type, subtype;
- float pts, last_pts;
+ double pts, last_pts;
int pid;
char lang[4];
int last_cc; // last cc code (-1 if first packet)
@@ -219,8 +219,8 @@ typedef struct {
typedef struct {
uint64_t size;
float duration;
- float first_pts;
- float last_pts;
+ double first_pts;
+ double last_pts;
} TS_stream_info;
typedef struct {
@@ -1255,7 +1255,7 @@ static int mp4_parse_sl_packet(pmt_t *pmt, uint8_t *buf, uint16_t packet_len, in
return -1;
}
- pes_es->pts = (float) v / (float) sl->ts_resolution;
+ pes_es->pts = (double) v / (double) sl->ts_resolution;
mp_msg(MSGT_DEMUXER,MSGL_DBG2, "CTS: %d bits, value: %"PRIu64"/%d = %.3f\n", sl->ts_len, v, sl->ts_resolution, pes_es->pts);
}
@@ -1398,10 +1398,10 @@ static int pes_parse2(unsigned char *buf, uint16_t packet_len, ES_stream_t *es,
pts |= p[12] << 7 ;
pts |= (p[13] & 0xFE) >> 1 ;
- es->pts = pts / 90000.0f;
+ es->pts = pts / 90000.0;
}
else
- es->pts = 0.0f;
+ es->pts = 0.0;
header_len = p[8];
@@ -3094,7 +3094,7 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet,
}
else
{
- if(es->pts == 0.0f)
+ if(es->pts == 0.0)
es->pts = tss->pts = tss->last_pts;
else
tss->pts = tss->last_pts = es->pts;
@@ -3277,8 +3277,8 @@ static void demux_seek_ts(demuxer_t *demuxer, float rel_seek_secs, float audio_d
{
if(sh_audio && !d_audio->eof && d_video->pts && d_audio->pts)
{
- float a_pts=d_audio->pts;
- a_pts+=(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
+ double a_pts=d_audio->pts;
+ a_pts+=(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/(double)sh_audio->i_bps;
if(d_video->pts > a_pts)
{
skip_audio_frame(sh_audio); // sync audio