decklink: Clean up warnings introduced by caption code
parent
6bef0a8619
commit
5b8f89d86e
|
@ -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() &&
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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; }
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
static void serialize_test(void **state)
|
||||
{
|
||||
UNUSED_PARAMETER(state);
|
||||
struct array_output_data output;
|
||||
struct serializer s;
|
||||
|
||||
|
|
Loading…
Reference in New Issue