decklink: Clean up warnings introduced by caption code

master
Colin Edwards 2020-11-03 17:15:49 -06:00 committed by Jim
parent 6bef0a8619
commit 5b8f89d86e
6 changed files with 61 additions and 30 deletions

View File

@ -70,6 +70,8 @@ void DecklinkCaptionsUI::on_source_currentIndexChanged(int)
static void caption_callback(void *param, obs_source_t *source,
const struct obs_source_cea_708 *captions)
{
UNUSED_PARAMETER(param);
UNUSED_PARAMETER(source);
obs_output *output = obs_frontend_get_streaming_output();
if (output) {
if (obs_frontend_streaming_active() &&

View File

@ -1277,7 +1277,7 @@ static bool add_caption(struct obs_output *output, struct encoder_packet *out)
sei_from_caption_frame(&sei, &cf);
struct obs_caption_frame *next = output->caption_head->next;
struct caption_text *next = output->caption_head->next;
bfree(output->caption_head);
output->caption_head = next;
}
@ -2531,7 +2531,7 @@ void obs_output_caption(obs_output_t *output,
const struct obs_source_cea_708 *captions)
{
pthread_mutex_lock(&output->caption_mutex);
for (int i = 0; i < captions->packets; i++) {
for (uint32_t i = 0; i < captions->packets; i++) {
circlebuf_push_back(&output->caption_data,
captions->data + (i * 3),
3 * sizeof(uint8_t));

View File

@ -17,6 +17,8 @@ HRESULT OBSVideoFrame::SetFlags(BMDFrameFlags newFlags)
HRESULT OBSVideoFrame::SetTimecode(BMDTimecodeFormat format,
IDeckLinkTimecode *timecode)
{
UNUSED_PARAMETER(format);
UNUSED_PARAMETER(timecode);
return 0;
}
@ -26,17 +28,26 @@ OBSVideoFrame::SetTimecodeFromComponents(BMDTimecodeFormat format,
uint8_t seconds, uint8_t frames,
BMDTimecodeFlags flags)
{
UNUSED_PARAMETER(format);
UNUSED_PARAMETER(hours);
UNUSED_PARAMETER(minutes);
UNUSED_PARAMETER(seconds);
UNUSED_PARAMETER(frames);
UNUSED_PARAMETER(flags);
return 0;
}
HRESULT OBSVideoFrame::SetAncillaryData(IDeckLinkVideoFrameAncillary *ancillary)
{
UNUSED_PARAMETER(ancillary);
return 0;
}
HRESULT OBSVideoFrame::SetTimecodeUserBits(BMDTimecodeFormat format,
BMDTimecodeUserBits userBits)
{
UNUSED_PARAMETER(format);
UNUSED_PARAMETER(userBits);
return 0;
}

View File

@ -1,6 +1,7 @@
#pragma once
#include "platform.hpp"
#include "obs.hpp"
class OBSVideoFrame : public IDeckLinkMutableVideoFrame {
private:
@ -49,22 +50,27 @@ public:
//Dummy implementations of remaining virtual methods
virtual HRESULT STDMETHODCALLTYPE
GetTimecode(/* in */ BMDTimecodeFormat format,
/* out */ IDeckLinkTimecode **timecode)
/* out */ IDeckLinkTimecode **timecode) override
{
UNUSED_PARAMETER(format);
UNUSED_PARAMETER(timecode);
return E_NOINTERFACE;
};
virtual HRESULT STDMETHODCALLTYPE
GetAncillaryData(/* out */ IDeckLinkVideoFrameAncillary **ancillary)
virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(
/* out */ IDeckLinkVideoFrameAncillary **ancillary) override
{
UNUSED_PARAMETER(ancillary);
return E_NOINTERFACE;
};
// IUnknown interface (dummy implementation)
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,
LPVOID *ppv)
LPVOID *ppv) override
{
UNUSED_PARAMETER(iid);
UNUSED_PARAMETER(ppv);
return E_NOINTERFACE;
}
virtual ULONG STDMETHODCALLTYPE AddRef() { return 1; }
virtual ULONG STDMETHODCALLTYPE Release() { return 1; }
virtual ULONG STDMETHODCALLTYPE AddRef() override { return 1; }
virtual ULONG STDMETHODCALLTYPE Release() override { return 1; }
};

View File

@ -157,7 +157,7 @@ void DeckLinkDeviceInstance::HandleVideoFrame(
auto sdid = packet->GetSDID();
// Caption data
if (did == 0x61 & sdid == 0x01) {
if (did == 0x61 && sdid == 0x01) {
this->HandleCaptionPacket(packet, timestamp);
}
@ -193,8 +193,6 @@ void DeckLinkDeviceInstance::HandleVideoFrame(
void DeckLinkDeviceInstance::HandleCaptionPacket(
IDeckLinkAncillaryPacket *packet, const uint64_t timestamp)
{
auto line = packet->GetLineNumber();
const void *data;
uint32_t size;
packet->GetBytes(bmdAncillaryPacketFormatUInt8, &data, &size);
@ -203,29 +201,41 @@ void DeckLinkDeviceInstance::HandleCaptionPacket(
struct bitstream_reader reader;
bitstream_reader_init(&reader, anc, size);
auto header1 = bitstream_reader_r8(&reader);
auto header2 = bitstream_reader_r8(&reader);
// header1
bitstream_reader_r8(&reader);
// header2
bitstream_reader_r8(&reader);
uint8_t length = bitstream_reader_r8(&reader);
uint8_t frameRate = bitstream_reader_read_bits(&reader, 4);
// length
bitstream_reader_r8(&reader);
// frameRate
bitstream_reader_read_bits(&reader, 4);
//reserved
bitstream_reader_read_bits(&reader, 4);
auto cdp_timecode_added = bitstream_reader_read_bits(&reader, 1);
auto cdp_data_block_added = bitstream_reader_read_bits(&reader, 1);
auto cdp_service_info_added = bitstream_reader_read_bits(&reader, 1);
auto cdp_service_info_start = bitstream_reader_read_bits(&reader, 1);
auto cdp_service_info_changed = bitstream_reader_read_bits(&reader, 1);
auto cdp_service_info_end = bitstream_reader_read_bits(&reader, 1);
// cdp_data_block_added
bitstream_reader_read_bits(&reader, 1);
// cdp_service_info_added
bitstream_reader_read_bits(&reader, 1);
// cdp_service_info_start
bitstream_reader_read_bits(&reader, 1);
// cdp_service_info_changed
bitstream_reader_read_bits(&reader, 1);
// cdp_service_info_end
bitstream_reader_read_bits(&reader, 1);
auto cdp_contains_captions = bitstream_reader_read_bits(&reader, 1);
//reserved
bitstream_reader_read_bits(&reader, 1);
auto cdp_counter = bitstream_reader_r8(&reader);
auto cdp_counter2 = bitstream_reader_r8(&reader);
// cdp_counter
bitstream_reader_r8(&reader);
// cdp_counter2
bitstream_reader_r8(&reader);
if (cdp_timecode_added) {
auto timecodeSectionID = bitstream_reader_r8(&reader);
// timecodeSectionID
bitstream_reader_r8(&reader);
//reserved
bitstream_reader_read_bits(&reader, 2);
bitstream_reader_read_bits(&reader, 2);
@ -244,14 +254,15 @@ void DeckLinkDeviceInstance::HandleCaptionPacket(
}
if (cdp_contains_captions) {
auto cdp_data_section = bitstream_reader_r8(&reader);
// cdp_data_section
bitstream_reader_r8(&reader);
auto process_em_data_flag =
bitstream_reader_read_bits(&reader, 1);
auto process_cc_data_flag =
bitstream_reader_read_bits(&reader, 1);
auto additional_data_flag =
bitstream_reader_read_bits(&reader, 1);
//process_em_data_flag
bitstream_reader_read_bits(&reader, 1);
// process_cc_data_flag
bitstream_reader_read_bits(&reader, 1);
//additional_data_flag
bitstream_reader_read_bits(&reader, 1);
auto cc_count = bitstream_reader_read_bits(&reader, 5);

View File

@ -7,6 +7,7 @@
static void serialize_test(void **state)
{
UNUSED_PARAMETER(state);
struct array_output_data output;
struct serializer s;