[FFmpeg-devel] [PATCH 5/5] ffmpeg: Use guess_correct_pts() for decoded timestamps
Alexander Strange
astrange
Sun Oct 3 10:17:21 CEST 2010
On Sep 28, 2010, at 10:57 AM, Michael Niedermayer wrote:
> On Mon, Jul 26, 2010 at 01:16:10PM -0700, Alexander Strange wrote:
>> ---
>> ffmpeg.c | 7 +++++++
>> 1 files changed, 7 insertions(+), 0 deletions(-)
>>
>> diff --git a/ffmpeg.c b/ffmpeg.c
>> index 6625c58..16e69dd 100644
>> --- a/ffmpeg.c
>> +++ b/ffmpeg.c
>> @@ -304,6 +304,7 @@ typedef struct AVInputStream {
>> int64_t next_pts; /* synthetic pts for cases where pkt.pts
>> is not defined */
>> int64_t pts; /* current pts */
>> + PtsCorrectionContext pts_ctx;
>> int is_start; /* is 1 at the start and after a discontinuity */
>> int showed_multi_packet_warning;
>> int is_past_recording_time;
>> @@ -1509,6 +1510,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
>> void *buffer_to_free;
>> static unsigned int samples_size= 0;
>> AVSubtitle subtitle, *subtitle_to_free;
>> + int64_t pkt_pts = AV_NOPTS_VALUE;
>> #if CONFIG_AVFILTER
>> int frame_available;
>> #endif
>> @@ -1531,6 +1533,8 @@ static int output_packet(AVInputStream *ist, int ist_index,
>>
>> if(pkt->dts != AV_NOPTS_VALUE)
>> ist->next_pts = ist->pts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
>> + if(pkt->pts != AV_NOPTS_VALUE)
>> + pkt_pts = av_rescale_q(pkt->pts, ist->st->time_base, AV_TIME_BASE_Q);
>>
>> //while we have more to decode or while the decoder did output something on EOF
>> while (avpkt.size > 0 || (!pkt && ist->next_pts != ist->pts)) {
>> @@ -1583,6 +1587,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
>> decoded_data_size = (ist->st->codec->width * ist->st->codec->height * 3) / 2;
>> /* XXX: allocate picture correctly */
>> avcodec_get_frame_defaults(&picture);
>> + ist->st->codec->reordered_opaque = pkt_pts;
>
> you should set pkt_pts here to AV_NOPTS_VALUE to prevent a second use
Done.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ffmpeg-Use-guess_correct_pts-for-decoded-timestamps.patch
Type: application/octet-stream
Size: 3062 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101003/8761ba63/attachment.obj>
-------------- next part --------------
More information about the ffmpeg-devel
mailing list