Lines Matching refs:args
59 static u32 vidtv_pes_write_header_stuffing(struct pes_header_write_args *args)
67 if (args->n_pes_h_s_bytes > PES_HEADER_MAX_STUFFING_BYTES) {
70 args->n_pes_h_s_bytes = PES_HEADER_MAX_STUFFING_BYTES;
73 return vidtv_memset(args->dest_buf,
74 args->dest_offset,
75 args->dest_buf_sz,
77 args->n_pes_h_s_bytes);
80 static u32 vidtv_pes_write_pts_dts(struct pes_header_write_args *args)
92 if (!args->send_pts && args->send_dts)
100 if (args->send_pts && args->send_dts) {
101 pts_dts.pts1 = (0x3 << 4) | ((args->pts & mask1) >> 29) | 0x1;
102 pts_dts.pts2 = cpu_to_be16(((args->pts & mask2) >> 14) | 0x1);
103 pts_dts.pts3 = cpu_to_be16(((args->pts & mask3) << 1) | 0x1);
105 pts_dts.dts1 = (0x1 << 4) | ((args->dts & mask1) >> 29) | 0x1;
106 pts_dts.dts2 = cpu_to_be16(((args->dts & mask2) >> 14) | 0x1);
107 pts_dts.dts3 = cpu_to_be16(((args->dts & mask3) << 1) | 0x1);
112 } else if (args->send_pts) {
113 pts.pts1 = (0x1 << 5) | ((args->pts & mask1) >> 29) | 0x1;
114 pts.pts2 = cpu_to_be16(((args->pts & mask2) >> 14) | 0x1);
115 pts.pts3 = cpu_to_be16(((args->pts & mask3) << 1) | 0x1);
122 nbytes += vidtv_memcpy(args->dest_buf,
123 args->dest_offset + nbytes,
124 args->dest_buf_sz,
131 static u32 vidtv_pes_write_h(struct pes_header_write_args *args)
138 u32 stream_id = (args->encoder_id == S302M) ? PRIVATE_STREAM_1_ID : args->stream_id;
143 pes_header.length = cpu_to_be16(vidtv_pes_op_get_len(args->send_pts,
144 args->send_dts) +
145 args->access_unit_len);
147 if (args->send_pts && args->send_dts)
149 else if (args->send_pts)
153 pes_optional.length = vidtv_pes_op_get_len(args->send_pts, args->send_dts) +
154 args->n_pes_h_s_bytes -
158 nbytes += vidtv_memcpy(args->dest_buf,
159 args->dest_offset + nbytes,
160 args->dest_buf_sz,
165 nbytes += vidtv_memcpy(args->dest_buf,
166 args->dest_offset + nbytes,
167 args->dest_buf_sz,
172 pts_dts_args = *args;
173 pts_dts_args.dest_offset = args->dest_offset + nbytes;
177 nbytes += vidtv_pes_write_header_stuffing(args);
206 static u32 vidtv_pes_write_stuffing(struct pes_ts_header_write_args *args,
214 if (!args->n_stuffing_bytes)
226 stuff_nbytes = args->n_stuffing_bytes - ts_adap.length;
236 nbytes += vidtv_memcpy(args->dest_buf,
238 args->dest_buf_sz,
244 nbytes += vidtv_pes_write_pcr_bits(args->dest_buf,
246 args->pcr);
248 *last_pcr = args->pcr;
253 nbytes += vidtv_memset(args->dest_buf,
255 args->dest_buf_sz,
264 if (nbytes != args->n_stuffing_bytes)
266 nbytes, args->n_stuffing_bytes);
271 static u32 vidtv_pes_write_ts_h(struct pes_ts_header_write_args args,
277 u16 payload_start = !args.wrote_pes_header;
280 ts_header.bitfield = cpu_to_be16((payload_start << 14) | args.pid);
282 ts_header.adaptation_field = (args.n_stuffing_bytes) > 0;
283 ts_header.payload = (args.n_stuffing_bytes) < PES_TS_HEADER_MAX_STUFFING_BYTES;
285 ts_header.continuity_counter = *args.continuity_counter;
287 vidtv_ts_inc_cc(args.continuity_counter);
290 nbytes += vidtv_memcpy(args.dest_buf,
291 args.dest_offset + nbytes,
292 args.dest_buf_sz,
297 nbytes += vidtv_pes_write_stuffing(&args, args.dest_offset + nbytes,
303 u32 vidtv_pes_write_into(struct pes_write_args *args)
305 u32 unaligned_bytes = (args->dest_offset % TS_PACKET_LEN);
307 .dest_buf = args->dest_buf,
308 .dest_buf_sz = args->dest_buf_sz,
309 .pid = args->pid,
310 .pcr = args->pcr,
311 .continuity_counter = args->continuity_counter,
314 .dest_buf = args->dest_buf,
315 .dest_buf_sz = args->dest_buf_sz,
316 .encoder_id = args->encoder_id,
317 .send_pts = args->send_pts,
318 .pts = args->pts,
319 .send_dts = args->send_dts,
320 .dts = args->dts,
321 .stream_id = args->stream_id,
322 .n_pes_h_s_bytes = args->n_pes_h_s_bytes,
323 .access_unit_len = args->access_unit_len,
325 u32 remaining_len = args->access_unit_len;
327 u64 last_pcr = args->pcr;
338 nbytes += vidtv_memset(args->dest_buf,
339 args->dest_offset + nbytes,
340 args->dest_buf_sz,
353 available_space -= vidtv_pes_h_get_len(args->send_pts,
354 args->send_dts);
360 available_space -= args->n_pes_h_s_bytes;
395 ts_header_args.dest_offset = args->dest_offset + nbytes;
406 pes_header_args.dest_offset = args->dest_offset +
413 nbytes += vidtv_memcpy(args->dest_buf,
414 args->dest_offset + nbytes,
415 args->dest_buf_sz,
416 args->from,
419 args->from += payload_size;