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:
		
							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 */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user