Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/LAVFilters.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2016-02-17 18:05:02 +0300
committerHendrik Leppkes <h.leppkes@gmail.com>2016-02-17 18:05:02 +0300
commit05cd67d9f276a5bc898686bd4934d0e541523fcb (patch)
tree74ca776451743f8b67aa81c412423a6cfd32fbfd /developer_info
parent1a207f489022fff9559dd73427dfdfe1893f1206 (diff)
Update developer_info
Diffstat (limited to 'developer_info')
-rw-r--r--developer_info/IDSMResourceBag.h2
-rw-r--r--developer_info/IGraphRebuildDelegate.h2
-rw-r--r--developer_info/IKeyFrameInfo.h2
-rw-r--r--developer_info/IMediaSample3D.h12
-rw-r--r--developer_info/IMediaSideData.h48
-rw-r--r--developer_info/IStreamSourceControl.h2
-rw-r--r--developer_info/ITrackInfo.h2
-rw-r--r--developer_info/LAVAudioSettings.h2
-rw-r--r--developer_info/LAVSplitterSettings.h2
-rw-r--r--developer_info/LAVVideoSettings.h34
10 files changed, 92 insertions, 16 deletions
diff --git a/developer_info/IDSMResourceBag.h b/developer_info/IDSMResourceBag.h
index 21492007..8a8f5b09 100644
--- a/developer_info/IDSMResourceBag.h
+++ b/developer_info/IDSMResourceBag.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2003-2006 Gabest
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
diff --git a/developer_info/IGraphRebuildDelegate.h b/developer_info/IGraphRebuildDelegate.h
index ece1b218..9c5458b5 100644
--- a/developer_info/IGraphRebuildDelegate.h
+++ b/developer_info/IGraphRebuildDelegate.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
diff --git a/developer_info/IKeyFrameInfo.h b/developer_info/IKeyFrameInfo.h
index 5e7766ff..618db9f4 100644
--- a/developer_info/IKeyFrameInfo.h
+++ b/developer_info/IKeyFrameInfo.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2003-2006 Gabest
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
diff --git a/developer_info/IMediaSample3D.h b/developer_info/IMediaSample3D.h
new file mode 100644
index 00000000..51db24f5
--- /dev/null
+++ b/developer_info/IMediaSample3D.h
@@ -0,0 +1,12 @@
+// -----------------------------------------------------------------
+// IMediaSample3D interface and data structure definitions
+// -----------------------------------------------------------------
+
+#pragma once
+
+[uuid("E92D790E-BF54-43C4-B394-8CA0A41BF9EC")]
+interface IMediaSample3D : public IMediaSample2
+{
+ STDMETHOD(Enable3D)() = 0;
+ STDMETHOD(GetPointer3D)(BYTE **ppBuffer) = 0;
+};
diff --git a/developer_info/IMediaSideData.h b/developer_info/IMediaSideData.h
new file mode 100644
index 00000000..4e78eb9a
--- /dev/null
+++ b/developer_info/IMediaSideData.h
@@ -0,0 +1,48 @@
+// -----------------------------------------------------------------
+// IMediaSideData interface and data structure definitions
+// -----------------------------------------------------------------
+
+#pragma once
+
+// -----------------------------------------------------------------
+// Interface to exchange binary side data
+// -----------------------------------------------------------------
+// This interface should be implemented in IMediaSample objects and accessed through IUnknown
+// It allows binary side data to be attached to the media samples and delivered with them
+// Restrictions: Only one side data per type can be attached
+[uuid("F940AE7F-48EB-4377-806C-8FC48CAB2292")]
+interface IMediaSideData : public IUnknown
+{
+ // Set the side data identified by guidType to the data provided
+ // The provided data will be copied and stored internally
+ STDMETHOD(SetSideData)(GUID guidType, const BYTE *pData, size_t size) PURE;
+
+ // Get the side data identified by guidType
+ // The caller receives pointers to the internal data, and the pointers shall stay
+ // valid for the lifetime of the object
+ STDMETHOD(GetSideData)(GUID guidType, const BYTE **pData, size_t *pSize) PURE;
+};
+
+
+// -----------------------------------------------------------------
+// High-Dynamic-Range (HDR) Side Data
+// -----------------------------------------------------------------
+
+// {53820DBC-A7B8-49C4-B17B-E511591A790C}
+DEFINE_GUID(IID_MediaSideDataHDR,
+0x53820dbc, 0xa7b8, 0x49c4, 0xb1, 0x7b, 0xe5, 0x11, 0x59, 0x1a, 0x79, 0xc);
+
+#pragma pack(push, 1)
+struct MediaSideDataHDR
+{
+ // coordinates of the primaries, in B-G-R order
+ double display_primaries_x[3];
+ double display_primaries_y[3];
+ // white point
+ double white_point_x;
+ double white_point_y;
+ // luminance
+ double max_display_mastering_luminance;
+ double min_display_mastering_luminance;
+};
+#pragma pack(pop)
diff --git a/developer_info/IStreamSourceControl.h b/developer_info/IStreamSourceControl.h
index 5807c90d..d5385103 100644
--- a/developer_info/IStreamSourceControl.h
+++ b/developer_info/IStreamSourceControl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
diff --git a/developer_info/ITrackInfo.h b/developer_info/ITrackInfo.h
index a7cb3eb9..6f133d58 100644
--- a/developer_info/ITrackInfo.h
+++ b/developer_info/ITrackInfo.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2003-2006 Gabest
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
diff --git a/developer_info/LAVAudioSettings.h b/developer_info/LAVAudioSettings.h
index 476040c1..15de658c 100644
--- a/developer_info/LAVAudioSettings.h
+++ b/developer_info/LAVAudioSettings.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
diff --git a/developer_info/LAVSplitterSettings.h b/developer_info/LAVSplitterSettings.h
index d8a6a192..40ecd19d 100644
--- a/developer_info/LAVSplitterSettings.h
+++ b/developer_info/LAVSplitterSettings.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
diff --git a/developer_info/LAVVideoSettings.h b/developer_info/LAVVideoSettings.h
index a92637f6..6a8a7518 100644
--- a/developer_info/LAVVideoSettings.h
+++ b/developer_info/LAVVideoSettings.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2015 Hendrik Leppkes
+ * Copyright (C) 2010-2016 Hendrik Leppkes
* http://www.1f0.de
*
* This program is free software; you can redistribute it and/or modify
@@ -99,8 +99,9 @@ typedef enum LAVVideoHWCodec {
HWCodec_MPEG4 = Codec_MPEG4,
HWCodec_MPEG2DVD,
HWCodec_HEVC,
+ HWCodec_VP9,
- HWCodec_NB = HWCodec_HEVC + 1
+ HWCodec_NB,
} LAVVideoHWCodec;
// Flags for HW Resolution support
@@ -115,7 +116,8 @@ typedef enum LAVHWAccel {
HWAccel_QuickSync,
HWAccel_DXVA2,
HWAccel_DXVA2CopyBack = HWAccel_DXVA2,
- HWAccel_DXVA2Native
+ HWAccel_DXVA2Native,
+ HWAccel_NB, // Number of HWAccels
} LAVHWAccel;
// Deinterlace algorithms offered by the hardware decoders
@@ -128,7 +130,9 @@ typedef enum LAVHWDeintModes {
// Software deinterlacing algorithms
typedef enum LAVSWDeintModes {
SWDeintMode_None,
- SWDeintMode_YADIF
+ SWDeintMode_YADIF,
+ SWDeintMode_W3FDIF_Simple,
+ SWDeintMode_W3FDIF_Complex,
} LAVSWDeintModes;
// Deinterlacing processing mode
@@ -293,12 +297,8 @@ interface ILAVVideoSettings : public IUnknown
// Get the deinterlacing output for the hardware decoder
STDMETHOD_(LAVDeintOutput, GetHWAccelDeintOutput)() = 0;
- // Set whether the hardware decoder should force high-quality deinterlacing
- // Note: this option is not supported on all decoder implementations and/or all operating systems
+ // deprecated. HQ deint is always used when available depending on platform and codec
STDMETHOD(SetHWAccelDeintHQ)(BOOL bHQ) = 0;
-
- // Get whether the hardware decoder should force high-quality deinterlacing
- // Note: this option is not supported on all decoder implementations and/or all operating systems
STDMETHOD_(BOOL, GetHWAccelDeintHQ)() = 0;
// Set the software deinterlacing mode used
@@ -362,6 +362,19 @@ interface ILAVVideoSettings : public IUnknown
// Must be called before an input is connected to LAV Video, and the setting is non-persistent
// NOTE: For CUVID, the index defines the index of the CUDA capable device, while for DXVA2, the list includes all D3D9 devices
STDMETHOD(SetGPUDeviceIndex)(DWORD dwDevice) = 0;
+
+ // Get the number of available devices for the specified HWAccel
+ STDMETHOD_(DWORD, GetHWAccelNumDevices)(LAVHWAccel hwAccel) = 0;
+
+ // Get a list of available HWAccel devices for the specified HWAccel
+ STDMETHOD(GetHWAccelDeviceInfo)(LAVHWAccel hwAccel, DWORD dwIndex, BSTR *pstrDeviceName, DWORD *pdwDeviceIdentifier) = 0;
+
+ // Get/Set the device for a specified HWAccel
+ // In contrast to SetGPUDeviceIndex, this setting is hwaccel-specific and persistent
+ // dwDeviceIdentifier is an optional parameter that identifies the selected device (ie. its device id), set to 0 if not used
+#define LAVHWACCEL_DEVICE_DEFAULT ((DWORD)-1)
+ STDMETHOD_(DWORD, GetHWAccelDeviceIndex)(LAVHWAccel hwAccel, DWORD *pdwDeviceIdentifier) = 0;
+ STDMETHOD(SetHWAccelDeviceIndex)(LAVHWAccel hwAccel, DWORD dwIndex, DWORD dwDeviceIdentifier) = 0;
};
// LAV Video status interface
@@ -370,4 +383,7 @@ interface ILAVVideoStatus : public IUnknown
{
// Get the name of the active decoder (can return NULL if none is active)
STDMETHOD_(LPCWSTR, GetActiveDecoderName)() = 0;
+
+ // Get the name of the currently active hwaccel device
+ STDMETHOD(GetHWAccelActiveDevice)(BSTR *pstrDeviceName) = 0;
};