/**
* Parse MPEG-PES five-byte timestamp
*/
-static inline int64_t ff_parse_pes_pts(uint8_t *buf) {
+static inline int64_t ff_parse_pes_pts(const uint8_t *buf) {
return (int64_t)(*buf & 0x0e) << 29 |
(AV_RB16(buf+1) >> 1) << 15 |
AV_RB16(buf+3) >> 1;
#include "mpegts.h"
#include "internal.h"
#include "seek.h"
+#include "mpeg.h"
#include "isom.h"
/* 1.0 second at 24Mbit/s */
return 0;
}
-static int64_t get_pts(const uint8_t *p)
-{
- int64_t pts = (int64_t)((p[0] >> 1) & 0x07) << 30;
- pts |= (AV_RB16(p + 1) >> 1) << 15;
- pts |= AV_RB16(p + 3) >> 1;
- return pts;
-}
-
static void new_pes_packet(PESContext *pes, AVPacket *pkt)
{
av_init_packet(pkt);
pes->pts = AV_NOPTS_VALUE;
pes->dts = AV_NOPTS_VALUE;
if ((flags & 0xc0) == 0x80) {
- pes->dts = pes->pts = get_pts(r);
+ pes->dts = pes->pts = ff_parse_pes_pts(r);
r += 5;
} else if ((flags & 0xc0) == 0xc0) {
- pes->pts = get_pts(r);
+ pes->pts = ff_parse_pes_pts(r);
r += 5;
- pes->dts = get_pts(r);
+ pes->dts = ff_parse_pes_pts(r);
r += 5;
}
pes->extended_stream_id = -1;