mirror of
				https://github.com/jojo61/vdr-plugin-softhdcuvid.git
				synced 2025-03-01 10:39:28 +00:00 
			
		
		
		
	Compare commits
	
		
			7 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 47b461ab46 | ||
|  | 8629946041 | ||
|  | a222f6a1d5 | ||
|  | b51589aaa9 | ||
|  | c3af54aae0 | ||
|  | 4e96489e35 | ||
|  | 65017da5ac | 
							
								
								
									
										18
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								Makefile
									
									
									
									
									
								
							| @@ -24,7 +24,7 @@ DRM ?= 0 | ||||
|  | ||||
| # use libplacebo - | ||||
| # available for all decoders but for DRM you need LIBPLACEBO_GL | ||||
| LIBPLACEBO ?= 1 | ||||
| LIBPLACEBO ?= 0 | ||||
| LIBPLACEBO_GL ?= 0 | ||||
|  | ||||
| # use YADIF deint - only available with cuvid | ||||
| @@ -35,7 +35,6 @@ YADIF = 1 | ||||
|  | ||||
| CONFIG := -DDEBUG 		# remove '#' to enable debug output | ||||
|  | ||||
|  | ||||
| #--------------------- no more config needed past this point-------------------------------- | ||||
|  | ||||
| # sanitize selections -------- | ||||
| @@ -159,29 +158,29 @@ endif | ||||
|  | ||||
| ifeq ($(LIBPLACEBO_GL),1) | ||||
| CONFIG += -DPLACEBO_GL -DPLACEBO | ||||
| LIBS += -lepoxy | ||||
| LIBS += -lplacebo | ||||
| _CFLAGS += $(shell pkg-config --cflags libplacebo) | ||||
| LIBS += $(shell pkg-config --libs epoxy libplacebo) | ||||
| else | ||||
| LIBS += -lEGL | ||||
| LIBS += $(shell pkg-config --libs egl) | ||||
| endif | ||||
|  | ||||
| ifeq ($(LIBPLACEBO),1) | ||||
| CONFIG += -DPLACEBO | ||||
| LIBS += -lEGL | ||||
| LIBS += -lplacebo | ||||
| _CFLAGS += $(shell pkg-config --cflags libplacebo) | ||||
| LIBS += $(shell pkg-config --libs egl libplacebo) | ||||
| endif | ||||
|  | ||||
| ifeq ($(DRM),1) | ||||
| PLUGIN = softhddrm | ||||
| CONFIG += -DUSE_DRM -DVAAPI | ||||
| _CFLAGS += $(shell pkg-config --cflags libdrm) | ||||
| LIBS += -lgbm -ldrm -lEGL | ||||
| LIBS += $(shell pkg-config --libs egl gbm libdrm) | ||||
| endif | ||||
|  | ||||
| ifeq ($(CUVID),1) | ||||
| #CONFIG += -DUSE_PIP			# PIP support | ||||
| CONFIG += -DCUVID			# enable CUVID decoder | ||||
| LIBS += -lEGL -lGL | ||||
| LIBS += $(shell pkg-config --libs egl gl) | ||||
| ifeq ($(YADIF),1) | ||||
| CONFIG += -DYADIF			# Yadif only with CUVID | ||||
| endif | ||||
| @@ -274,6 +273,7 @@ LIBS += -lcuda -lnvcuvid | ||||
| endif | ||||
|  | ||||
| LIBS += -lGLEW -lGLU  -ldl -lglut | ||||
| #LIBS += -ldl $(shell pkg-config --libs glew glu glut) | ||||
|  | ||||
| ### Includes and Defines (add further entries here): | ||||
|  | ||||
|   | ||||
							
								
								
									
										49
									
								
								codec.c
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								codec.c
									
									
									
									
									
								
							| @@ -717,7 +717,15 @@ void CodecAudioOpen(AudioDecoder *audio_decoder, int codec_id) { | ||||
|     } | ||||
|  | ||||
|     if (CodecDownmix) { | ||||
| #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53,61,100) | ||||
| 	    audio_decoder->AudioCtx->request_channels = 2; | ||||
| #endif | ||||
| #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59,24,100) | ||||
| 	    audio_decoder->AudioCtx->request_channel_layout = AV_CH_LAYOUT_STEREO; | ||||
| #else | ||||
|         AVChannelLayout dmlayout = AV_CHANNEL_LAYOUT_STEREO; | ||||
|         av_opt_set_chlayout(audio_decoder->AudioCtx->priv_data, "downmix", &dmlayout, 0); | ||||
| #endif | ||||
|     } | ||||
|     pthread_mutex_lock(&CodecLockMutex); | ||||
|     // open codec | ||||
| @@ -896,6 +904,10 @@ static int CodecAudioUpdateHelper(AudioDecoder *audio_decoder, int *passthrough) | ||||
|         audio_decoder->SpdifCount = 0; | ||||
|         *passthrough = 1; | ||||
|     } | ||||
|      | ||||
|     if (audio_decoder->HwChannels > 2 && CodecDownmix) { | ||||
|         audio_decoder->HwChannels = 2; | ||||
|     } | ||||
|     // channels/sample-rate not support? | ||||
|     if ((err = AudioSetup(&audio_decoder->HwSampleRate, &audio_decoder->HwChannels, *passthrough))) { | ||||
|  | ||||
| @@ -1161,14 +1173,43 @@ static void CodecAudioUpdateFormat(AudioDecoder *audio_decoder) { | ||||
|     } | ||||
| #endif | ||||
|  | ||||
|     audio_decoder->Resample = swr_alloc_set_opts(audio_decoder->Resample, audio_ctx->channel_layout, AV_SAMPLE_FMT_S16, | ||||
|                                                  audio_decoder->HwSampleRate, audio_ctx->channel_layout, | ||||
|                                                  audio_ctx->sample_fmt, audio_ctx->sample_rate, 0, NULL); | ||||
| #if LIBSWRESAMPLE_VERSION_INT < AV_VERSION_INT(4,5,100) | ||||
|     if (audio_decoder->Channels > 2 && CodecDownmix) {  | ||||
|         audio_decoder->Resample = swr_alloc_set_opts(audio_decoder->Resample,  | ||||
|                                     AV_CH_LAYOUT_STEREO, AV_SAMPLE_FMT_S16, audio_decoder->HwSampleRate, | ||||
| 	                                audio_ctx->channel_layout, audio_ctx->sample_fmt,audio_ctx->sample_rate, | ||||
|                                     0, NULL); | ||||
|     } else { | ||||
|         audio_decoder->Resample = swr_alloc_set_opts(audio_decoder->Resample, audio_ctx->channel_layout, | ||||
| 	                                            AV_SAMPLE_FMT_S16, audio_decoder->HwSampleRate, | ||||
| 	                                            audio_ctx->channel_layout, audio_ctx->sample_fmt, | ||||
|                                                 audio_ctx->sample_rate, 0, NULL); | ||||
|     } | ||||
| #else | ||||
|     if (audio_decoder->Channels > 2 && CodecDownmix) {  // Codec does not Support Downmix | ||||
|     //printf("last ressort downmix Layout in %lx Lyout out: %llx \n",audio_ctx->channel_layout,AV_CH_LAYOUT_STEREO); | ||||
|         audio_decoder->Resample = swr_alloc(); | ||||
|         av_opt_set_channel_layout(audio_decoder->Resample, "in_channel_layout",audio_ctx->channel_layout, 0); | ||||
|         av_opt_set_channel_layout(audio_decoder->Resample, "out_channel_layout", AV_CH_LAYOUT_STEREO,  0); | ||||
|         av_opt_set_int(audio_decoder->Resample, "in_sample_rate",     audio_ctx->sample_rate,                0); | ||||
|         av_opt_set_int(audio_decoder->Resample, "out_sample_rate",    audio_ctx->sample_rate,                0); | ||||
|         av_opt_set_sample_fmt(audio_decoder->Resample, "in_sample_fmt",  audio_ctx->sample_fmt, 0); | ||||
|         av_opt_set_sample_fmt(audio_decoder->Resample, "out_sample_fmt", AV_SAMPLE_FMT_S16,  0); | ||||
|     } | ||||
|     else { | ||||
|         swr_alloc_set_opts2(&audio_decoder->Resample, &audio_ctx->ch_layout, | ||||
|                             AV_SAMPLE_FMT_S16, audio_decoder->HwSampleRate, | ||||
|                             &audio_ctx->ch_layout, audio_ctx->sample_fmt, | ||||
|                             audio_ctx->sample_rate, 0, NULL); | ||||
|     } | ||||
| #endif | ||||
|     if (audio_decoder->Resample) { | ||||
| 	    swr_init(audio_decoder->Resample); | ||||
|     } else { | ||||
| 	    Error(_("codec/audio: can't setup resample\n")); | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
|  | ||||
| /** | ||||
| @@ -1220,6 +1261,7 @@ void CodecAudioDecode(AudioDecoder *audio_decoder, const AVPacket *avpkt) { | ||||
|             if (CodecAudioPassthroughHelper(audio_decoder, avpkt)) { | ||||
|                 return; | ||||
|             } | ||||
|              | ||||
|             if (audio_decoder->Resample) { | ||||
|                 uint8_t outbuf[8192  * 2 * 8]; | ||||
|                 uint8_t *out[1]; | ||||
| @@ -1227,6 +1269,7 @@ void CodecAudioDecode(AudioDecoder *audio_decoder, const AVPacket *avpkt) { | ||||
|                 out[0] = outbuf; | ||||
|                 ret = swr_convert(audio_decoder->Resample, out, sizeof(outbuf) / (2 * audio_decoder->HwChannels), | ||||
|                                   (const uint8_t **)frame->extended_data, frame->nb_samples); | ||||
|                                    | ||||
|                 if (ret > 0) { | ||||
|                     if (!(audio_decoder->Passthrough & CodecPCM)) { | ||||
|                         CodecReorderAudioFrame((int16_t *)outbuf, ret * 2 * audio_decoder->HwChannels, | ||||
|   | ||||
| @@ -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.16" | ||||
| static const char *const VERSION = "3.17" | ||||
| #ifdef GIT_REV | ||||
|                                    "-GIT" GIT_REV | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user