Lines Matching refs:pb

89 static void mov_cenc_write_encrypted(MOVMuxCencContext* ctx, AVIOContext *pb,
100 avio_write(pb, chunk, cur_size);
167 int ff_mov_cenc_write_packet(MOVMuxCencContext* ctx, AVIOContext *pb,
182 mov_cenc_write_encrypted(ctx, pb, buf_in, size);
192 int ff_mov_cenc_avc_parse_nal_units(MOVMuxCencContext* ctx, AVIOContext *pb,
214 avio_wb32(pb, nal_end - nal_start);
215 avio_w8(pb, *nal_start);
216 mov_cenc_write_encrypted(ctx, pb, nal_start + 1, nal_end - nal_start - 1);
233 int nal_length_size, AVIOContext *pb, const uint8_t *buf_in, int size)
252 avio_write(pb, buf_in, nal_length_size + 1);
266 mov_cenc_write_encrypted(ctx, pb, buf_in + 1, nalsize - 1);
282 static int64_t update_size(AVIOContext *pb, int64_t pos)
284 int64_t curpos = avio_tell(pb);
285 avio_seek(pb, pos, SEEK_SET);
286 avio_wb32(pb, curpos - pos); /* rewrite size */
287 avio_seek(pb, curpos, SEEK_SET);
292 static int mov_cenc_write_senc_tag(MOVMuxCencContext* ctx, AVIOContext *pb,
295 int64_t pos = avio_tell(pb);
297 avio_wb32(pb, 0); /* size */
298 ffio_wfourcc(pb, "senc");
299 avio_wb32(pb, ctx->use_subsamples ? 0x02 : 0); /* version & flags */
300 avio_wb32(pb, ctx->auxiliary_info_entries); /* entry count */
301 *auxiliary_info_offset = avio_tell(pb);
302 avio_write(pb, ctx->auxiliary_info, ctx->auxiliary_info_size);
303 return update_size(pb, pos);
306 static int mov_cenc_write_saio_tag(AVIOContext *pb, int64_t auxiliary_info_offset)
308 int64_t pos = avio_tell(pb);
311 avio_wb32(pb, 0); /* size */
312 ffio_wfourcc(pb, "saio");
314 avio_w8(pb, version);
315 avio_wb24(pb, 0); /* flags */
316 avio_wb32(pb, 1); /* entry count */
318 avio_wb64(pb, auxiliary_info_offset);
320 avio_wb32(pb, auxiliary_info_offset);
322 return update_size(pb, pos);
325 static int mov_cenc_write_saiz_tag(MOVMuxCencContext* ctx, AVIOContext *pb)
327 int64_t pos = avio_tell(pb);
328 avio_wb32(pb, 0); /* size */
329 ffio_wfourcc(pb, "saiz");
330 avio_wb32(pb, 0); /* version & flags */
331 avio_w8(pb, ctx->use_subsamples ? 0 : AES_CTR_IV_SIZE); /* default size*/
332 avio_wb32(pb, ctx->auxiliary_info_entries); /* entry count */
334 avio_write(pb, ctx->auxiliary_info_sizes, ctx->auxiliary_info_entries);
336 return update_size(pb, pos);
339 void ff_mov_cenc_write_stbl_atoms(MOVMuxCencContext* ctx, AVIOContext *pb)
343 mov_cenc_write_senc_tag(ctx, pb, &auxiliary_info_offset);
344 mov_cenc_write_saio_tag(pb, auxiliary_info_offset);
345 mov_cenc_write_saiz_tag(ctx, pb);
348 static int mov_cenc_write_schi_tag(AVIOContext *pb, uint8_t* kid)
350 int64_t pos = avio_tell(pb);
351 avio_wb32(pb, 0); /* size */
352 ffio_wfourcc(pb, "schi");
354 avio_wb32(pb, 32); /* size */
355 ffio_wfourcc(pb, "tenc");
356 avio_wb32(pb, 0); /* version & flags */
357 avio_wb24(pb, 1); /* is encrypted */
358 avio_w8(pb, AES_CTR_IV_SIZE); /* iv size */
359 avio_write(pb, kid, CENC_KID_SIZE);
361 return update_size(pb, pos);
364 int ff_mov_cenc_write_sinf_tag(MOVTrack* track, AVIOContext *pb, uint8_t* kid)
366 int64_t pos = avio_tell(pb);
367 avio_wb32(pb, 0); /* size */
368 ffio_wfourcc(pb, "sinf");
371 avio_wb32(pb, 12); /* size */
372 ffio_wfourcc(pb, "frma");
373 avio_wl32(pb, track->tag);
376 avio_wb32(pb, 20); /* size */
377 ffio_wfourcc(pb, "schm");
378 avio_wb32(pb, 0); /* version & flags */
379 ffio_wfourcc(pb, "cenc"); /* scheme type*/
380 avio_wb32(pb, 0x10000); /* scheme version */
383 mov_cenc_write_schi_tag(pb, kid);
385 return update_size(pb, pos);