Bug #2085 » vdr-plugin-softhddevice-revert-4f4d3044.diff
| vdr-plugin-softhddevice-4f4d3044792bb5db441e0c648ad86ae082774abf/video.c 2015-02-07 18:14:49.144265154 +0100 | ||
|---|---|---|
|
///
|
||
|
/// @note frame->interlaced_frame can't be used for interlace detection
|
||
|
///
|
||
|
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,34,1)
|
||
|
static void VideoSetPts(int64_t * pts_p, int interlaced, const AVFrame * frame)
|
||
|
{
|
||
|
int64_t pts;
|
||
|
// update video clock
|
||
|
if (*pts_p != (int64_t) AV_NOPTS_VALUE) {
|
||
|
*pts_p += interlaced ? 40 * 90 : 20 * 90;
|
||
|
#else
|
||
|
static void VideoSetPts(int64_t * pts_p, int interlaced,
|
||
|
const AVCodecContext * video_ctx, const AVFrame * frame)
|
||
|
{
|
||
| ... | ... | |
|
}
|
||
|
Debug(4, "video: %d/%d %" PRIx64 " -> %d\n", video_ctx->framerate.den,
|
||
|
video_ctx->framerate.num, av_frame_get_pkt_duration(frame), duration);
|
||
|
// update video clock
|
||
|
if (*pts_p != (int64_t) AV_NOPTS_VALUE) {
|
||
|
*pts_p += duration * 90;
|
||
|
#endif /* LIBAVCODEC 55,34,1 */
|
||
|
//Info("video: %s +pts\n", Timestamp2String(*pts_p));
|
||
|
}
|
||
|
//av_opt_ptr(avcodec_get_frame_class(), frame, "best_effort_timestamp");
|
||
| ... | ... | |
|
}
|
||
|
if (!decoder->Closing) {
|
||
|
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,34,1)
|
||
|
VideoSetPts(&decoder->PTS, decoder->Interlaced, frame);
|
||
|
#else
|
||
|
VideoSetPts(&decoder->PTS, decoder->Interlaced, video_ctx, frame);
|
||
|
#endif /* LIBAVODEC_VERSION 55,34,1 */
|
||
|
}
|
||
|
VaapiRenderFrame(decoder, video_ctx, frame);
|
||
|
#ifdef USE_AUTOCROP
|
||
| ... | ... | |
|
if (VdpauPreemption) { // display preempted
|
||
|
if (!decoder->Closing) {
|
||
|
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,34,1)
|
||
|
VideoSetPts(&decoder->PTS, decoder->Interlaced, frame);
|
||
|
#else
|
||
|
VideoSetPts(&decoder->PTS, decoder->Interlaced, video_ctx, frame);
|
||
|
#endif /* LIBAVCODEV_VERSION 55,34,1 */
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
| ... | ... | |
|
#endif
|
||
|
if (!decoder->Closing) {
|
||
|
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,34,1)
|
||
|
VideoSetPts(&decoder->PTS, decoder->Interlaced, frame);
|
||
|
#else
|
||
|
VideoSetPts(&decoder->PTS, decoder->Interlaced, video_ctx, frame);
|
||
|
#endif /* LIBAVCODEC 55,34,1 */
|
||
|
}
|
||
|
VdpauRenderFrame(decoder, video_ctx, frame);
|
||
|
}
|
||