FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavdevice
decklink_common.h
Go to the documentation of this file.
1
/*
2
* Blackmagic DeckLink common code
3
* Copyright (c) 2013-2014 Ramiro Polla, Luca Barbato, Deti Fliegl
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#include <DeckLinkAPIVersion.h>
23
24
#include "
decklink_common_c.h
"
25
26
class
decklink_output_callback
;
27
class
decklink_input_callback
;
28
29
typedef
struct
AVPacketQueue
{
30
AVPacketList
*
first_pkt
, *
last_pkt
;
31
int
nb_packets
;
32
unsigned
long
long
size
;
33
int
abort_request
;
34
pthread_mutex_t
mutex
;
35
pthread_cond_t
cond
;
36
AVFormatContext
*
avctx
;
37
}
AVPacketQueue
;
38
39
struct
decklink_ctx
{
40
/* DeckLink SDK interfaces */
41
IDeckLink *
dl
;
42
IDeckLinkOutput *
dlo
;
43
IDeckLinkInput *
dli
;
44
decklink_output_callback
*
output_callback
;
45
decklink_input_callback
*
input_callback
;
46
47
/* DeckLink mode information */
48
BMDTimeValue
bmd_tb_den
;
49
BMDTimeValue
bmd_tb_num
;
50
BMDDisplayMode
bmd_mode
;
51
int
bmd_width
;
52
int
bmd_height
;
53
int
bmd_field_dominance
;
54
55
/* Capture buffer queue */
56
AVPacketQueue
queue
;
57
58
/* Streams present */
59
int
audio
;
60
int
video
;
61
62
/* Status */
63
int
playback_started
;
64
int
capture_started
;
65
int64_t
last_pts
;
66
unsigned
long
frameCount
;
67
unsigned
int
dropped
;
68
AVStream
*
audio_st
;
69
AVStream
*
video_st
;
70
71
/* Options */
72
int
list_devices
;
73
int
list_formats
;
74
double
preroll
;
75
76
int
frames_preroll
;
77
int
frames_buffer
;
78
79
sem_t
semaphore
;
80
81
int
channels
;
82
};
83
84
typedef
enum
{
DIRECTION_IN
,
DIRECTION_OUT
}
decklink_direction_t
;
85
86
#ifdef _WIN32
87
#if BLACKMAGIC_DECKLINK_API_VERSION < 0x0a040000
88
typedef
unsigned
long
buffercount_type
;
89
#else
90
typedef
unsigned
int
buffercount_type
;
91
#endif
92
IDeckLinkIterator *CreateDeckLinkIteratorInstance(
void
);
93
#else
94
typedef
uint32_t
buffercount_type
;
95
#endif
96
97
98
HRESULT
ff_decklink_get_display_name
(IDeckLink *This,
const
char
**displayName);
99
int
ff_decklink_set_format
(
AVFormatContext
*avctx,
int
width
,
int
height
,
int
tb_num,
int
tb_den,
decklink_direction_t
direction =
DIRECTION_OUT
,
int
num = 0);
100
int
ff_decklink_set_format
(
AVFormatContext
*avctx,
decklink_direction_t
direction,
int
num);
101
int
ff_decklink_list_devices
(
AVFormatContext
*avctx);
102
int
ff_decklink_list_formats
(
AVFormatContext
*avctx,
decklink_direction_t
direction =
DIRECTION_OUT
);
103
AVPacketQueue::cond
pthread_cond_t cond
Definition:
decklink_common.h:35
AVFormatContext
Format I/O context.
Definition:
avformat.h:1273
AVPacketQueue::nb_packets
int nb_packets
Definition:
decklink_common.h:31
decklink_ctx::dropped
unsigned int dropped
Definition:
decklink_common.h:67
pthread_mutex_t
HMTX pthread_mutex_t
Definition:
os2threads.h:40
decklink_ctx::dl
IDeckLink * dl
Definition:
decklink_common.h:41
DIRECTION_IN
Definition:
decklink_common.h:84
AVPacketQueue::mutex
pthread_mutex_t mutex
Definition:
decklink_common.h:34
DIRECTION_OUT
Definition:
decklink_common.h:84
ff_decklink_get_display_name
HRESULT ff_decklink_get_display_name(IDeckLink *This, const char **displayName)
Definition:
decklink_common.cpp:90
pthread_cond_t
Definition:
os2threads.h:43
AVPacketList
Definition:
avformat.h:1855
decklink_ctx::bmd_tb_num
BMDTimeValue bmd_tb_num
Definition:
decklink_common.h:49
decklink_ctx::bmd_width
int bmd_width
Definition:
decklink_common.h:51
decklink_ctx::output_callback
decklink_output_callback * output_callback
Definition:
decklink_common.h:44
decklink_ctx::list_devices
int list_devices
Definition:
decklink_common.h:72
decklink_ctx::video_st
AVStream * video_st
Definition:
decklink_common.h:69
decklink_ctx::audio
int audio
Definition:
decklink_common.h:59
AVPacketQueue::last_pkt
AVPacketList * last_pkt
Definition:
decklink_common.h:30
decklink_ctx::list_formats
int list_formats
Definition:
decklink_common.h:73
ff_decklink_list_formats
int ff_decklink_list_formats(AVFormatContext *avctx, decklink_direction_t direction=DIRECTION_OUT)
Definition:
decklink_common.cpp:200
decklink_ctx
Definition:
decklink_common.h:39
AVPacketQueue::abort_request
int abort_request
Definition:
decklink_common.h:33
decklink_common_c.h
decklink_ctx::channels
int channels
Definition:
decklink_common.h:81
decklink_ctx::frames_buffer
int frames_buffer
Definition:
decklink_common.h:77
AVPacketQueue::first_pkt
AVPacketList * first_pkt
Definition:
decklink_common.h:30
AVPacketQueue::size
unsigned long long size
Definition:
decklink_common.h:32
decklink_ctx::playback_started
int playback_started
Definition:
decklink_common.h:63
decklink_ctx::dli
IDeckLinkInput * dli
Definition:
decklink_common.h:43
decklink_ctx::queue
AVPacketQueue queue
Definition:
decklink_common.h:56
buffercount_type
uint32_t buffercount_type
Definition:
decklink_common.h:94
decklink_ctx::frameCount
unsigned long frameCount
Definition:
decklink_common.h:66
decklink_ctx::semaphore
sem_t semaphore
Definition:
decklink_common.h:79
AVStream
Stream structure.
Definition:
avformat.h:842
AVPacketQueue
Definition:
decklink_common.h:29
height
BYTE int const BYTE int int int height
Definition:
avisynth_c.h:676
decklink_ctx::audio_st
AVStream * audio_st
Definition:
decklink_common.h:68
decklink_direction_t
decklink_direction_t
Definition:
decklink_common.h:84
decklink_ctx::bmd_field_dominance
int bmd_field_dominance
Definition:
decklink_common.h:53
AVPacketQueue::avctx
AVFormatContext * avctx
Definition:
decklink_common.h:36
HRESULT
DWORD HRESULT
Definition:
basicDataTypeConversions.h:54
decklink_ctx::input_callback
decklink_input_callback * input_callback
Definition:
decklink_common.h:45
decklink_ctx::frames_preroll
int frames_preroll
Definition:
decklink_common.h:76
decklink_ctx::bmd_mode
BMDDisplayMode bmd_mode
Definition:
decklink_common.h:50
decklink_ctx::preroll
double preroll
Definition:
decklink_common.h:74
decklink_ctx::bmd_height
int bmd_height
Definition:
decklink_common.h:52
decklink_ctx::capture_started
int capture_started
Definition:
decklink_common.h:64
decklink_ctx::last_pts
int64_t last_pts
Definition:
decklink_common.h:65
decklink_ctx::dlo
IDeckLinkOutput * dlo
Definition:
decklink_common.h:42
decklink_output_callback
Definition:
decklink_enc.cpp:70
decklink_ctx::video
int video
Definition:
decklink_common.h:60
ff_decklink_set_format
int ff_decklink_set_format(AVFormatContext *avctx, int width, int height, int tb_num, int tb_den, decklink_direction_t direction=DIRECTION_OUT, int num=0)
Definition:
decklink_common.cpp:101
decklink_ctx::bmd_tb_den
BMDTimeValue bmd_tb_den
Definition:
decklink_common.h:48
decklink_input_callback
Definition:
decklink_dec.cpp:147
ff_decklink_list_devices
int ff_decklink_list_devices(AVFormatContext *avctx)
Definition:
decklink_common.cpp:180
width
static int width
Definition:
demuxing_decoding.c:39
Generated on Thu Sep 10 2015 11:39:03 for FFmpeg by
1.8.6