2 Commits
V3.30 ... V3.32

Author SHA1 Message Date
jojo61
42658030a4 Support FFMPEG Version 8.1 2025-10-19 15:28:18 +02:00
jojo61
4c48e91156 Reverse trust on interlace flag 2025-03-18 15:31:57 +01:00
3 changed files with 7 additions and 11 deletions

View File

@@ -489,7 +489,7 @@ void CodecVideoDecode(VideoDecoder *decoder, const AVPacket *avpkt) {
} }
if (ret >= 0) { if (ret >= 0) {
//printf("Videosize %d:%d ttf %d\n",frame->width,frame->height,frame->interlaced_frame); //printf("Videosize %d:%d ttf %d\n",frame->width,frame->height,frame->interlaced_frame);
if ((frame->flags & AV_FRAME_FLAG_INTERLACED) && decoder->filter) { if (decoder->filter) {
if (decoder->filter == 1) { if (decoder->filter == 1) {
if (init_filters(video_ctx, decoder->HwDecoder, frame) < 0) { if (init_filters(video_ctx, decoder->HwDecoder, frame) < 0) {
Debug(3, "video: Init of VAAPI deint Filter failed\n"); Debug(3, "video: Init of VAAPI deint Filter failed\n");
@@ -560,7 +560,7 @@ next_part:
// printf("video frame pts %#012" PRIx64 " // printf("video frame pts %#012" PRIx64 "
//%dms\n",frame->pts,(int)(apts - frame->pts) / 90); //%dms\n",frame->pts,(int)(apts - frame->pts) / 90);
#ifdef YADIF #ifdef YADIF
if ((frame->flags & AV_FRAME_FLAG_INTERLACED) && decoder->filter) { if (decoder->filter) {
if (decoder->filter == 1) { if (decoder->filter == 1) {
if (init_filters(video_ctx, decoder->HwDecoder, frame) < 0) { if (init_filters(video_ctx, decoder->HwDecoder, frame) < 0) {
Debug(3,"video: Init of YADIF Filter failed\n"); Debug(3,"video: Init of YADIF Filter failed\n");

View File

@@ -61,7 +61,7 @@ extern void ToggleLUT();
/// vdr-plugin version number. /// vdr-plugin version number.
/// Makefile extracts the version number for generating the file name /// Makefile extracts the version number for generating the file name
/// for the distribution archive. /// for the distribution archive.
static const char *const VERSION = "3.30" static const char *const VERSION = "3.32"
#ifdef GIT_REV #ifdef GIT_REV
"-GIT" GIT_REV "-GIT" GIT_REV
#endif #endif

12
video.c
View File

@@ -2893,7 +2893,11 @@ static enum AVPixelFormat Cuvid_get_format(CuvidDecoder *decoder, AVCodecContext
bitformat16 = 1; bitformat16 = 1;
} }
#ifdef VAAPI #ifdef VAAPI
#if (LIBAVCODEC_VERSION_INT > AV_VERSION_INT(62, 11, 100))
if (video_ctx->profile == AV_PROFILE_HEVC_MAIN_10)
#else
if (video_ctx->profile == FF_PROFILE_HEVC_MAIN_10) if (video_ctx->profile == FF_PROFILE_HEVC_MAIN_10)
#endif
bitformat16 = 1; bitformat16 = 1;
#endif #endif
@@ -6099,15 +6103,7 @@ void VideoReleaseSurface(VideoHwDecoder *hw_decoder, unsigned surface) {
/// ///
enum AVPixelFormat Video_get_format(VideoHwDecoder *hw_decoder, AVCodecContext *video_ctx, enum AVPixelFormat Video_get_format(VideoHwDecoder *hw_decoder, AVCodecContext *video_ctx,
const enum AVPixelFormat *fmt) { const enum AVPixelFormat *fmt) {
#ifdef DEBUG
int ms_delay;
// FIXME: use frame time
ms_delay = (1000 * video_ctx->time_base.num * video_ctx->ticks_per_frame) / video_ctx->time_base.den;
Debug(3, "video: ready %s %2dms/frame %dms\n", Timestamp2String(VideoGetClock(hw_decoder)), ms_delay,
GetMsTicks() - VideoSwitch);
#endif
return VideoUsedModule->get_format(hw_decoder, video_ctx, fmt); return VideoUsedModule->get_format(hw_decoder, video_ctx, fmt);
} }