UWARG Computer Vision
DeckLinkInputCallback.h
1 /*
2  * DeckLinkInputCallback.h - Interfaz COM de callback de grabación de vídeo
3  *
4  * Copyright 2013 Jesús Torres <jmtorres@ull.es>
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 
19 #ifndef DECKLINKINPUTCALLBACK_H_
20 #define DECKLINKINPUTCALLBACK_H_
21 
22 #include <atomic>
23 #include <condition_variable>
24 #include <mutex>
25 
26 #include <DeckLinkAPI.h>
27 
28 #include "ComPtr.h"
29 
30 class DeckLinkCapture;
31 
32 class DeckLinkInputCallback: public IDeckLinkInputCallback
33 {
34  public:
37 
38  HRESULT QueryInterface(REFIID iid, LPVOID *ppv);
39  ULONG AddRef();
40  ULONG Release();
41 
42  HRESULT VideoInputFormatChanged (
43  BMDVideoInputFormatChangedEvents notificationEvents,
44  IDeckLinkDisplayMode* newDisplayMode,
45  BMDDetectedVideoInputFormatFlags detectedSignalFlags);
46  HRESULT VideoInputFrameArrived (IDeckLinkVideoInputFrame* videoFrame,
47  IDeckLinkAudioInputPacket* audioPacket);
48 
49  ComPtr<IDeckLinkVideoInputFrame> getVideoFrame();
50 
51  private:
52  std::atomic_ulong refCounter_;
53 
54  std::mutex videoFrameMutex_;
55  std::condition_variable videoFrameArrive_;
57 };
58 
59 #endif /* DECKLINKINPUTCALLBACK_H_ */
Definition: DeckLinkCapture.h:30
Definition: DeckLinkInputCallback.h:32