static u_char* mss_playready_audio_write_extra_traf_atoms(void* ctx, u_char* p, size_t mdat_atom_start) { mss_playready_audio_extra_traf_atoms_context* context = (mss_playready_audio_extra_traf_atoms_context*)ctx; size_t auxiliary_data_start; auxiliary_data_start = mdat_atom_start - (mp4_encrypt_audio_get_auxiliary_data_size(context->state) + context->state->saiz_atom_size + context->state->saio_atom_size); p = mss_playready_audio_write_uuid_piff_atom(p, context->state, context->state->sequence, context->uuid_piff_atom_size); p = mp4_encrypt_audio_write_saiz_saio(context->state, p, auxiliary_data_start); return p; }
static u_char* edash_packager_audio_write_encryption_atoms(void* context, u_char* p, size_t mdat_atom_start) { mp4_encrypt_state_t* state = (mp4_encrypt_state_t*)context; size_t senc_data_size = MP4_AES_CTR_IV_SIZE * state->sequence->total_frame_count; size_t senc_atom_size = ATOM_HEADER_SIZE + sizeof(senc_atom_t) + senc_data_size; // saiz / saio p = mp4_encrypt_audio_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, 0x0); // flags write_be32(p, state->sequence->total_frame_count); p = mp4_encrypt_audio_write_auxiliary_data(state, p); return p; }