Commit d263c4a3 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

winegstreamer: Get rid of the mp3 decoder.

In the unlikely event that we are hotplugging not from an IAsyncReader, we already have the ACM wrapper and l3codeca.acm available to do the same thing. Signed-off-by: 's avatarZebediah Figura <z.figura12@gmail.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent 4588f10f
...@@ -10,14 +10,12 @@ C_SRCS = \ ...@@ -10,14 +10,12 @@ C_SRCS = \
filter.c \ filter.c \
gst_cbs.c \ gst_cbs.c \
gstdemux.c \ gstdemux.c \
gsttffilter.c \
main.c \ main.c \
mediatype.c \ mediatype.c \
mfplat.c \ mfplat.c \
pin.c \ pin.c \
qualitycontrol.c \ qualitycontrol.c \
seeking.c \ seeking.c
transform.c
IDL_SRCS = mfplat.idl IDL_SRCS = mfplat.idl
......
...@@ -188,19 +188,6 @@ GstFlowReturn got_data_sink_wrapper(GstPad *pad, GstObject *parent, GstBuffer *b ...@@ -188,19 +188,6 @@ GstFlowReturn got_data_sink_wrapper(GstPad *pad, GstObject *parent, GstBuffer *b
return cbdata.u.got_data_sink_data.ret; return cbdata.u.got_data_sink_data.ret;
} }
GstFlowReturn got_data_wrapper(GstPad *pad, GstObject *parent, GstBuffer *buf)
{
struct cb_data cbdata = { GOT_DATA };
cbdata.u.got_data_data.pad = pad;
cbdata.u.got_data_data.parent = parent;
cbdata.u.got_data_data.buf = buf;
call_cb(&cbdata);
return cbdata.u.got_data_data.ret;
}
void removed_decoded_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user) void removed_decoded_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user)
{ {
struct cb_data cbdata = { REMOVED_DECODED_PAD }; struct cb_data cbdata = { REMOVED_DECODED_PAD };
...@@ -249,17 +236,6 @@ void release_sample_wrapper(gpointer data) ...@@ -249,17 +236,6 @@ void release_sample_wrapper(gpointer data)
call_cb(&cbdata); call_cb(&cbdata);
} }
void Gstreamer_transform_pad_added_wrapper(GstElement *filter, GstPad *pad, gpointer user)
{
struct cb_data cbdata = { TRANSFORM_PAD_ADDED };
cbdata.u.transform_pad_added_data.filter = filter;
cbdata.u.transform_pad_added_data.pad = pad;
cbdata.u.transform_pad_added_data.user = user;
call_cb(&cbdata);
}
gboolean query_sink_wrapper(GstPad *pad, GstObject *parent, GstQuery *query) gboolean query_sink_wrapper(GstPad *pad, GstObject *parent, GstQuery *query)
{ {
struct cb_data cbdata = { QUERY_SINK }; struct cb_data cbdata = { QUERY_SINK };
......
...@@ -39,12 +39,10 @@ enum CB_TYPE { ...@@ -39,12 +39,10 @@ enum CB_TYPE {
EVENT_SRC, EVENT_SRC,
EVENT_SINK, EVENT_SINK,
GOT_DATA_SINK, GOT_DATA_SINK,
GOT_DATA,
REMOVED_DECODED_PAD, REMOVED_DECODED_PAD,
AUTOPLUG_BLACKLIST, AUTOPLUG_BLACKLIST,
UNKNOWN_TYPE, UNKNOWN_TYPE,
RELEASE_SAMPLE, RELEASE_SAMPLE,
TRANSFORM_PAD_ADDED,
QUERY_SINK QUERY_SINK
}; };
...@@ -105,12 +103,6 @@ struct cb_data { ...@@ -105,12 +103,6 @@ struct cb_data {
GstBuffer *buf; GstBuffer *buf;
GstFlowReturn ret; GstFlowReturn ret;
} got_data_sink_data; } got_data_sink_data;
struct got_data_data {
GstPad *pad;
GstObject *parent;
GstBuffer *buf;
GstFlowReturn ret;
} got_data_data;
struct removed_decoded_pad_data { struct removed_decoded_pad_data {
GstElement *bin; GstElement *bin;
GstPad *pad; GstPad *pad;
...@@ -133,11 +125,6 @@ struct cb_data { ...@@ -133,11 +125,6 @@ struct cb_data {
struct release_sample_data { struct release_sample_data {
gpointer data; gpointer data;
} release_sample_data; } release_sample_data;
struct transform_pad_added_data {
GstElement *filter;
GstPad *pad;
gpointer user;
} transform_pad_added_data;
struct query_sink_data { struct query_sink_data {
GstPad *pad; GstPad *pad;
GstObject *parent; GstObject *parent;
......
...@@ -19,6 +19,5 @@ ...@@ -19,6 +19,5 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
DEFINE_GUID(CLSID_Gstreamer_Mp3, 0x728dcf55, 0x128f, 0x4dd1, 0xad, 0x22, 0xbe, 0xcf, 0xa6, 0x6c, 0xe7, 0xaa);
DEFINE_GUID(CLSID_Gstreamer_Splitter, 0xf9d8d64e, 0xa144, 0x47dc, 0x8e, 0xe0, 0xf5, 0x34, 0x98, 0x37, 0x2c, 0x29); 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); DEFINE_GUID(WINESUBTYPE_Gstreamer, 0xffffffff, 0x128f, 0x4dd1, 0xad, 0x22, 0xbe, 0xcf, 0xa6, 0x6c, 0xe7, 0xaa);
...@@ -37,20 +37,13 @@ ...@@ -37,20 +37,13 @@
IUnknown * CALLBACK avi_splitter_create(IUnknown *outer, HRESULT *phr) DECLSPEC_HIDDEN; IUnknown * CALLBACK avi_splitter_create(IUnknown *outer, HRESULT *phr) DECLSPEC_HIDDEN;
IUnknown * CALLBACK mpeg_splitter_create(IUnknown *outer, HRESULT *phr) DECLSPEC_HIDDEN; IUnknown * CALLBACK mpeg_splitter_create(IUnknown *outer, HRESULT *phr) DECLSPEC_HIDDEN;
IUnknown * CALLBACK Gstreamer_Mp3_create(IUnknown *pUnkOuter, HRESULT *phr);
IUnknown * CALLBACK Gstreamer_Splitter_create(IUnknown *pUnkOuter, HRESULT *phr); IUnknown * CALLBACK Gstreamer_Splitter_create(IUnknown *pUnkOuter, HRESULT *phr);
IUnknown * CALLBACK wave_parser_create(IUnknown *outer, HRESULT *phr) DECLSPEC_HIDDEN; IUnknown * CALLBACK wave_parser_create(IUnknown *outer, HRESULT *phr) DECLSPEC_HIDDEN;
BOOL init_gstreamer(void) DECLSPEC_HIDDEN; BOOL init_gstreamer(void) DECLSPEC_HIDDEN;
GstFlowReturn got_data(GstPad *pad, GstObject *parent, GstBuffer *buf) DECLSPEC_HIDDEN;
GstFlowReturn request_buffer(GstPad *pad, guint64 ofs, guint size, GstCaps *caps, GstBuffer **buf) DECLSPEC_HIDDEN;
void Gstreamer_transform_pad_added(GstElement *filter, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
void start_dispatch_thread(void) DECLSPEC_HIDDEN; void start_dispatch_thread(void) DECLSPEC_HIDDEN;
extern const char *media_quark_string DECLSPEC_HIDDEN;
extern HRESULT mfplat_get_class_object(REFCLSID rclsid, REFIID riid, void **obj) DECLSPEC_HIDDEN; extern HRESULT mfplat_get_class_object(REFCLSID rclsid, REFIID riid, void **obj) DECLSPEC_HIDDEN;
extern HRESULT mfplat_can_unload_now(void) DECLSPEC_HIDDEN; extern HRESULT mfplat_can_unload_now(void) DECLSPEC_HIDDEN;
......
...@@ -97,7 +97,7 @@ static inline struct gstdemux *impl_from_strmbase_filter(struct strmbase_filter ...@@ -97,7 +97,7 @@ static inline struct gstdemux *impl_from_strmbase_filter(struct strmbase_filter
return CONTAINING_RECORD(iface, struct gstdemux, filter); return CONTAINING_RECORD(iface, struct gstdemux, filter);
} }
const char* media_quark_string = "media-sample"; static const char *media_quark_string = "media-sample";
static const WCHAR wcsInputPinName[] = {'i','n','p','u','t',' ','p','i','n',0}; static const WCHAR wcsInputPinName[] = {'i','n','p','u','t',' ','p','i','n',0};
static const IMediaSeekingVtbl GST_Seeking_Vtbl; static const IMediaSeekingVtbl GST_Seeking_Vtbl;
...@@ -2313,12 +2313,6 @@ void CALLBACK perform_cb(TP_CALLBACK_INSTANCE *instance, void *user) ...@@ -2313,12 +2313,6 @@ void CALLBACK perform_cb(TP_CALLBACK_INSTANCE *instance, void *user)
cbdata->u.got_data_sink_data.ret = got_data_sink(data->pad, data->parent, data->buf); cbdata->u.got_data_sink_data.ret = got_data_sink(data->pad, data->parent, data->buf);
break; break;
} }
case GOT_DATA:
{
struct got_data_data *data = &cbdata->u.got_data_data;
cbdata->u.got_data_data.ret = got_data(data->pad, data->parent, data->buf);
break;
}
case REMOVED_DECODED_PAD: case REMOVED_DECODED_PAD:
{ {
struct removed_decoded_pad_data *data = &cbdata->u.removed_decoded_pad_data; struct removed_decoded_pad_data *data = &cbdata->u.removed_decoded_pad_data;
...@@ -2344,12 +2338,6 @@ void CALLBACK perform_cb(TP_CALLBACK_INSTANCE *instance, void *user) ...@@ -2344,12 +2338,6 @@ void CALLBACK perform_cb(TP_CALLBACK_INSTANCE *instance, void *user)
release_sample(data->data); release_sample(data->data);
break; break;
} }
case TRANSFORM_PAD_ADDED:
{
struct transform_pad_added_data *data = &cbdata->u.transform_pad_added_data;
Gstreamer_transform_pad_added(data->filter, data->pad, data->user);
break;
}
case QUERY_SINK: case QUERY_SINK:
{ {
struct query_sink_data *data = &cbdata->u.query_sink_data; struct query_sink_data *data = &cbdata->u.query_sink_data;
......
...@@ -38,8 +38,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(gstreamer); ...@@ -38,8 +38,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(gstreamer);
static const WCHAR wGstreamer_Splitter[] = 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}; {'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 const WCHAR wGstreamer_Mp3[] =
{'G','S','t','r','e','a','m','e','r',' ','M','p','3',' ','f','i','l','t','e','r',0};
static const WCHAR wave_parserW[] = static const WCHAR wave_parserW[] =
{'W','a','v','e',' ','P','a','r','s','e','r',0}; {'W','a','v','e',' ','P','a','r','s','e','r',0};
static const WCHAR avi_splitterW[] = static const WCHAR avi_splitterW[] =
...@@ -94,32 +92,6 @@ static const AMOVIESETUP_FILTER amfSplitter = ...@@ -94,32 +92,6 @@ static const AMOVIESETUP_FILTER amfSplitter =
amfSplitPin amfSplitPin
}; };
AMOVIESETUP_PIN amfMp3Pin[] =
{ { wNull,
FALSE, FALSE, FALSE, FALSE,
&GUID_NULL,
NULL,
1,
amfMTaudio
},
{
wNull,
FALSE, TRUE, FALSE, FALSE,
&GUID_NULL,
NULL,
1,
amfMTaudio
},
};
AMOVIESETUP_FILTER const amfMp3 =
{ &CLSID_Gstreamer_Mp3,
wGstreamer_Mp3,
MERIT_NORMAL,
2,
amfMp3Pin
};
static const AMOVIESETUP_MEDIATYPE wave_parser_sink_type_data[] = static const AMOVIESETUP_MEDIATYPE wave_parser_sink_type_data[] =
{ {
{&MEDIATYPE_Stream, &MEDIASUBTYPE_WAVE}, {&MEDIATYPE_Stream, &MEDIASUBTYPE_WAVE},
...@@ -261,13 +233,6 @@ FactoryTemplate const g_Templates[] = { ...@@ -261,13 +233,6 @@ FactoryTemplate const g_Templates[] = {
&amfSplitter, &amfSplitter,
}, },
{ {
wGstreamer_Mp3,
&CLSID_Gstreamer_Mp3,
Gstreamer_Mp3_create,
NULL,
&amfMp3,
},
{
wave_parserW, wave_parserW,
&CLSID_WAVEParser, &CLSID_WAVEParser,
wave_parser_create, wave_parser_create,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment