30#define OFFSET(x) offsetof(struct decklink_cctx, x)
31#define DEC AV_OPT_FLAG_DECODING_PARAM
37 {
"raw_format",
"pixel format to be returned by the card when capturing" ,
OFFSET(raw_format),
AV_OPT_TYPE_INT, { .i64 = 0}, 0, 5,
DEC, .unit =
"raw_format" },
45 {
"teletext_lines",
"teletext lines bitmask",
OFFSET(teletext_lines),
AV_OPT_TYPE_INT64, { .i64 = 0 }, 0, 0x7ffffffffLL,
DEC, .unit =
"teletext_lines"},
49#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000
50 {
"duplex_mode",
"duplex mode",
OFFSET(duplex_mode),
AV_OPT_TYPE_INT, { .i64 = 0}, 0, 5,
DEC, .unit =
"duplex_mode"},
52 {
"duplex_mode",
"duplex mode",
OFFSET(duplex_mode),
AV_OPT_TYPE_INT, { .i64 = 0}, 0, 2,
DEC, .unit =
"duplex_mode"},
57#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000
63 {
"timecode_format",
"timecode format",
OFFSET(tc_format),
AV_OPT_TYPE_INT, { .i64 = 0}, 0, 8,
DEC, .unit =
"tc_format"},
72#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000
75 {
"video_input",
"video input",
OFFSET(video_input),
AV_OPT_TYPE_INT, { .i64 = 0}, 0, 6,
DEC, .unit =
"video_input"},
83 {
"audio_input",
"audio input",
OFFSET(audio_input),
AV_OPT_TYPE_INT, { .i64 = 0}, 0, 6,
DEC, .unit =
"audio_input"},
99 {
"queue_size",
"input queue buffer size",
OFFSET(queue_size),
AV_OPT_TYPE_INT64, { .i64 = (1024 * 1024 * 1024)}, 0, INT64_MAX,
DEC },
101 {
"decklink_copyts",
"copy timestamps, do not remove the initial offset",
OFFSET(copyts),
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1,
DEC },
102 {
"timestamp_align",
"capture start time alignment (in seconds)",
OFFSET(timestamp_align),
AV_OPT_TYPE_DURATION, { .i64 = 0 }, 0, INT_MAX,
DEC },
103 {
"wait_for_tc",
"drop frames till a frame with timecode is received. TC format must be set",
OFFSET(wait_for_tc),
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1,
DEC },
112 .class_name =
"Blackmagic DeckLink indev",
120 .p.name =
"decklink",
const FFInputFormat ff_decklink_demuxer
av_cold int ff_decklink_read_close(AVFormatContext *avctx)
int ff_decklink_read_packet(AVFormatContext *avctx, AVPacket *pkt)
int ff_decklink_list_input_devices(AVFormatContext *avctx, struct AVDeviceInfoList *device_list)
av_cold int ff_decklink_read_header(AVFormatContext *avctx)
static const AVClass decklink_demuxer_class
#define AV_OPT_FLAG_DEPRECATED
Set if option is deprecated, users should refer to AVOption.help text for more information.
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
@ AV_OPT_TYPE_DURATION
Underlying C type is int64_t.
@ AV_OPT_TYPE_INT64
Underlying C type is int64_t.
@ AV_OPT_TYPE_INT
Underlying C type is int.
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
@ AV_OPT_TYPE_STRING
Underlying C type is a uint8_t* that is either NULL or points to a C string allocated with the av_mal...
const char * av_default_item_name(void *ptr)
Return the context name.
#define LIBAVUTIL_VERSION_INT
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
@ AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT
Describe the class of an AVClass context structure.
static void list_formats(AVFormatContext *ctx, int type)