Lines Matching refs:args

60 static u32 vidtv_pes_write_header_stuffing(struct pes_header_write_args *args)
68 if (args->n_pes_h_s_bytes > PES_HEADER_MAX_STUFFING_BYTES) {
71 args->n_pes_h_s_bytes = PES_HEADER_MAX_STUFFING_BYTES;
74 return vidtv_memset(args->dest_buf,
75 args->dest_offset,
76 args->dest_buf_sz,
78 args->n_pes_h_s_bytes);
81 static u32 vidtv_pes_write_pts_dts(struct pes_header_write_args *args)
93 if (!args->send_pts && args->send_dts)
101 if (args->send_pts && args->send_dts) {
102 pts_dts.pts1 = (0x3 << 4) | ((args->pts & mask1) >> 29) | 0x1;
103 pts_dts.pts2 = cpu_to_be16(((args->pts & mask2) >> 14) | 0x1);
104 pts_dts.pts3 = cpu_to_be16(((args->pts & mask3) << 1) | 0x1);
106 pts_dts.dts1 = (0x1 << 4) | ((args->dts & mask1) >> 29) | 0x1;
107 pts_dts.dts2 = cpu_to_be16(((args->dts & mask2) >> 14) | 0x1);
108 pts_dts.dts3 = cpu_to_be16(((args->dts & mask3) << 1) | 0x1);
113 } else if (args->send_pts) {
114 pts.pts1 = (0x1 << 5) | ((args->pts & mask1) >> 29) | 0x1;
115 pts.pts2 = cpu_to_be16(((args->pts & mask2) >> 14) | 0x1);
116 pts.pts3 = cpu_to_be16(((args->pts & mask3) << 1) | 0x1);
123 nbytes += vidtv_memcpy(args->dest_buf,
124 args->dest_offset + nbytes,
125 args->dest_buf_sz,
132 static u32 vidtv_pes_write_h(struct pes_header_write_args *args)
139 u32 stream_id = (args->encoder_id == S302M) ? PRIVATE_STREAM_1_ID : args->stream_id;
144 pes_header.length = cpu_to_be16(vidtv_pes_op_get_len(args->send_pts,
145 args->send_dts) +
146 args->access_unit_len);
148 if (args->send_pts && args->send_dts)
150 else if (args->send_pts)
154 pes_optional.length = vidtv_pes_op_get_len(args->send_pts, args->send_dts) +
155 args->n_pes_h_s_bytes -
159 nbytes += vidtv_memcpy(args->dest_buf,
160 args->dest_offset + nbytes,
161 args->dest_buf_sz,
166 nbytes += vidtv_memcpy(args->dest_buf,
167 args->dest_offset + nbytes,
168 args->dest_buf_sz,
173 pts_dts_args = *args;
174 pts_dts_args.dest_offset = args->dest_offset + nbytes;
178 nbytes += vidtv_pes_write_header_stuffing(args);
207 static u32 vidtv_pes_write_stuffing(struct pes_ts_header_write_args *args,
215 if (!args->n_stuffing_bytes)
227 stuff_nbytes = args->n_stuffing_bytes - ts_adap.length;
237 nbytes += vidtv_memcpy(args->dest_buf,
239 args->dest_buf_sz,
245 nbytes += vidtv_pes_write_pcr_bits(args->dest_buf,
247 args->pcr);
249 *last_pcr = args->pcr;
254 nbytes += vidtv_memset(args->dest_buf,
256 args->dest_buf_sz,
265 if (nbytes != args->n_stuffing_bytes)
267 nbytes, args->n_stuffing_bytes);
272 static u32 vidtv_pes_write_ts_h(struct pes_ts_header_write_args args,
278 u16 payload_start = !args.wrote_pes_header;
281 ts_header.bitfield = cpu_to_be16((payload_start << 14) | args.pid);
283 ts_header.adaptation_field = (args.n_stuffing_bytes) > 0;
284 ts_header.payload = (args.n_stuffing_bytes) < PES_TS_HEADER_MAX_STUFFING_BYTES;
286 ts_header.continuity_counter = *args.continuity_counter;
288 vidtv_ts_inc_cc(args.continuity_counter);
291 nbytes += vidtv_memcpy(args.dest_buf,
292 args.dest_offset + nbytes,
293 args.dest_buf_sz,
298 nbytes += vidtv_pes_write_stuffing(&args, args.dest_offset + nbytes,
304 u32 vidtv_pes_write_into(struct pes_write_args *args)
306 u32 unaligned_bytes = (args->dest_offset % TS_PACKET_LEN);
308 .dest_buf = args->dest_buf,
309 .dest_buf_sz = args->dest_buf_sz,
310 .pid = args->pid,
311 .pcr = args->pcr,
312 .continuity_counter = args->continuity_counter,
315 .dest_buf = args->dest_buf,
316 .dest_buf_sz = args->dest_buf_sz,
317 .encoder_id = args->encoder_id,
318 .send_pts = args->send_pts,
319 .pts = args->pts,
320 .send_dts = args->send_dts,
321 .dts = args->dts,
322 .stream_id = args->stream_id,
323 .n_pes_h_s_bytes = args->n_pes_h_s_bytes,
324 .access_unit_len = args->access_unit_len,
326 u32 remaining_len = args->access_unit_len;
328 u64 last_pcr = args->pcr;
339 nbytes += vidtv_memset(args->dest_buf,
340 args->dest_offset + nbytes,
341 args->dest_buf_sz,
354 available_space -= vidtv_pes_h_get_len(args->send_pts,
355 args->send_dts);
361 available_space -= args->n_pes_h_s_bytes;
396 ts_header_args.dest_offset = args->dest_offset + nbytes;
407 pes_header_args.dest_offset = args->dest_offset +
414 nbytes += vidtv_memcpy(args->dest_buf,
415 args->dest_offset + nbytes,
416 args->dest_buf_sz,
417 args->from,
420 args->from += payload_size;