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
9e2a9e34
Commit
9e2a9e34
authored
Aug 09, 2022
by
Rémi Bernon
Committed by
Alexandre Julliard
Sep 15, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winegstreamer: Set MFT_OUTPUT_DATA_BUFFER_INCOMPLETE in wg_transform_read_mf.
parent
61783928
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
19 additions
and
16 deletions
+19
-16
color_convert.c
dlls/winegstreamer/color_convert.c
+3
-1
gst_private.h
dlls/winegstreamer/gst_private.h
+1
-1
h264_decoder.c
dlls/winegstreamer/h264_decoder.c
+3
-1
resampler.c
dlls/winegstreamer/resampler.c
+2
-5
video_processor.c
dlls/winegstreamer/video_processor.c
+3
-1
wg_sample.c
dlls/winegstreamer/wg_sample.c
+5
-2
wma_decoder.c
dlls/winegstreamer/wma_decoder.c
+2
-5
No files found.
dlls/winegstreamer/color_convert.c
View file @
9e2a9e34
...
...
@@ -595,8 +595,10 @@ static HRESULT WINAPI transform_ProcessOutput(IMFTransform *iface, DWORD flags,
return
MF_E_BUFFERTOOSMALL
;
}
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
impl
->
wg_transform
,
wg_sample
,
NULL
)))
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
impl
->
wg_transform
,
wg_sample
,
NULL
,
&
samples
[
0
].
dwStatus
)))
wg_sample_queue_flush
(
impl
->
wg_sample_queue
,
false
);
wg_sample_release
(
wg_sample
);
if
(
hr
==
MF_E_TRANSFORM_STREAM_CHANGE
)
...
...
dlls/winegstreamer/gst_private.h
View file @
9e2a9e34
...
...
@@ -135,7 +135,7 @@ HRESULT wg_transform_push_mf(struct wg_transform *transform, struct wg_sample *s
HRESULT
wg_transform_push_quartz
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
sample
,
struct
wg_sample_queue
*
queue
);
HRESULT
wg_transform_read_mf
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
sample
,
struct
wg_format
*
format
);
struct
wg_format
*
format
,
DWORD
*
flags
);
HRESULT
wg_transform_read_quartz
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
sample
);
HRESULT
winegstreamer_stream_handler_create
(
REFIID
riid
,
void
**
obj
);
...
...
dlls/winegstreamer/h264_decoder.c
View file @
9e2a9e34
...
...
@@ -641,8 +641,10 @@ static HRESULT WINAPI transform_ProcessOutput(IMFTransform *iface, DWORD flags,
return
MF_E_BUFFERTOOSMALL
;
}
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
decoder
->
wg_transform
,
wg_sample
,
&
wg_format
)))
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
decoder
->
wg_transform
,
wg_sample
,
&
wg_format
,
&
samples
[
0
].
dwStatus
)))
wg_sample_queue_flush
(
decoder
->
wg_sample_queue
,
false
);
wg_sample_release
(
wg_sample
);
if
(
hr
==
MF_E_TRANSFORM_STREAM_CHANGE
)
...
...
dlls/winegstreamer/resampler.c
View file @
9e2a9e34
...
...
@@ -565,12 +565,9 @@ static HRESULT WINAPI transform_ProcessOutput(IMFTransform *iface, DWORD flags,
return
MF_E_BUFFERTOOSMALL
;
}
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
impl
->
wg_transform
,
wg_sample
,
NULL
)))
{
if
(
wg_sample
->
flags
&
WG_SAMPLE_FLAG_INCOMPLETE
)
samples
[
0
].
dwStatus
|=
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE
;
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
impl
->
wg_transform
,
wg_sample
,
NULL
,
&
samples
[
0
].
dwStatus
)))
wg_sample_queue_flush
(
impl
->
wg_sample_queue
,
false
);
}
wg_sample_release
(
wg_sample
);
...
...
dlls/winegstreamer/video_processor.c
View file @
9e2a9e34
...
...
@@ -571,8 +571,10 @@ static HRESULT WINAPI video_processor_ProcessOutput(IMFTransform *iface, DWORD f
return
MF_E_BUFFERTOOSMALL
;
}
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
impl
->
wg_transform
,
wg_sample
,
NULL
)))
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
impl
->
wg_transform
,
wg_sample
,
NULL
,
&
samples
[
0
].
dwStatus
)))
wg_sample_queue_flush
(
impl
->
wg_sample_queue
,
false
);
wg_sample_release
(
wg_sample
);
if
(
hr
==
MF_E_TRANSFORM_STREAM_CHANGE
)
...
...
dlls/winegstreamer/wg_sample.c
View file @
9e2a9e34
...
...
@@ -20,6 +20,7 @@
#include "wmcodecdsp.h"
#include "mfapi.h"
#include "mferror.h"
#include "wine/debug.h"
#include "wine/list.h"
...
...
@@ -282,12 +283,12 @@ HRESULT wg_transform_push_mf(struct wg_transform *transform, struct wg_sample *w
}
HRESULT
wg_transform_read_mf
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
wg_sample
,
struct
wg_format
*
format
)
struct
wg_format
*
format
,
DWORD
*
flags
)
{
struct
sample
*
sample
=
unsafe_mf_from_wg_sample
(
wg_sample
);
HRESULT
hr
;
TRACE_
(
mfplat
)(
"transform %p, wg_sample %p, format %p
.
\n
"
,
transform
,
wg_sample
,
format
);
TRACE_
(
mfplat
)(
"transform %p, wg_sample %p, format %p
, flags %p.
\n
"
,
transform
,
wg_sample
,
format
,
flags
);
if
(
FAILED
(
hr
=
wg_transform_read_data
(
transform
,
wg_sample
,
format
)))
return
hr
;
...
...
@@ -295,6 +296,8 @@ HRESULT wg_transform_read_mf(struct wg_transform *transform, struct wg_sample *w
if
(
FAILED
(
hr
=
IMFMediaBuffer_SetCurrentLength
(
sample
->
u
.
mf
.
buffer
,
wg_sample
->
size
)))
return
hr
;
if
(
wg_sample
->
flags
&
WG_SAMPLE_FLAG_INCOMPLETE
)
*
flags
|=
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE
;
if
(
wg_sample
->
flags
&
WG_SAMPLE_FLAG_HAS_PTS
)
IMFSample_SetSampleTime
(
sample
->
u
.
mf
.
sample
,
wg_sample
->
pts
);
if
(
wg_sample
->
flags
&
WG_SAMPLE_FLAG_HAS_DURATION
)
...
...
dlls/winegstreamer/wma_decoder.c
View file @
9e2a9e34
...
...
@@ -591,12 +591,9 @@ static HRESULT WINAPI transform_ProcessOutput(IMFTransform *iface, DWORD flags,
return
MF_E_BUFFERTOOSMALL
;
}
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
decoder
->
wg_transform
,
wg_sample
,
NULL
)))
{
if
(
wg_sample
->
flags
&
WG_SAMPLE_FLAG_INCOMPLETE
)
samples
[
0
].
dwStatus
|=
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE
;
if
(
SUCCEEDED
(
hr
=
wg_transform_read_mf
(
decoder
->
wg_transform
,
wg_sample
,
NULL
,
&
samples
[
0
].
dwStatus
)))
wg_sample_queue_flush
(
decoder
->
wg_sample_queue
,
false
);
}
wg_sample_release
(
wg_sample
);
...
...
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