Merge of r4383, r4403:
MP4 fixes: *) Fixed mp4 if first entry in stsc was skipped (ticket #72). If first entry in stsc atom was skipped, and seek was to chunk boundary, than first_chunk in the generated stsc table wasn't set to 1. *) Fixed handling of mp4 above 2G and 32bit offsets (ticket #84).
This commit is contained in:
parent
4e0e62712f
commit
91ca805afb
|
@ -165,10 +165,10 @@ typedef struct {
|
|||
((u_char *) (p))[7] = n4
|
||||
|
||||
#define ngx_mp4_get_32value(p) \
|
||||
( (((u_char *) (p))[0] << 24) \
|
||||
+ (((u_char *) (p))[1] << 16) \
|
||||
+ (((u_char *) (p))[2] << 8) \
|
||||
+ (((u_char *) (p))[3]) )
|
||||
( ((uint32_t) ((u_char *) (p))[0] << 24) \
|
||||
+ ( ((u_char *) (p))[1] << 16) \
|
||||
+ ( ((u_char *) (p))[2] << 8) \
|
||||
+ ( ((u_char *) (p))[3]) )
|
||||
|
||||
#define ngx_mp4_set_32value(p, n) \
|
||||
((u_char *) (p))[0] = (u_char) ((n) >> 24); \
|
||||
|
@ -2382,6 +2382,8 @@ found:
|
|||
data->pos = (u_char *) entry;
|
||||
atom_size = sizeof(ngx_mp4_stsc_atom_t) + (data->last - data->pos);
|
||||
|
||||
ngx_mp4_set_32value(entry->chunk, 1);
|
||||
|
||||
if (trak->chunk_samples) {
|
||||
|
||||
first = &trak->stsc_chunk_entry;
|
||||
|
|
Loading…
Reference in New Issue