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…
Reference in New Issue
Block a user