Skip to content

Commit bf98a71

Browse files
Fix: hide st40 anc frame from user
1 parent 39842d3 commit bf98a71

File tree

4 files changed

+30
-34
lines changed

4 files changed

+30
-34
lines changed

ecosystem/gstreamer_plugin/gst_mtl_st40p_tx.c

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ static GstFlowReturn gst_mtl_st40p_tx_parse_8331_memory_block(Gst_Mtl_St40p_Tx*
140140
GstMapInfo map_info,
141141
GstBuffer* buf);
142142

143-
static void gst_mtl_st40p_tx_fill_meta(struct st40_frame* frame, void* data,
143+
static void gst_mtl_st40p_tx_fill_meta(struct st40_frame_info *frame_info, void* data,
144144
guint32 data_size, guint did, guint sdid);
145145

146146
static GstFlowReturn gst_mtl_st40p_tx_parse_8331_meta(
@@ -482,19 +482,19 @@ static gboolean gst_mtl_st40p_tx_sink_event(GstPad* pad, GstObject* parent,
482482
* @param did Data Identifier (DID) to be set in the metadata.
483483
* @param sdid Secondary Data Identifier (SDID) to be set in the metadata.
484484
*/
485-
static void gst_mtl_st40p_tx_fill_meta(struct st40_frame* frame, void* data,
485+
static void gst_mtl_st40p_tx_fill_meta(struct st40_frame_info *frame_info, void* data,
486486
guint32 data_size, guint did, guint sdid) {
487-
frame->meta[0].c = 0;
488-
frame->meta[0].line_number = 0;
489-
frame->meta[0].hori_offset = 0;
490-
frame->meta[0].s = 0;
491-
frame->meta[0].stream_num = 0;
492-
frame->meta[0].did = did;
493-
frame->meta[0].sdid = sdid;
494-
frame->meta[0].udw_size = data_size;
495-
frame->meta[0].udw_offset = 0;
496-
frame->data = data;
497-
frame->meta_num = 1;
487+
frame_info->meta[0].c = 0;
488+
frame_info->meta[0].line_number = 0;
489+
frame_info->meta[0].hori_offset = 0;
490+
frame_info->meta[0].s = 0;
491+
frame_info->meta[0].stream_num = 0;
492+
frame_info->meta[0].did = did;
493+
frame_info->meta[0].sdid = sdid;
494+
frame_info->meta[0].udw_size = data_size;
495+
frame_info->meta[0].udw_offset = 0;
496+
frame_info->udw_buffer_fill = data_size;
497+
frame_info->meta_num = 1;
498498
}
499499

500500
/* we dont' really check the data here we let the st40 ancillary data to do so */
@@ -716,12 +716,8 @@ static GstFlowReturn gst_mtl_st40p_tx_parse_memory_block(Gst_Mtl_St40p_Tx* sink,
716716
: bytes_left_to_process;
717717

718718
memcpy(frame_info->udw_buff_addr, cur_addr_buf, bytes_left_to_process_cur);
719-
for (int i = 0; i < bytes_left_to_process_cur; i++) {
720-
printf("%d", frame_info->udw_buff_addr[i]);
721-
}
722-
printf("\n");
723719

724-
gst_mtl_st40p_tx_fill_meta(frame_info->anc_frame, frame_info->udw_buff_addr,
720+
gst_mtl_st40p_tx_fill_meta(frame_info, frame_info->udw_buff_addr,
725721
bytes_left_to_process_cur, sink->did, sink->sdid);
726722

727723
if (sink->use_pts_for_pacing) {

include/experimental/st40_pipeline_api.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ typedef struct st40p_tx_ctx* st40p_tx_handle;
1717

1818
/** The structure info for st40 frame meta. */
1919
struct st40_frame_info {
20-
/** Pointer to the main ancillary frame buffer */
21-
struct st40_frame* anc_frame;
2220
/** Pointer to the metadata array for this frame */
2321
struct st40_meta* meta;
2422
/** Pointer to the number of metadata entries in the frame */

lib/src/st2110/experimental/st40_pipeline_tx.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,15 +144,15 @@ static int tx_st40p_asign_anc_frames(struct st40p_tx_ctx* ctx) {
144144
for (i = 0; i < ctx->framebuff_cnt; i++) {
145145
frame_info = &frames[i].frame_info;
146146

147-
frame_info->anc_frame = st40_tx_get_framebuffer(ctx->transport, i);
148-
if (!frame_info->anc_frame) {
147+
frames[i].anc_frame = st40_tx_get_framebuffer(ctx->transport, i);
148+
if (!frames[i].anc_frame) {
149149
err("%s(%d), Failed to get framebuffer %u \n", __func__, idx, i);
150150
return -EIO;
151151
}
152-
dbg("%s(%d), fb %p\n", __func__, idx, frame_info->anc_frame);
152+
dbg("%s(%d), fb %p\n", __func__, idx, frames[i].anc_frame);
153153

154-
frame_info->meta = frame_info->anc_frame->meta;
155-
frame_info->anc_frame->data = frame_info->udw_buff_addr;
154+
frame_info->meta = frames[i].anc_frame->meta;
155+
frames[i].anc_frame->data = frame_info->udw_buff_addr;
156156
}
157157
return 0;
158158
}
@@ -400,19 +400,19 @@ int st40p_tx_put_frame(st40p_tx_handle handle, struct st40_frame_info* frame_inf
400400
return -EIO;
401401
}
402402

403-
if (!frame_info->anc_frame->data_size && frame_info->meta_num)
404-
frame_info->anc_frame->data_size = frame_info->udw_buffer_fill;
403+
if (!framebuff->anc_frame->data_size && frame_info->meta_num)
404+
framebuff->anc_frame->data_size = frame_info->udw_buffer_fill;
405405

406-
if (!frame_info->anc_frame->data_size) {
406+
if (!framebuff->anc_frame->data_size) {
407407
err("%s(%d), frame %u data size is 0\n", __func__, idx, producer_idx);
408408
return -EIO;
409409
}
410410

411-
if (!frame_info->anc_frame->meta_num && frame_info->meta_num)
412-
frame_info->anc_frame->meta_num = frame_info->meta_num;
411+
if (!framebuff->anc_frame->meta_num && frame_info->meta_num)
412+
framebuff->anc_frame->meta_num = frame_info->meta_num;
413413

414-
if (frame_info->anc_frame->meta_num > ST40_MAX_META ||
415-
frame_info->anc_frame->meta_num < 1) {
414+
if (framebuff->anc_frame->meta_num > ST40_MAX_META ||
415+
framebuff->anc_frame->meta_num < 1) {
416416
err("%s(%d), frame %u meta_num %u invalid\n", __func__, idx, producer_idx,
417417
frame_info->meta_num);
418418
return -EIO;
@@ -421,7 +421,7 @@ int st40p_tx_put_frame(st40p_tx_handle handle, struct st40_frame_info* frame_inf
421421
framebuff->frame_info.udw_buffer_fill = 0;
422422
framebuff->stat = ST40P_TX_FRAME_READY;
423423
ctx->stat_put_frame++;
424-
dbg("%s(%d), frame %u(%p) succ\n", __func__, idx, producer_idx, frame_info->anc_frame);
424+
dbg("%s(%d), frame %u(%p) succ\n", __func__, idx, producer_idx, framebuff->anc_frame);
425425
return 0;
426426
}
427427

@@ -630,5 +630,5 @@ void* st40p_tx_get_fb_addr(st40p_tx_handle handle, uint16_t idx) {
630630
return NULL;
631631
}
632632

633-
return ctx->framebuffs[idx].frame_info.anc_frame;
633+
return ctx->framebuffs[idx].anc_frame;
634634
}

lib/src/st2110/experimental/st40_pipeline_tx.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ struct st40p_tx_frame {
5656
enum st40p_tx_frame_status stat;
5757
struct st40_frame_info frame_info;
5858
uint16_t idx;
59+
/** Pointer to the main ancillary frame buffer */
60+
struct st40_frame* anc_frame;
5961
};
6062

6163
#if defined(__cplusplus)

0 commit comments

Comments
 (0)