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
71da6a71
Commit
71da6a71
authored
Sep 14, 2022
by
Rémi Bernon
Committed by
Alexandre Julliard
Sep 15, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winegstreamer: Create wg_sample from IMFSample within wg_transform_push_mf.
parent
77a4b4b4
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
20 additions
and
44 deletions
+20
-44
color_convert.c
dlls/winegstreamer/color_convert.c
+1
-7
gst_private.h
dlls/winegstreamer/gst_private.h
+1
-1
h264_decoder.c
dlls/winegstreamer/h264_decoder.c
+1
-6
resampler.c
dlls/winegstreamer/resampler.c
+1
-7
video_processor.c
dlls/winegstreamer/video_processor.c
+1
-7
wg_sample.c
dlls/winegstreamer/wg_sample.c
+14
-11
wma_decoder.c
dlls/winegstreamer/wma_decoder.c
+1
-5
No files found.
dlls/winegstreamer/color_convert.c
View file @
71da6a71
...
@@ -544,19 +544,13 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
...
@@ -544,19 +544,13 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
{
{
struct
color_convert
*
impl
=
impl_from_IMFTransform
(
iface
);
struct
color_convert
*
impl
=
impl_from_IMFTransform
(
iface
);
struct
wg_sample
*
wg_sample
;
HRESULT
hr
;
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
if
(
!
impl
->
wg_transform
)
if
(
!
impl
->
wg_transform
)
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
if
(
FAILED
(
hr
=
wg_sample_create_mf
(
sample
,
&
wg_sample
)))
return
wg_transform_push_mf
(
impl
->
wg_transform
,
sample
,
impl
->
wg_sample_queue
);
return
hr
;
return
wg_transform_push_mf
(
impl
->
wg_transform
,
wg_sample
,
impl
->
wg_sample_queue
);
}
}
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
...
...
dlls/winegstreamer/gst_private.h
View file @
71da6a71
...
@@ -130,7 +130,7 @@ HRESULT wg_sample_create_mf(IMFSample *sample, struct wg_sample **out);
...
@@ -130,7 +130,7 @@ HRESULT wg_sample_create_mf(IMFSample *sample, struct wg_sample **out);
HRESULT
wg_sample_create_quartz
(
IMediaSample
*
sample
,
struct
wg_sample
**
out
);
HRESULT
wg_sample_create_quartz
(
IMediaSample
*
sample
,
struct
wg_sample
**
out
);
void
wg_sample_release
(
struct
wg_sample
*
wg_sample
);
void
wg_sample_release
(
struct
wg_sample
*
wg_sample
);
HRESULT
wg_transform_push_mf
(
struct
wg_transform
*
transform
,
struct
wg_s
ample
*
sample
,
HRESULT
wg_transform_push_mf
(
struct
wg_transform
*
transform
,
IMFS
ample
*
sample
,
struct
wg_sample_queue
*
queue
);
struct
wg_sample_queue
*
queue
);
HRESULT
wg_transform_push_quartz
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
sample
,
HRESULT
wg_transform_push_quartz
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
sample
,
struct
wg_sample_queue
*
queue
);
struct
wg_sample_queue
*
queue
);
...
...
dlls/winegstreamer/h264_decoder.c
View file @
71da6a71
...
@@ -585,18 +585,13 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
...
@@ -585,18 +585,13 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
{
{
struct
h264_decoder
*
decoder
=
impl_from_IMFTransform
(
iface
);
struct
h264_decoder
*
decoder
=
impl_from_IMFTransform
(
iface
);
struct
wg_sample
*
wg_sample
;
HRESULT
hr
;
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
if
(
!
decoder
->
wg_transform
)
if
(
!
decoder
->
wg_transform
)
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
if
(
FAILED
(
hr
=
wg_sample_create_mf
(
sample
,
&
wg_sample
)))
return
wg_transform_push_mf
(
decoder
->
wg_transform
,
sample
,
decoder
->
wg_sample_queue
);
return
hr
;
return
wg_transform_push_mf
(
decoder
->
wg_transform
,
wg_sample
,
decoder
->
wg_sample_queue
);
}
}
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
...
...
dlls/winegstreamer/resampler.c
View file @
71da6a71
...
@@ -513,19 +513,13 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
...
@@ -513,19 +513,13 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
{
{
struct
resampler
*
impl
=
impl_from_IMFTransform
(
iface
);
struct
resampler
*
impl
=
impl_from_IMFTransform
(
iface
);
struct
wg_sample
*
wg_sample
;
HRESULT
hr
;
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
if
(
!
impl
->
wg_transform
)
if
(
!
impl
->
wg_transform
)
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
if
(
FAILED
(
hr
=
wg_sample_create_mf
(
sample
,
&
wg_sample
)))
return
wg_transform_push_mf
(
impl
->
wg_transform
,
sample
,
impl
->
wg_sample_queue
);
return
hr
;
return
wg_transform_push_mf
(
impl
->
wg_transform
,
wg_sample
,
impl
->
wg_sample_queue
);
}
}
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
...
...
dlls/winegstreamer/video_processor.c
View file @
71da6a71
...
@@ -521,19 +521,13 @@ static HRESULT WINAPI video_processor_ProcessMessage(IMFTransform *iface, MFT_ME
...
@@ -521,19 +521,13 @@ static HRESULT WINAPI video_processor_ProcessMessage(IMFTransform *iface, MFT_ME
static
HRESULT
WINAPI
video_processor_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
static
HRESULT
WINAPI
video_processor_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
{
{
struct
video_processor
*
impl
=
impl_from_IMFTransform
(
iface
);
struct
video_processor
*
impl
=
impl_from_IMFTransform
(
iface
);
struct
wg_sample
*
wg_sample
;
HRESULT
hr
;
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
TRACE
(
"iface %p, id %#lx, sample %p, flags %#lx.
\n
"
,
iface
,
id
,
sample
,
flags
);
if
(
!
impl
->
wg_transform
)
if
(
!
impl
->
wg_transform
)
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
return
MF_E_TRANSFORM_TYPE_NOT_SET
;
if
(
FAILED
(
hr
=
wg_sample_create_mf
(
sample
,
&
wg_sample
)))
return
wg_transform_push_mf
(
impl
->
wg_transform
,
sample
,
impl
->
wg_sample_queue
);
return
hr
;
return
wg_transform_push_mf
(
impl
->
wg_transform
,
wg_sample
,
impl
->
wg_sample_queue
);
}
}
static
HRESULT
WINAPI
video_processor_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
static
HRESULT
WINAPI
video_processor_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
...
...
dlls/winegstreamer/wg_sample.c
View file @
71da6a71
...
@@ -252,28 +252,31 @@ HRESULT wg_transform_push_data(struct wg_transform *transform, struct wg_sample
...
@@ -252,28 +252,31 @@ HRESULT wg_transform_push_data(struct wg_transform *transform, struct wg_sample
HRESULT
wg_transform_read_data
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
sample
,
HRESULT
wg_transform_read_data
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
sample
,
struct
wg_format
*
format
);
struct
wg_format
*
format
);
HRESULT
wg_transform_push_mf
(
struct
wg_transform
*
transform
,
struct
wg_sample
*
wg_
sample
,
HRESULT
wg_transform_push_mf
(
struct
wg_transform
*
transform
,
IMFSample
*
sample
,
struct
wg_sample_queue
*
queue
)
struct
wg_sample_queue
*
queue
)
{
{
struct
sample
*
sample
=
unsafe_mf_from_wg_sample
(
wg_sample
)
;
struct
wg_sample
*
wg_sample
;
LONGLONG
time
,
duration
;
LONGLONG
time
,
duration
;
UINT32
value
;
UINT32
value
;
HRESULT
hr
;
HRESULT
hr
;
TRACE_
(
mfplat
)(
"transform %p, wg_sample %p, queue %p.
\n
"
,
transform
,
wg_sample
,
queue
);
TRACE_
(
mfplat
)(
"transform %p, sample %p, queue %p.
\n
"
,
transform
,
sample
,
queue
);
if
(
FAILED
(
hr
=
wg_sample_create_mf
(
sample
,
&
wg_sample
)))
return
hr
;
if
(
SUCCEEDED
(
IMFSample_GetSampleTime
(
sample
->
u
.
mf
.
sample
,
&
time
)))
if
(
SUCCEEDED
(
IMFSample_GetSampleTime
(
sample
,
&
time
)))
{
{
sample
->
wg_sample
.
flags
|=
WG_SAMPLE_FLAG_HAS_PTS
;
wg_sample
->
flags
|=
WG_SAMPLE_FLAG_HAS_PTS
;
sample
->
wg_sample
.
pts
=
time
;
wg_sample
->
pts
=
time
;
}
}
if
(
SUCCEEDED
(
IMFSample_GetSampleDuration
(
sample
->
u
.
mf
.
sample
,
&
duration
)))
if
(
SUCCEEDED
(
IMFSample_GetSampleDuration
(
sample
,
&
duration
)))
{
{
sample
->
wg_sample
.
flags
|=
WG_SAMPLE_FLAG_HAS_DURATION
;
wg_sample
->
flags
|=
WG_SAMPLE_FLAG_HAS_DURATION
;
sample
->
wg_sample
.
duration
=
duration
;
wg_sample
->
duration
=
duration
;
}
}
if
(
SUCCEEDED
(
IMFSample_GetUINT32
(
sample
->
u
.
mf
.
sample
,
&
MFSampleExtension_CleanPoint
,
&
value
))
&&
value
)
if
(
SUCCEEDED
(
IMFSample_GetUINT32
(
sample
,
&
MFSampleExtension_CleanPoint
,
&
value
))
&&
value
)
sample
->
wg_sample
.
flags
|=
WG_SAMPLE_FLAG_SYNC_POINT
;
wg_sample
->
flags
|=
WG_SAMPLE_FLAG_SYNC_POINT
;
wg_sample_queue_begin_append
(
queue
,
wg_sample
);
wg_sample_queue_begin_append
(
queue
,
wg_sample
);
hr
=
wg_transform_push_data
(
transform
,
wg_sample
);
hr
=
wg_transform_push_data
(
transform
,
wg_sample
);
...
...
dlls/winegstreamer/wma_decoder.c
View file @
71da6a71
...
@@ -529,7 +529,6 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
...
@@ -529,7 +529,6 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
static
HRESULT
WINAPI
transform_ProcessInput
(
IMFTransform
*
iface
,
DWORD
id
,
IMFSample
*
sample
,
DWORD
flags
)
{
{
struct
wma_decoder
*
decoder
=
impl_from_IMFTransform
(
iface
);
struct
wma_decoder
*
decoder
=
impl_from_IMFTransform
(
iface
);
struct
wg_sample
*
wg_sample
;
MFT_INPUT_STREAM_INFO
info
;
MFT_INPUT_STREAM_INFO
info
;
DWORD
total_length
;
DWORD
total_length
;
HRESULT
hr
;
HRESULT
hr
;
...
@@ -547,10 +546,7 @@ static HRESULT WINAPI transform_ProcessInput(IMFTransform *iface, DWORD id, IMFS
...
@@ -547,10 +546,7 @@ static HRESULT WINAPI transform_ProcessInput(IMFTransform *iface, DWORD id, IMFS
if
(
total_length
%
info
.
cbSize
)
if
(
total_length
%
info
.
cbSize
)
return
S_OK
;
return
S_OK
;
if
(
FAILED
(
hr
=
wg_sample_create_mf
(
sample
,
&
wg_sample
)))
return
wg_transform_push_mf
(
decoder
->
wg_transform
,
sample
,
decoder
->
wg_sample_queue
);
return
hr
;
return
wg_transform_push_mf
(
decoder
->
wg_transform
,
wg_sample
,
decoder
->
wg_sample_queue
);
}
}
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
static
HRESULT
WINAPI
transform_ProcessOutput
(
IMFTransform
*
iface
,
DWORD
flags
,
DWORD
count
,
...
...
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