| 1375 | } |
| 1376 | |
| 1377 | int ff_decklink_read_packet(AVFormatContext *avctx, AVPacket *pkt) |
| 1378 | { |
| 1379 | struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data; |
| 1380 | struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx; |
| 1381 | |
| 1382 | ff_decklink_packet_queue_get(&ctx->queue, pkt, 1); |
| 1383 | |
| 1384 | if (ctx->tc_format && !(av_dict_get(ctx->video_st->metadata, "timecode", NULL, 0))) { |
| 1385 | size_t size; |
| 1386 | const uint8_t *side_metadata = av_packet_get_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA, &size); |
| 1387 | if (side_metadata) { |
| 1388 | if (av_packet_unpack_dictionary(side_metadata, size, &ctx->video_st->metadata) < 0) |
| 1389 | av_log(avctx, AV_LOG_ERROR, "Unable to set timecode\n"); |
| 1390 | } |
| 1391 | } |
| 1392 | |
| 1393 | return 0; |
| 1394 | } |
| 1395 | |
| 1396 | int ff_decklink_list_input_devices(AVFormatContext *avctx, struct AVDeviceInfoList *device_list) |
| 1397 | { |
nothing calls this directly
no test coverage detected