diff --git a/ffmpeg.c b/ffmpeg.c index 6748ad83ed..00605114a5 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -2108,8 +2108,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) } } - if (decoded_frame->pkt_pts != AV_NOPTS_VALUE) { - decoded_frame->pts = decoded_frame->pkt_pts; + if (decoded_frame->pts != AV_NOPTS_VALUE) { decoded_frame_tb = ist->st->time_base; } else if (pkt && pkt->pts != AV_NOPTS_VALUE) { decoded_frame->pts = pkt->pts; diff --git a/ffplay.c b/ffplay.c index 6d43191455..79dc76889e 100644 --- a/ffplay.c +++ b/ffplay.c @@ -588,9 +588,7 @@ static int decoder_decode_frame(Decoder *d, AVFrame *frame, AVSubtitle *sub) { if (got_frame) { if (decoder_reorder_pts == -1) { frame->pts = av_frame_get_best_effort_timestamp(frame); - } else if (decoder_reorder_pts) { - frame->pts = frame->pkt_pts; - } else { + } else if (!decoder_reorder_pts) { frame->pts = frame->pkt_dts; } } @@ -600,9 +598,7 @@ static int decoder_decode_frame(Decoder *d, AVFrame *frame, AVSubtitle *sub) { if (got_frame) { AVRational tb = (AVRational){1, frame->sample_rate}; if (frame->pts != AV_NOPTS_VALUE) - frame->pts = av_rescale_q(frame->pts, d->avctx->time_base, tb); - else if (frame->pkt_pts != AV_NOPTS_VALUE) - frame->pts = av_rescale_q(frame->pkt_pts, av_codec_get_pkt_timebase(d->avctx), tb); + frame->pts = av_rescale_q(frame->pts, av_codec_get_pkt_timebase(d->avctx), tb); else if (d->next_pts != AV_NOPTS_VALUE) frame->pts = av_rescale_q(d->next_pts, d->next_pts_tb, tb); if (frame->pts != AV_NOPTS_VALUE) { diff --git a/ffprobe.c b/ffprobe.c index bb3979c98b..662137c704 100644 --- a/ffprobe.c +++ b/ffprobe.c @@ -1884,8 +1884,8 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, else print_str_opt("media_type", "unknown"); print_int("stream_index", stream->index); print_int("key_frame", frame->key_frame); - print_ts ("pkt_pts", frame->pkt_pts); - print_time("pkt_pts_time", frame->pkt_pts, &stream->time_base); + print_ts ("pkt_pts", frame->pts); + print_time("pkt_pts_time", frame->pts, &stream->time_base); print_ts ("pkt_dts", frame->pkt_dts); print_time("pkt_dts_time", frame->pkt_dts, &stream->time_base); print_ts ("best_effort_timestamp", av_frame_get_best_effort_timestamp(frame)); diff --git a/tests/api/api-h264-test.c b/tests/api/api-h264-test.c index ef3a1fefff..7bdf92bb89 100644 --- a/tests/api/api-h264-test.c +++ b/tests/api/api-h264-test.c @@ -132,7 +132,7 @@ static int video_decode_example(const char *input_filename) return number_of_written_bytes; } printf("%d, %10"PRId64", %10"PRId64", %8"PRId64", %8d, 0x%08lx\n", video_stream, - fr->pkt_pts, fr->pkt_dts, av_frame_get_pkt_duration(fr), + fr->pts, fr->pkt_dts, av_frame_get_pkt_duration(fr), number_of_written_bytes, av_adler32_update(0, (const uint8_t*)byte_buffer, number_of_written_bytes)); } av_packet_unref(&pkt); diff --git a/tests/api/api-seek-test.c b/tests/api/api-seek-test.c index df47a5fbdb..8117df46fd 100644 --- a/tests/api/api-seek-test.c +++ b/tests/api/api-seek-test.c @@ -129,23 +129,23 @@ static int compute_crc_of_packets(AVFormatContext *fmt_ctx, int video_stream, av_log(NULL, AV_LOG_ERROR, "Can't copy image to buffer\n"); return number_of_written_bytes; } - if ((fr->pkt_pts > ts_end) && (!no_seeking)) + if ((fr->pts > ts_end) && (!no_seeking)) break; crc = av_adler32_update(0, (const uint8_t*)byte_buffer, number_of_written_bytes); - printf("%10"PRId64", 0x%08lx\n", fr->pkt_pts, crc); + printf("%10"PRId64", 0x%08lx\n", fr->pts, crc); if (no_seeking) { - if (add_crc_to_array(crc, fr->pkt_pts) < 0) + if (add_crc_to_array(crc, fr->pts) < 0) return -1; } else { - if (compare_crc_in_array(crc, fr->pkt_pts) < 0) + if (compare_crc_in_array(crc, fr->pts) < 0) return -1; } } } av_packet_unref(&pkt); av_init_packet(&pkt); - } while ((!end_of_stream || got_frame) && (no_seeking || (fr->pkt_pts + av_frame_get_pkt_duration(fr) <= ts_end))); + } while ((!end_of_stream || got_frame) && (no_seeking || (fr->pts + av_frame_get_pkt_duration(fr) <= ts_end))); av_packet_unref(&pkt); av_freep(&byte_buffer);