Move _STREAM_BOUNDARY before _STREAM_PART (#3720)

The boundary delimiter (_STREAM_BOUNDARY) needs to be send before the
body part (_STREAM_PART) too follow RFC2046. This caused ffplay/ffmpeg
to fail to open the MJPEG stream.
This commit is contained in:
Alexander Bergmann 2020-02-14 10:03:38 +01:00 committed by GitHub
parent 9b75c65fc7
commit 13e02063d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -403,6 +403,9 @@ static esp_err_t stream_handler(httpd_req_t *req){
} }
} }
} }
if(res == ESP_OK){
res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
}
if(res == ESP_OK){ if(res == ESP_OK){
size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len); size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len);
res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen); res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
@ -410,9 +413,6 @@ static esp_err_t stream_handler(httpd_req_t *req){
if(res == ESP_OK){ if(res == ESP_OK){
res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len); res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
} }
if(res == ESP_OK){
res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
}
if(fb){ if(fb){
esp_camera_fb_return(fb); esp_camera_fb_return(fb);
fb = NULL; fb = NULL;