New upstream version 25.0.3+dfsg1
This commit is contained in:
parent
04fe0efc67
commit
8b2e5f2130
569 changed files with 62491 additions and 5875 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#include "audio-repack.h"
|
||||
|
||||
#include <emmintrin.h>
|
||||
#include <util/sse-intrin.h>
|
||||
|
||||
int check_buffer(struct audio_repack *repack, uint32_t frame_count)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,4 +2,21 @@ BlackmagicDevice="Blackmagic устройство"
|
|||
Device="Устройство"
|
||||
Mode="Режим"
|
||||
Buffering="Използвай буфериране"
|
||||
PixelFormat="Формат на пиксела"
|
||||
ColorSpace="Цветово пространство"
|
||||
ColorSpace.Default="По подразбиране"
|
||||
ColorRange="Цветови обхват"
|
||||
ColorRange.Default="По подразбиране"
|
||||
ColorRange.Partial="Частично"
|
||||
ColorRange.Full="Пълно"
|
||||
ChannelFormat="Канал"
|
||||
ChannelFormat.None="Без"
|
||||
ChannelFormat.2_0ch="2 канала"
|
||||
ChannelFormat.2_1ch="2.1 канала"
|
||||
ChannelFormat.4_0ch="4 канала"
|
||||
ChannelFormat.4_1ch="4.1 канала"
|
||||
ChannelFormat.5_1ch="5.1 канала"
|
||||
ChannelFormat.7_1ch="7.1 канала"
|
||||
DeactivateWhenNotShowing="Изключване, когато не се показва"
|
||||
AutoStart="Автоматично започване при пускане"
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ ColorRange.Partial="Parcial"
|
|||
ColorRange.Full="Complet"
|
||||
ChannelFormat="Canal"
|
||||
ChannelFormat.None="Cap"
|
||||
ChannelFormat.2_0ch="Estèreo "
|
||||
ChannelFormat.2_0ch="Estèreo"
|
||||
ChannelFormat.2_1ch="Canals 2.1"
|
||||
ChannelFormat.4_0ch="4"
|
||||
ChannelFormat.4_1ch="4.1"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
BlackmagicDevice="Blackmagic‐Gerät"
|
||||
Device="Gerät"
|
||||
Mode="Modus"
|
||||
Buffering="Puffern benutzen"
|
||||
Buffering="Pufferung benutzen"
|
||||
PixelFormat="Pixelformat"
|
||||
ColorSpace="Farbraum"
|
||||
ColorSpace.Default="Standard"
|
||||
|
|
@ -17,7 +17,7 @@ ChannelFormat.4_0ch="4‐Kanal"
|
|||
ChannelFormat.4_1ch="4.1‐Kanal"
|
||||
ChannelFormat.5_1ch="5.1‐Kanal"
|
||||
ChannelFormat.7_1ch="7.1‐Kanal"
|
||||
DeactivateWhenNotShowing="Deaktivieren, wenn die Quelle nicht angezeigt wird"
|
||||
DeactivateWhenNotShowing="Deaktivieren, wenn Quelle nicht gezeigt"
|
||||
AutoStart="Automatisch beim Öffnen starten"
|
||||
SwapFC-LFE="FC und LFE tauschen"
|
||||
SwapFC-LFE.Tooltip="Vorderen Front‐Center‐Kanal und LFE‐Kanal tauschen"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ ColorRange.Partial="Parcial"
|
|||
ColorRange.Full="Completo"
|
||||
ChannelFormat="Canal"
|
||||
ChannelFormat.None="Ninguno"
|
||||
ChannelFormat.2_0ch="Estéreo "
|
||||
ChannelFormat.2_0ch="Estéreo"
|
||||
ChannelFormat.2_1ch="2.1 canales"
|
||||
ChannelFormat.4_0ch="4 canales"
|
||||
ChannelFormat.4_1ch="4.1 canales"
|
||||
|
|
|
|||
|
|
@ -17,4 +17,6 @@ ChannelFormat.5_1ch="5.1ch"
|
|||
ChannelFormat.7_1ch="7.1ch"
|
||||
DeactivateWhenNotShowing="Desativar quando não visível"
|
||||
AutoStart="Iniciar automaticamente ao arrancar"
|
||||
VideoConnection="Conexão de Vídeo"
|
||||
AudioConnection="Conexão de Audio"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ BlackmagicDevice="Blackmagic naprave"
|
|||
Device="Naprava"
|
||||
Mode="Način"
|
||||
Buffering="Uporabi medpomnilnik"
|
||||
PixelFormat="Oblika sl. točk"
|
||||
PixelFormat="Format piksla"
|
||||
ColorSpace="Barvni prostor"
|
||||
ColorSpace.Default="Privzeto"
|
||||
ColorRange="Barvni razpon"
|
||||
|
|
@ -11,12 +11,12 @@ ColorRange.Partial="Delno"
|
|||
ColorRange.Full="Polno"
|
||||
ChannelFormat="Kanal"
|
||||
ChannelFormat.None="Brez"
|
||||
ChannelFormat.2_0ch="2 kan."
|
||||
ChannelFormat.2_1ch="2.1 kan."
|
||||
ChannelFormat.4_0ch="4 kan."
|
||||
ChannelFormat.4_1ch="4.1 kan."
|
||||
ChannelFormat.5_1ch="5.1 kan."
|
||||
ChannelFormat.7_1ch="7.1 kan."
|
||||
ChannelFormat.2_0ch="2 kanala"
|
||||
ChannelFormat.2_1ch="2.1 kanalov"
|
||||
ChannelFormat.4_0ch="4 kanali"
|
||||
ChannelFormat.4_1ch="4.1 kanalov"
|
||||
ChannelFormat.5_1ch="5.1 kanalov"
|
||||
ChannelFormat.7_1ch="7.1 kanalov"
|
||||
DeactivateWhenNotShowing="Onemogoči, ko ni prikazano"
|
||||
AutoStart="Samodejno zaženi ob zagonu"
|
||||
SwapFC-LFE="Zamenjaj SS in nizke tone"
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ ChannelFormat.5_1ch="5.1ch"
|
|||
ChannelFormat.7_1ch="7.1ch"
|
||||
DeactivateWhenNotShowing="Gösterilmediğinde devre dışı bırak"
|
||||
AutoStart="Açılışta otomatik olarak başlat"
|
||||
SwapFC-LFE="FC ve LFE'yi değiştir"
|
||||
SwapFC-LFE.Tooltip="Ön Merkez Kanalı ve LFE Kanalı Değişimi"
|
||||
VideoConnection="Video Bağlantısı"
|
||||
AudioConnection="Ses Bağlantısı"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
BlackmagicDevice="Thiết bị Blackmagic"
|
||||
Device="Thiết bị"
|
||||
Mode="Chế độ"
|
||||
Buffering="Dùng đệm"
|
||||
PixelFormat="Định dạng điểm ảnh"
|
||||
ColorSpace="Không gian màu"
|
||||
ColorSpace.Default="Mặc định"
|
||||
ColorRange="Phạm vi màu"
|
||||
ColorRange.Default="Mặc định"
|
||||
ColorRange.Partial="Một phần"
|
||||
ColorRange.Full="Đầy đủ"
|
||||
|
|
@ -11,4 +17,10 @@ ChannelFormat.4_0ch="4ch"
|
|||
ChannelFormat.4_1ch="4.1ch"
|
||||
ChannelFormat.5_1ch="5.1ch"
|
||||
ChannelFormat.7_1ch="7.1ch"
|
||||
DeactivateWhenNotShowing="Tắt khi không hiển thị"
|
||||
AutoStart="Tự bắt đầu khi khởi động"
|
||||
SwapFC-LFE="Tráo đổi FC và LFE"
|
||||
SwapFC-LFE.Tooltip="Tráo đổi kênh âm Front Center và LFE"
|
||||
VideoConnection="Kết nối video"
|
||||
AudioConnection="Kết nối Audio"
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ static void *decklink_output_create(obs_data_t *settings, obs_output_t *output)
|
|||
|
||||
decklinkOutput->deviceHash = obs_data_get_string(settings, DEVICE_HASH);
|
||||
decklinkOutput->modeID = obs_data_get_int(settings, MODE_ID);
|
||||
decklinkOutput->keyerMode = obs_data_get_int(settings, KEYER);
|
||||
decklinkOutput->keyerMode = (int)obs_data_get_int(settings, KEYER);
|
||||
|
||||
return decklinkOutput;
|
||||
}
|
||||
|
|
@ -33,7 +33,7 @@ static void decklink_output_update(void *data, obs_data_t *settings)
|
|||
|
||||
decklink->deviceHash = obs_data_get_string(settings, DEVICE_HASH);
|
||||
decklink->modeID = obs_data_get_int(settings, MODE_ID);
|
||||
decklink->keyerMode = obs_data_get_int(settings, KEYER);
|
||||
decklink->keyerMode = (int)obs_data_get_int(settings, KEYER);
|
||||
}
|
||||
|
||||
static bool decklink_output_start(void *data)
|
||||
|
|
@ -46,6 +46,9 @@ static bool decklink_output_start(void *data)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!decklink->deviceHash || !*decklink->deviceHash)
|
||||
return false;
|
||||
|
||||
decklink->audio_samplerate = aoi.samples_per_sec;
|
||||
decklink->audio_planes = 2;
|
||||
decklink->audio_size =
|
||||
|
|
@ -74,7 +77,9 @@ static bool decklink_output_start(void *data)
|
|||
obs_output_set_video_conversion(decklink->GetOutput(), &to);
|
||||
|
||||
device->SetKeyerMode(decklink->keyerMode);
|
||||
decklink->Activate(device, decklink->modeID);
|
||||
|
||||
if (!decklink->Activate(device, decklink->modeID))
|
||||
return false;
|
||||
|
||||
struct audio_convert_info conversion = {};
|
||||
conversion.format = AUDIO_FORMAT_16BIT;
|
||||
|
|
|
|||
|
|
@ -342,6 +342,7 @@ struct obs_source_info create_decklink_source_info()
|
|||
decklink_source_info.update = decklink_update;
|
||||
decklink_source_info.show = decklink_show;
|
||||
decklink_source_info.hide = decklink_hide;
|
||||
decklink_source_info.icon_type = OBS_ICON_TYPE_CAMERA;
|
||||
|
||||
return decklink_source_info;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,19 +2,23 @@
|
|||
|
||||
#if defined(_WIN32)
|
||||
#include <DeckLinkAPI.h>
|
||||
#include "win/decklink-sdk/DeckLinkAPIVersion.h"
|
||||
typedef BOOL decklink_bool_t;
|
||||
typedef BSTR decklink_string_t;
|
||||
IDeckLinkDiscovery *CreateDeckLinkDiscoveryInstance(void);
|
||||
IDeckLinkIterator *CreateDeckLinkIteratorInstance(void);
|
||||
#define IUnknownUUID IID_IUnknown
|
||||
typedef REFIID CFUUIDBytes;
|
||||
#define CFUUIDGetUUIDBytes(x) x
|
||||
#elif defined(__APPLE__)
|
||||
#include "mac/decklink-sdk/DeckLinkAPI.h"
|
||||
#include "mac/decklink-sdk/DeckLinkAPIVersion.h"
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
typedef bool decklink_bool_t;
|
||||
typedef CFStringRef decklink_string_t;
|
||||
#elif defined(__linux__)
|
||||
#include "linux/decklink-sdk/DeckLinkAPI.h"
|
||||
#include "linux/decklink-sdk/DeckLinkAPIVersion.h"
|
||||
typedef bool decklink_bool_t;
|
||||
typedef const char *decklink_string_t;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -14,8 +14,43 @@ struct obs_source_info decklink_source_info;
|
|||
extern struct obs_output_info create_decklink_output_info();
|
||||
struct obs_output_info decklink_output_info;
|
||||
|
||||
void log_sdk_version()
|
||||
{
|
||||
IDeckLinkIterator *deckLinkIterator;
|
||||
IDeckLinkAPIInformation *deckLinkAPIInformation;
|
||||
HRESULT result;
|
||||
|
||||
deckLinkIterator = CreateDeckLinkIteratorInstance();
|
||||
if (deckLinkIterator == NULL) {
|
||||
blog(LOG_WARNING,
|
||||
"A DeckLink iterator could not be created. The DeckLink drivers may not be installed");
|
||||
return;
|
||||
}
|
||||
|
||||
result = deckLinkIterator->QueryInterface(
|
||||
IID_IDeckLinkAPIInformation, (void **)&deckLinkAPIInformation);
|
||||
if (result == S_OK) {
|
||||
decklink_string_t deckLinkVersion;
|
||||
deckLinkAPIInformation->GetString(BMDDeckLinkAPIVersion,
|
||||
&deckLinkVersion);
|
||||
|
||||
blog(LOG_INFO, "Decklink API Compiled version %s",
|
||||
BLACKMAGIC_DECKLINK_API_VERSION_STRING);
|
||||
|
||||
std::string versionString;
|
||||
DeckLinkStringToStdString(deckLinkVersion, versionString);
|
||||
|
||||
blog(LOG_INFO, "Decklink API Installed version %s",
|
||||
versionString.c_str());
|
||||
|
||||
deckLinkAPIInformation->Release();
|
||||
}
|
||||
}
|
||||
|
||||
bool obs_module_load(void)
|
||||
{
|
||||
log_sdk_version();
|
||||
|
||||
deviceEnum = new DeckLinkDeviceDiscovery();
|
||||
if (!deviceEnum->Init())
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,15 @@ IDeckLinkDiscovery *CreateDeckLinkDiscoveryInstance(void)
|
|||
return result == S_OK ? instance : nullptr;
|
||||
}
|
||||
|
||||
IDeckLinkIterator *CreateDeckLinkIteratorInstance(void)
|
||||
{
|
||||
IDeckLinkIterator *iterator;
|
||||
const HRESULT result =
|
||||
CoCreateInstance(CLSID_CDeckLinkIterator, nullptr, CLSCTX_ALL,
|
||||
IID_IDeckLinkIterator, (void **)&iterator);
|
||||
return result == S_OK ? iterator : nullptr;
|
||||
}
|
||||
|
||||
bool DeckLinkStringToStdString(decklink_string_t input, std::string &output)
|
||||
{
|
||||
if (input == nullptr)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue