Browse Source

Set pts/dts in raw (yuv,rgb,pcm) demuxers.

Originally committed as revision 11513 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer 17 years ago
parent
commit
f5b410312f
1 changed files with 9 additions and 1 deletions
  1. +9
    -1
      libavformat/raw.c

+ 9
- 1
libavformat/raw.c View File

@@ -105,7 +105,7 @@ static int raw_read_header(AVFormatContext *s, AVFormatParameters *ap)

static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
{
int ret, size;
int ret, size, bps;
// AVStream *st = s->streams[0];

size= RAW_PACKET_SIZE;
@@ -119,6 +119,12 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
/* note: we need to modify the packet size here to handle the last
packet */
pkt->size = ret;

bps= av_get_bits_per_sample(s->streams[0]->codec->codec_id);
assert(bps); // if false there IS a bug elsewhere (NOT in this function)
pkt->dts=
pkt->pts= pkt->pos*8 / (bps * s->streams[0]->codec->channels);

return ret;
}

@@ -847,6 +853,8 @@ static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt)
return -1;

ret= av_get_packet(s->pb, pkt, packet_size);
pkt->pts=
pkt->dts= pkt->pos / packet_size;

pkt->stream_index = 0;
if (ret != packet_size) {


Loading…
Cancel
Save