Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
1544e523
Commit
1544e523
authored
Mar 25, 2008
by
Maarten Lankhorst
Committed by
Alexandre Julliard
Apr 01, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
quartz: Allow parser filters to implement their own seeking methods.
parent
6fd90f16
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
20 additions
and
11 deletions
+20
-11
avisplit.c
dlls/quartz/avisplit.c
+1
-1
mpegsplit.c
dlls/quartz/mpegsplit.c
+1
-1
parser.c
dlls/quartz/parser.c
+16
-7
parser.h
dlls/quartz/parser.h
+1
-1
waveparser.c
dlls/quartz/waveparser.c
+1
-1
No files found.
dlls/quartz/avisplit.c
View file @
1544e523
...
...
@@ -622,7 +622,7 @@ HRESULT AVISplitter_create(IUnknown * pUnkOuter, LPVOID * ppv)
This
->
pCurrentSample
=
NULL
;
This
->
streams
=
NULL
;
hr
=
Parser_Create
(
&
(
This
->
Parser
),
&
CLSID_AviSplitter
,
AVISplitter_Sample
,
AVISplitter_QueryAccept
,
AVISplitter_InputPin_PreConnect
,
AVISplitter_Cleanup
);
hr
=
Parser_Create
(
&
(
This
->
Parser
),
&
CLSID_AviSplitter
,
AVISplitter_Sample
,
AVISplitter_QueryAccept
,
AVISplitter_InputPin_PreConnect
,
AVISplitter_Cleanup
,
NULL
,
NULL
,
NULL
);
if
(
FAILED
(
hr
))
return
hr
;
...
...
dlls/quartz/mpegsplit.c
View file @
1544e523
...
...
@@ -721,7 +721,7 @@ HRESULT MPEGSplitter_create(IUnknown * pUnkOuter, LPVOID * ppv)
return
E_OUTOFMEMORY
;
ZeroMemory
(
This
,
sizeof
(
MPEGSplitterImpl
));
hr
=
Parser_Create
(
&
(
This
->
Parser
),
&
CLSID_MPEG1Splitter
,
MPEGSplitter_process_sample
,
MPEGSplitter_query_accept
,
MPEGSplitter_pre_connect
,
MPEGSplitter_cleanup
);
hr
=
Parser_Create
(
&
(
This
->
Parser
),
&
CLSID_MPEG1Splitter
,
MPEGSplitter_process_sample
,
MPEGSplitter_query_accept
,
MPEGSplitter_pre_connect
,
MPEGSplitter_cleanup
,
NULL
,
NULL
,
NULL
);
if
(
FAILED
(
hr
))
{
CoTaskMemFree
(
This
);
...
...
dlls/quartz/parser.c
View file @
1544e523
...
...
@@ -43,7 +43,7 @@ static const IPinVtbl Parser_OutputPin_Vtbl;
static
const
IPinVtbl
Parser_InputPin_Vtbl
;
static
HRESULT
Parser_OutputPin_QueryAccept
(
LPVOID
iface
,
const
AM_MEDIA_TYPE
*
pmt
);
static
HRESULT
Parser_Change
Star
t
(
IBaseFilter
*
iface
);
static
HRESULT
Parser_Change
Curren
t
(
IBaseFilter
*
iface
);
static
HRESULT
Parser_ChangeStop
(
IBaseFilter
*
iface
);
static
HRESULT
Parser_ChangeRate
(
IBaseFilter
*
iface
);
...
...
@@ -55,7 +55,7 @@ static inline ParserImpl *impl_from_IMediaSeeking( IMediaSeeking *iface )
}
HRESULT
Parser_Create
(
ParserImpl
*
pParser
,
const
CLSID
*
pClsid
,
PFN_PROCESS_SAMPLE
fnProcessSample
,
PFN_QUERY_ACCEPT
fnQueryAccept
,
PFN_PRE_CONNECT
fnPreConnect
,
PFN_CLEANUP
fnCleanup
)
HRESULT
Parser_Create
(
ParserImpl
*
pParser
,
const
CLSID
*
pClsid
,
PFN_PROCESS_SAMPLE
fnProcessSample
,
PFN_QUERY_ACCEPT
fnQueryAccept
,
PFN_PRE_CONNECT
fnPreConnect
,
PFN_CLEANUP
fnCleanup
,
CHANGEPROC
stop
,
CHANGEPROC
current
,
CHANGEPROC
rate
)
{
HRESULT
hr
;
PIN_INFO
piInput
;
...
...
@@ -80,7 +80,16 @@ HRESULT Parser_Create(ParserImpl* pParser, const CLSID* pClsid, PFN_PROCESS_SAMP
piInput
.
pFilter
=
(
IBaseFilter
*
)
pParser
;
lstrcpynW
(
piInput
.
achName
,
wcsInputPinName
,
sizeof
(
piInput
.
achName
)
/
sizeof
(
piInput
.
achName
[
0
]));
MediaSeekingImpl_Init
((
IBaseFilter
*
)
pParser
,
Parser_ChangeStop
,
Parser_ChangeStart
,
Parser_ChangeRate
,
&
pParser
->
mediaSeeking
,
&
pParser
->
csFilter
);
if
(
!
current
)
current
=
Parser_ChangeCurrent
;
if
(
!
stop
)
stop
=
Parser_ChangeStop
;
if
(
!
rate
)
rate
=
Parser_ChangeRate
;
MediaSeekingImpl_Init
((
IBaseFilter
*
)
pParser
,
stop
,
current
,
rate
,
&
pParser
->
mediaSeeking
,
&
pParser
->
csFilter
);
pParser
->
mediaSeeking
.
lpVtbl
=
&
Parser_Seeking_Vtbl
;
hr
=
Parser_InputPin_Construct
(
&
piInput
,
fnProcessSample
,
(
LPVOID
)
pParser
,
fnQueryAccept
,
&
pParser
->
csFilter
,
(
IPin
**
)
&
pParser
->
pInputPin
);
...
...
@@ -551,21 +560,21 @@ static HRESULT Parser_RemoveOutputPins(ParserImpl * This)
return
S_OK
;
}
static
HRESULT
Parser_Change
Star
t
(
IBaseFilter
*
iface
)
static
HRESULT
Parser_Change
Curren
t
(
IBaseFilter
*
iface
)
{
FIXME
(
"(%p)
\n
"
,
iface
);
FIXME
(
"(%p)
filter hasn't implemented current position change!
\n
"
,
iface
);
return
S_OK
;
}
static
HRESULT
Parser_ChangeStop
(
IBaseFilter
*
iface
)
{
FIXME
(
"(%p)
\n
"
,
iface
);
FIXME
(
"(%p)
filter hasn't implemented stop position change!
\n
"
,
iface
);
return
S_OK
;
}
static
HRESULT
Parser_ChangeRate
(
IBaseFilter
*
iface
)
{
FIXME
(
"(%p)
\n
"
,
iface
);
FIXME
(
"(%p)
filter hasn't implemented rate change!
\n
"
,
iface
);
return
S_OK
;
}
...
...
dlls/quartz/parser.h
View file @
1544e523
...
...
@@ -54,4 +54,4 @@ typedef struct Parser_OutputPin
HRESULT
Parser_AddPin
(
ParserImpl
*
This
,
const
PIN_INFO
*
piOutput
,
ALLOCATOR_PROPERTIES
*
props
,
const
AM_MEDIA_TYPE
*
amt
);
HRESULT
Parser_Create
(
ParserImpl
*
,
const
CLSID
*
,
PFN_PROCESS_SAMPLE
,
PFN_QUERY_ACCEPT
,
PFN_PRE_CONNECT
,
PFN_CLEANUP
);
HRESULT
Parser_Create
(
ParserImpl
*
,
const
CLSID
*
,
PFN_PROCESS_SAMPLE
,
PFN_QUERY_ACCEPT
,
PFN_PRE_CONNECT
,
PFN_CLEANUP
,
CHANGEPROC
stop
,
CHANGEPROC
current
,
CHANGEPROC
rate
);
dlls/quartz/waveparser.c
View file @
1544e523
...
...
@@ -334,7 +334,7 @@ HRESULT WAVEParser_create(IUnknown * pUnkOuter, LPVOID * ppv)
This
->
pCurrentSample
=
NULL
;
hr
=
Parser_Create
(
&
(
This
->
Parser
),
&
CLSID_WAVEParser
,
WAVEParser_Sample
,
WAVEParser_QueryAccept
,
WAVEParser_InputPin_PreConnect
,
WAVEParser_Cleanup
);
hr
=
Parser_Create
(
&
(
This
->
Parser
),
&
CLSID_WAVEParser
,
WAVEParser_Sample
,
WAVEParser_QueryAccept
,
WAVEParser_InputPin_PreConnect
,
WAVEParser_Cleanup
,
NULL
,
NULL
,
NULL
);
if
(
FAILED
(
hr
))
return
hr
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment