mirror of
				https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
				synced 2023-10-10 17:16:51 +00:00 
			
		
		
		
	Adds optional only complete mpeg packets support.
This commit is contained in:
		@@ -2,6 +2,7 @@ User johns
 | 
				
			|||||||
Date:
 | 
					Date:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Release Version 0.6.0
 | 
					    Release Version 0.6.0
 | 
				
			||||||
 | 
					    Adds optional only complete mpeg packets support.
 | 
				
			||||||
    Fixes text of EAC-3 pass-through setup.
 | 
					    Fixes text of EAC-3 pass-through setup.
 | 
				
			||||||
    Try to start or connect to X11 server with -xx.
 | 
					    Try to start or connect to X11 server with -xx.
 | 
				
			||||||
    Try to use HBR (High Bit-Rate) for EAC3.
 | 
					    Try to use HBR (High Bit-Rate) for EAC3.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							@@ -30,6 +30,7 @@ CONFIG += -DUSE_PIP			# PIP support
 | 
				
			|||||||
#CONFIG += -DHAVE_PTHREAD_NAME		# supports new pthread_setname_np
 | 
					#CONFIG += -DHAVE_PTHREAD_NAME		# supports new pthread_setname_np
 | 
				
			||||||
#CONFIG += -DNO_TS_AUDIO		# disable ts audio parser
 | 
					#CONFIG += -DNO_TS_AUDIO		# disable ts audio parser
 | 
				
			||||||
#CONFIG += -DUSE_TS_VIDEO		# build new ts video parser
 | 
					#CONFIG += -DUSE_TS_VIDEO		# build new ts video parser
 | 
				
			||||||
 | 
					#CONFIG += -DUSE_MPEG_COMPLETE		# support only complete mpeg packets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(ALSA),1)
 | 
					ifeq ($(ALSA),1)
 | 
				
			||||||
CONFIG += -DUSE_ALSA
 | 
					CONFIG += -DUSE_ALSA
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								codec.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								codec.c
									
									
									
									
									
								
							@@ -441,8 +441,11 @@ void CodecVideoOpen(VideoDecoder * decoder, const char *name, int codec_id)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    if (video_codec->capabilities & CODEC_CAP_TRUNCATED) {
 | 
					    if (video_codec->capabilities & CODEC_CAP_TRUNCATED) {
 | 
				
			||||||
	Debug(3, "codec: video can use truncated packets\n");
 | 
						Debug(3, "codec: video can use truncated packets\n");
 | 
				
			||||||
 | 
					#ifndef USE_MPEG_COMPLETE
 | 
				
			||||||
	// we send incomplete frames, for old PES recordings
 | 
						// we send incomplete frames, for old PES recordings
 | 
				
			||||||
 | 
						// this breaks the decoder for some stations
 | 
				
			||||||
	decoder->VideoCtx->flags |= CODEC_FLAG_TRUNCATED;
 | 
						decoder->VideoCtx->flags |= CODEC_FLAG_TRUNCATED;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // FIXME: own memory management for video frames.
 | 
					    // FIXME: own memory management for video frames.
 | 
				
			||||||
    if (video_codec->capabilities & CODEC_CAP_DR1) {
 | 
					    if (video_codec->capabilities & CODEC_CAP_DR1) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2249,11 +2249,16 @@ int PlayVideo3(VideoStream * stream, const uint8_t * data, int size)
 | 
				
			|||||||
    if (stream->CodecID == CODEC_ID_MPEG2VIDEO) {
 | 
					    if (stream->CodecID == CODEC_ID_MPEG2VIDEO) {
 | 
				
			||||||
	// SKIP PES header
 | 
						// SKIP PES header
 | 
				
			||||||
	VideoMpegEnqueue(stream, pts, data + 9 + n, size - 9 - n);
 | 
						VideoMpegEnqueue(stream, pts, data + 9 + n, size - 9 - n);
 | 
				
			||||||
 | 
					#ifndef USE_MPEG_COMPLETE
 | 
				
			||||||
	if (size < 65526) {
 | 
						if (size < 65526) {
 | 
				
			||||||
	    // mpeg codec supports incomplete packets
 | 
						    // mpeg codec supports incomplete packets
 | 
				
			||||||
	    // waiting for a full complete packages, increases needed delays
 | 
						    // waiting for a full complete packages, increases needed delays
 | 
				
			||||||
 | 
						    // PES recordings sends incomplete packets
 | 
				
			||||||
 | 
						    // incomplete packets  breaks the decoder for some stations
 | 
				
			||||||
 | 
						    // for the new USE_PIP code, this is only a very little improvement
 | 
				
			||||||
	    VideoNextPacket(stream, stream->CodecID);
 | 
						    VideoNextPacket(stream, stream->CodecID);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
	// SKIP PES header
 | 
						// SKIP PES header
 | 
				
			||||||
	VideoEnqueue(stream, pts, data + 9 + n, size - 9 - n);
 | 
						VideoEnqueue(stream, pts, data + 9 + n, size - 9 - n);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user