mirror of
				https://github.com/jojo61/vdr-plugin-softhdcuvid.git
				synced 2025-03-01 10:39:28 +00:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					f3ae69042f | ||
| 
						 | 
					6768bc5b18 | ||
| 
						 | 
					e624e9c83d | ||
| 
						 | 
					c907239bb5 | 
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							@@ -23,7 +23,7 @@ CUVID ?= 0
 | 
			
		||||
DRM ?= 0
 | 
			
		||||
 | 
			
		||||
# use libplacebo -
 | 
			
		||||
# available for all decoders but for DRM you need LIBPLACEBO_GL
 | 
			
		||||
# available for all decoders but for DRM and VAAPI you need LIBPLACEBO_GL
 | 
			
		||||
LIBPLACEBO ?= 0
 | 
			
		||||
LIBPLACEBO_GL ?= 0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -251,8 +251,8 @@ Setup: /etc/vdr/setup.conf
 | 
			
		||||
	(Red * 65536 +  Green * 256 + Blue)
 | 
			
		||||
 | 
			
		||||
	softhddevice.StudioLevels = 0
 | 
			
		||||
	0 use limited RGB (16-235) with vdpau.
 | 
			
		||||
	1 use full RGB (0-255) with vdpau.
 | 
			
		||||
	0 use limited RGB (16-235) with placebo.
 | 
			
		||||
	1 use full RGB (0-255) with placebo.
 | 
			
		||||
 | 
			
		||||
	softhddevice.Suspend.Close = 0
 | 
			
		||||
	1 suspend closes x11 window, connection and audio device.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								codec.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								codec.c
									
									
									
									
									
								
							@@ -469,6 +469,7 @@ void CodecVideoDecode(VideoDecoder *decoder, const AVPacket *avpkt) {
 | 
			
		||||
 | 
			
		||||
        *pkt = *avpkt; // use copy
 | 
			
		||||
        ret = avcodec_send_packet(video_ctx, pkt);
 | 
			
		||||
        //printf("send packet %x\n",ret);
 | 
			
		||||
        if (ret < 0) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
@@ -487,7 +488,8 @@ void CodecVideoDecode(VideoDecoder *decoder, const AVPacket *avpkt) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            if (ret >= 0) {
 | 
			
		||||
                if (decoder->filter) {
 | 
			
		||||
                //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 == 1) {
 | 
			
		||||
                        if (init_filters(video_ctx, decoder->HwDecoder, frame) < 0) {
 | 
			
		||||
                            Debug(3, "video: Init of VAAPI deint Filter failed\n");
 | 
			
		||||
@@ -558,7 +560,7 @@ next_part:
 | 
			
		||||
//		printf("video frame pts %#012" PRIx64 "
 | 
			
		||||
//%dms\n",frame->pts,(int)(apts - frame->pts) / 90);
 | 
			
		||||
#ifdef YADIF
 | 
			
		||||
                if (decoder->filter) {
 | 
			
		||||
                if ((frame->flags & AV_FRAME_FLAG_INTERLACED) && decoder->filter) {
 | 
			
		||||
                    if (decoder->filter == 1) {
 | 
			
		||||
                        if (init_filters(video_ctx, decoder->HwDecoder, frame) < 0) {
 | 
			
		||||
                            Debug(3,"video: Init of YADIF Filter failed\n");
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,7 @@ extern void ToggleLUT();
 | 
			
		||||
/// vdr-plugin version number.
 | 
			
		||||
/// Makefile extracts the version number for generating the file name
 | 
			
		||||
/// for the distribution archive.
 | 
			
		||||
static const char *const VERSION = "3.27"
 | 
			
		||||
static const char *const VERSION = "3.28"
 | 
			
		||||
#ifdef GIT_REV
 | 
			
		||||
                                   "-GIT" GIT_REV
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1226,7 +1226,7 @@ void cMenuSetupSoft::Create(void) {
 | 
			
		||||
	Add(new cMenuEditIntItem(tr("Video background color (Alpha)"), (int *)&BackgroundAlpha, 0, 0xFF));
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef PLACEBO
 | 
			
		||||
        Add(new cMenuEditBoolItem(tr("RGB Level"), &StudioLevels, trVDR("limited RGB"), trVDR("Full RGB")));
 | 
			
		||||
        Add(new cMenuEditBoolItem(tr("Color Range"), &StudioLevels, trVDR("limited RGB"), trVDR("Full RGB")));
 | 
			
		||||
#endif
 | 
			
		||||
        Add(new cMenuEditBoolItem(tr("60hz display mode"), &_60HzMode, trVDR("no"), trVDR("yes")));
 | 
			
		||||
        Add(new cMenuEditBoolItem(tr("Soft start a/v sync"), &SoftStartSync, trVDR("no"), trVDR("yes")));
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								video.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								video.c
									
									
									
									
									
								
							@@ -3503,6 +3503,18 @@ static void CuvidRenderFrame(CuvidDecoder *decoder, const AVCodecContext *video_
 | 
			
		||||
        VideoSetPts(&decoder->PTS, decoder->Interlaced, video_ctx, frame);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if  ((decoder->InputWidth != frame->width) || (decoder->InputHeight != frame->height)) {
 | 
			
		||||
        printf("Framesize change\n");
 | 
			
		||||
        CuvidCleanup(decoder);
 | 
			
		||||
        decoder->InputAspect = frame->sample_aspect_ratio;
 | 
			
		||||
        decoder->InputWidth = frame->width;
 | 
			
		||||
        decoder->InputHeight = frame->height;
 | 
			
		||||
        decoder->Interlaced = 0;
 | 
			
		||||
        decoder->SurfacesNeeded = VIDEO_SURFACES_MAX + 1;
 | 
			
		||||
        CuvidSetupOutput(decoder);
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // update aspect ratio changes
 | 
			
		||||
    if (decoder->InputWidth && decoder->InputHeight && av_cmp_q(decoder->InputAspect, frame->sample_aspect_ratio)) {
 | 
			
		||||
        Debug(3, "video/cuvid: aspect ratio changed\n");
 | 
			
		||||
@@ -3836,7 +3848,7 @@ static void CuvidMixVideo(CuvidDecoder *decoder, __attribute__((unused)) int lev
 | 
			
		||||
    current = decoder->SurfacesRb[decoder->SurfaceRead];
 | 
			
		||||
 | 
			
		||||
#ifdef USE_DRM
 | 
			
		||||
    
 | 
			
		||||
    AVFrame *frame;
 | 
			
		||||
    AVFrameSideData *sd, *sd1 = NULL, *sd2 = NULL;
 | 
			
		||||
    if (!decoder->Closing) {
 | 
			
		||||
        frame = decoder->frames[current];
 | 
			
		||||
@@ -3978,7 +3990,7 @@ static void CuvidMixVideo(CuvidDecoder *decoder, __attribute__((unused)) int lev
 | 
			
		||||
    // target.repr.bits.bit_shift =0;
 | 
			
		||||
 | 
			
		||||
#if USE_DRM
 | 
			
		||||
    AVFrame *frame;
 | 
			
		||||
    
 | 
			
		||||
    frame = decoder->frames[current];
 | 
			
		||||
 | 
			
		||||
    switch (VulkanTargetColorSpace) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user