winegstreamer: Add gstreamer splitter filter.
This commit is contained in:
parent
ae7d41bfa2
commit
a2916f3a0b
|
@ -5,6 +5,7 @@ EXTRALIBS = @GSTREAMER_LIBS@ @LIBPTHREAD@
|
|||
|
||||
C_SRCS = \
|
||||
glibthread.c \
|
||||
gstdemux.c \
|
||||
main.c
|
||||
|
||||
RC_SRCS = \
|
||||
|
|
|
@ -22,4 +22,5 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
DEFINE_GUID(CLSID_Gstreamer_Splitter, 0xf9d8d64e, 0xa144, 0x47dc, 0x8e, 0xe0, 0xf5, 0x34, 0x98, 0x37, 0x2c, 0x29);
|
||||
DEFINE_GUID(WINESUBTYPE_Gstreamer, 0xffffffff, 0x128f, 0x4dd1, 0xad, 0x22, 0xbe, 0xcf, 0xa6, 0x6c, 0xe7, 0xaa);
|
||||
|
|
|
@ -35,9 +35,13 @@
|
|||
#include "strmif.h"
|
||||
#include "wine/strmbase.h"
|
||||
|
||||
#define MEDIATIME_FROM_BYTES(x) ((LONGLONG)(x) * 10000000)
|
||||
|
||||
/* enum media */
|
||||
void dump_AM_MEDIA_TYPE(const AM_MEDIA_TYPE * pmt);
|
||||
|
||||
IUnknown * CALLBACK Gstreamer_Splitter_create(IUnknown *pUnkOuter, HRESULT *phr);
|
||||
|
||||
void g_thread_impl_init(void);
|
||||
DWORD Gstreamer_init(void);
|
||||
#endif /* __GST_PRIVATE_INCLUDED__ */
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -26,7 +26,6 @@
|
|||
#include <gst/app/gstappsrc.h>
|
||||
#include <gst/app/gstappbuffer.h>
|
||||
|
||||
#include "initguid.h"
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
|
@ -37,16 +36,74 @@
|
|||
|
||||
#include "wine/unicode.h"
|
||||
#include "gst_private.h"
|
||||
#include "initguid.h"
|
||||
#include "gst_guids.h"
|
||||
|
||||
static HINSTANCE hInst = NULL;
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(gstreamer);
|
||||
|
||||
FactoryTemplate const g_Templates[] = {
|
||||
static const WCHAR wGstreamer_Splitter[] =
|
||||
{'G','S','t','r','e','a','m','e','r',' ','s','p','l','i','t','t','e','r',' ','f','i','l','t','e','r',0};
|
||||
|
||||
static WCHAR wNull[] = {'\0'};
|
||||
|
||||
static const AMOVIESETUP_MEDIATYPE amfMTstream[] =
|
||||
{ { &MEDIATYPE_Stream, &WINESUBTYPE_Gstreamer },
|
||||
{ &MEDIATYPE_Stream, &MEDIASUBTYPE_NULL },
|
||||
};
|
||||
|
||||
const int g_cTemplates = 0;
|
||||
static const AMOVIESETUP_MEDIATYPE amfMTaudio[] =
|
||||
{ { &MEDIATYPE_Audio, &MEDIASUBTYPE_NULL } };
|
||||
|
||||
static const AMOVIESETUP_MEDIATYPE amfMTvideo[] =
|
||||
{ { &MEDIATYPE_Video, &MEDIASUBTYPE_NULL } };
|
||||
|
||||
static const AMOVIESETUP_PIN amfSplitPin[] =
|
||||
{ { wNull,
|
||||
FALSE, FALSE, FALSE, FALSE,
|
||||
&GUID_NULL,
|
||||
NULL,
|
||||
2,
|
||||
amfMTstream
|
||||
},
|
||||
{
|
||||
wNull,
|
||||
FALSE, TRUE, FALSE, FALSE,
|
||||
&GUID_NULL,
|
||||
NULL,
|
||||
1,
|
||||
amfMTaudio
|
||||
},
|
||||
{
|
||||
wNull,
|
||||
FALSE, TRUE, FALSE, FALSE,
|
||||
&GUID_NULL,
|
||||
NULL,
|
||||
1,
|
||||
amfMTvideo
|
||||
}
|
||||
};
|
||||
|
||||
static const AMOVIESETUP_FILTER amfSplitter =
|
||||
{ &CLSID_Gstreamer_Splitter,
|
||||
wGstreamer_Splitter,
|
||||
MERIT_PREFERRED,
|
||||
3,
|
||||
amfSplitPin
|
||||
};
|
||||
|
||||
FactoryTemplate const g_Templates[] = {
|
||||
{
|
||||
wGstreamer_Splitter,
|
||||
&CLSID_Gstreamer_Splitter,
|
||||
Gstreamer_Splitter_create,
|
||||
NULL,
|
||||
&amfSplitter,
|
||||
},
|
||||
};
|
||||
|
||||
const int g_cTemplates = sizeof(g_Templates) / sizeof (g_Templates[0]);
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue