mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 11:39:47 +00:00
Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
can easily be reused by other demuxers for formats that encapsulate MPEG-PES. Originally committed as revision 11451 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
ca5323af4b
commit
66e9e30239
@ -120,17 +120,12 @@ static int mpegps_read_header(AVFormatContext *s,
|
||||
|
||||
static int64_t get_pts(ByteIOContext *pb, int c)
|
||||
{
|
||||
int64_t pts;
|
||||
int val;
|
||||
uint8_t buf[5];
|
||||
|
||||
if (c < 0)
|
||||
c = get_byte(pb);
|
||||
pts = (int64_t)(c & 0x0e) << 29;
|
||||
val = get_be16(pb);
|
||||
pts |= (int64_t)(val >> 1) << 15;
|
||||
val = get_be16(pb);
|
||||
pts |= (int64_t)(val >> 1);
|
||||
return pts;
|
||||
buf[0] = c<0 ? get_byte(pb) : c;
|
||||
get_buffer(pb, buf+1, 4);
|
||||
|
||||
return ff_parse_pes_pts(buf);
|
||||
}
|
||||
|
||||
static int find_next_start_code(ByteIOContext *pb, int *size_ptr,
|
||||
|
@ -57,4 +57,13 @@
|
||||
|
||||
static const int lpcm_freq_tab[4] = { 48000, 96000, 44100, 32000 };
|
||||
|
||||
/**
|
||||
* Parse MPEG-PES five-byte timestamp
|
||||
*/
|
||||
static inline int64_t ff_parse_pes_pts(uint8_t *buf) {
|
||||
return (int64_t)(*buf & 0x0e) << 29 |
|
||||
(AV_RB16(buf+1) >> 1) << 15 |
|
||||
AV_RB16(buf+3) >> 1;
|
||||
}
|
||||
|
||||
#endif /* FFMPEG_MPEG_H */
|
||||
|
Loading…
Reference in New Issue
Block a user