@@ -123,6 +123,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
int aligned_width = ((avctx->width + 47) / 48) * 48;
int stride = aligned_width * 8 / 3;
int line_padding = stride - ((avctx->width * 8 + 11) / 12) * 4;
+ AVFrameSideData *side_data;
int h, w, ret;
uint8_t *dst;
@@ -233,6 +234,14 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
}
}
+ side_data = av_frame_get_side_data(pic, AV_FRAME_DATA_A53_CC);
+ if (side_data && side_data->size) {
+ uint8_t *buf = av_packet_new_side_data(pkt, AV_PKT_DATA_A53_CC, side_data->size);
+ if (!buf)
+ return AVERROR(ENOMEM);
+ memcpy(buf, side_data->data, side_data->size);
+ }
+
pkt->flags |= AV_PKT_FLAG_KEY;
*got_packet = 1;
return 0;
When encoding to V210, make sure the CC side data makes it through in the resulting AVPacket. This is needed so the decklink output module can put out captions when in 10-bit mode. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> --- libavcodec/v210enc.c | 9 +++++++++ 1 file changed, 9 insertions(+)