Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}