You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	ffserver: Use singlejpeg muxer for jpeg
Fixes Ticket4218 Based on patch by: Otávio Ribeiro Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
				
					committed by
					
						 Michael Niedermayer
						Michael Niedermayer
					
				
			
			
				
	
			
			
			
						parent
						
							51ac1f616f
						
					
				
				
					commit
					3b89a67315
				
			| @@ -967,6 +967,10 @@ static int handle_connection(HTTPContext *c) | ||||
|         /* close connection if trailer sent */ | ||||
|         if (c->state == HTTPSTATE_SEND_DATA_TRAILER) | ||||
|             return -1; | ||||
|         /* Check if it is a single jpeg frame 123 */ | ||||
|         if (c->stream->single_frame && c->data_count > c->cur_frame_bytes && c->cur_frame_bytes > 0) { | ||||
|             close_connection(c); | ||||
|         } | ||||
|         break; | ||||
|     case HTTPSTATE_RECEIVE_DATA: | ||||
|         /* no need to read if no events */ | ||||
|   | ||||
| @@ -862,8 +862,10 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd, | ||||
|         } else { | ||||
|             stream->stream_type = STREAM_TYPE_LIVE; | ||||
|             /* JPEG cannot be used here, so use single frame MJPEG */ | ||||
|             if (!strcmp(arg, "jpeg")) | ||||
|                 strcpy(arg, "mjpeg"); | ||||
|             if (!strcmp(arg, "jpeg")) { | ||||
|                 strcpy(arg, "singlejpeg"); | ||||
|                 stream->single_frame=1; | ||||
|             } | ||||
|             stream->fmt = ffserver_guess_format(arg, NULL, NULL); | ||||
|             if (!stream->fmt) | ||||
|                 ERROR("Unknown Format: '%s'\n", arg); | ||||
|   | ||||
| @@ -79,6 +79,7 @@ typedef struct FFServerStream { | ||||
|     int multicast_port;           /* first port used for multicast */ | ||||
|     int multicast_ttl; | ||||
|     int loop;                     /* if true, send the stream in loops (only meaningful if file) */ | ||||
|     char single_frame;            /* only single frame */ | ||||
|  | ||||
|     /* feed specific */ | ||||
|     int feed_opened;              /* true if someone is writing to the feed */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user