Mp4: skipped empty stss atom table in output.

The atom may have no data entries after cropping.

This fixes "zero size buf in output" alerts.
This commit is contained in:
Sergey Kandaurov 2014-03-24 17:55:10 +04:00
parent effbf466aa
commit 2070abf516

View File

@ -2273,16 +2273,21 @@ ngx_http_mp4_update_stss_atom(ngx_http_mp4_file_t *mp4,
ngx_http_mp4_crop_stss_data(mp4, trak, 1); ngx_http_mp4_crop_stss_data(mp4, trak, 1);
ngx_http_mp4_crop_stss_data(mp4, trak, 0); ngx_http_mp4_crop_stss_data(mp4, trak, 0);
entry = (uint32_t *) data->pos; if (trak->sync_samples_entries) {
end = (uint32_t *) data->last; entry = (uint32_t *) data->pos;
end = (uint32_t *) data->last;
start_sample = trak->start_sample; start_sample = trak->start_sample;
while (entry < end) { while (entry < end) {
sample = ngx_mp4_get_32value(entry); sample = ngx_mp4_get_32value(entry);
sample -= start_sample; sample -= start_sample;
ngx_mp4_set_32value(entry, sample); ngx_mp4_set_32value(entry, sample);
entry++; entry++;
}
} else {
trak->out[NGX_HTTP_MP4_STSS_DATA].buf = NULL;
} }
atom_size = sizeof(ngx_http_mp4_stss_atom_t) + (data->last - data->pos); atom_size = sizeof(ngx_http_mp4_stss_atom_t) + (data->last - data->pos);