Browse Source

pts fix by (Bryan Mayland / bmayland O leoninedev o com)

Originally committed as revision 4867 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer 19 years ago
parent
commit
d271481f1a
1 changed files with 7 additions and 1 deletions
  1. +7
    -1
      libavformat/ffm.c

+ 7
- 1
libavformat/ffm.c View File

@@ -44,6 +44,7 @@ typedef struct FFMContext {


/* read and write */ /* read and write */
int first_packet; /* true if first packet, needed to set the discontinuity tag */ int first_packet; /* true if first packet, needed to set the discontinuity tag */
int first_frame_in_packet; /* true if first frame in packet, needed to know if PTS information is valid */
int packet_size; int packet_size;
int frame_offset; int frame_offset;
int64_t pts; int64_t pts;
@@ -347,6 +348,7 @@ static int ffm_read_data(AVFormatContext *s,
get_be16(pb); /* PACKET_ID */ get_be16(pb); /* PACKET_ID */
fill_size = get_be16(pb); fill_size = get_be16(pb);
ffm->pts = get_be64(pb); ffm->pts = get_be64(pb);
ffm->first_frame_in_packet = 1;
frame_offset = get_be16(pb); frame_offset = get_be16(pb);
get_buffer(pb, ffm->packet, ffm->packet_size - FFM_HEADER_SIZE); get_buffer(pb, ffm->packet, ffm->packet_size - FFM_HEADER_SIZE);
ffm->packet_end = ffm->packet + (ffm->packet_size - FFM_HEADER_SIZE - fill_size); ffm->packet_end = ffm->packet + (ffm->packet_size - FFM_HEADER_SIZE - fill_size);
@@ -614,7 +616,11 @@ static int ffm_read_packet(AVFormatContext *s, AVPacket *pkt)
av_free_packet(pkt); av_free_packet(pkt);
return -EAGAIN; return -EAGAIN;
} }
pkt->pts = ffm->pts;
if (ffm->first_frame_in_packet)
{
pkt->pts = ffm->pts;
ffm->first_frame_in_packet = 0;
}
pkt->duration = duration; pkt->duration = duration;
break; break;
} }


Loading…
Cancel
Save