static u_char* mss_playready_video_write_extra_traf_atoms(void* ctx, u_char* p, size_t mdat_atom_start) { mss_playready_video_extra_traf_atoms_context* context = (mss_playready_video_extra_traf_atoms_context*)ctx; size_t auxiliary_data_start; auxiliary_data_start = mdat_atom_start - (context->state->auxiliary_data.pos - context->state->auxiliary_data.start + context->state->base.saiz_atom_size + context->state->base.saio_atom_size); p = mss_playready_video_write_uuid_piff_atom(p, context->state, context->state->base.sequence, context->uuid_piff_atom_size); p = mp4_encrypt_video_write_saiz_saio(context->state, p, auxiliary_data_start); return p; }
static u_char* edash_packager_video_write_encryption_atoms(void* context, u_char* p, size_t mdat_atom_start) { mp4_encrypt_video_state_t* state = (mp4_encrypt_video_state_t*)context; size_t senc_data_size = state->auxiliary_data.pos - state->auxiliary_data.start; size_t senc_atom_size = ATOM_HEADER_SIZE + sizeof(senc_atom_t) + senc_data_size; // saiz / saio p = mp4_encrypt_video_write_saiz_saio(state, p, mdat_atom_start - senc_data_size); // senc write_atom_header(p, senc_atom_size, 's', 'e', 'n', 'c'); write_be32(p, 0x2); // flags write_be32(p, state->base.sequence->total_frame_count); p = vod_copy(p, state->auxiliary_data.start, senc_data_size); return p; }