Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
J
jami-libclient
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
savoirfairelinux
jami-libclient
Commits
ca2a0dd8
Commit
ca2a0dd8
authored
5 years ago
by
Kateryna Kostiuk
Committed by
Andreas Traczyk
5 years ago
Browse files
Options
Downloads
Patches
Plain Diff
preview: fix when using avframe
Change-Id: I6f5dfc7858ce60274963053f35e217b3af0a709a
parent
be1e8f75
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/directrenderer.cpp
+19
-0
19 additions, 0 deletions
src/directrenderer.cpp
src/directrenderer.h
+1
-0
1 addition, 0 deletions
src/directrenderer.h
src/newvideo.cpp
+3
-0
3 additions, 0 deletions
src/newvideo.cpp
with
23 additions
and
0 deletions
src/directrenderer.cpp
+
19
−
0
View file @
ca2a0dd8
...
@@ -49,6 +49,7 @@ public:
...
@@ -49,6 +49,7 @@ public:
DRing
::
SinkTarget
::
FrameBufferPtr
requestFrameBuffer
(
std
::
size_t
bytes
);
DRing
::
SinkTarget
::
FrameBufferPtr
requestFrameBuffer
(
std
::
size_t
bytes
);
void
onNewFrame
(
DRing
::
SinkTarget
::
FrameBufferPtr
buf
);
void
onNewFrame
(
DRing
::
SinkTarget
::
FrameBufferPtr
buf
);
void
onNewAVFrame
(
std
::
unique_ptr
<
DRing
::
VideoFrame
>
frame
);
void
onNewAVFrame
(
std
::
unique_ptr
<
DRing
::
VideoFrame
>
frame
);
void
configureTarget
(
bool
useAVFrame
);
DRing
::
SinkTarget
target
;
DRing
::
SinkTarget
target
;
DRing
::
AVSinkTarget
av_target
;
DRing
::
AVSinkTarget
av_target
;
...
@@ -98,6 +99,10 @@ void Video::DirectRenderer::stopRendering ()
...
@@ -98,6 +99,10 @@ void Video::DirectRenderer::stopRendering ()
Video
::
Renderer
::
d_ptr
->
m_isRendering
=
false
;
Video
::
Renderer
::
d_ptr
->
m_isRendering
=
false
;
emit
stopped
();
emit
stopped
();
}
}
void
Video
::
DirectRenderer
::
configureTarget
(
bool
useAVFrame
)
{
d_ptr
->
configureTarget
(
useAVFrame
);
}
DRing
::
SinkTarget
::
FrameBufferPtr
Video
::
DirectRendererPrivate
::
requestFrameBuffer
(
std
::
size_t
bytes
)
DRing
::
SinkTarget
::
FrameBufferPtr
Video
::
DirectRendererPrivate
::
requestFrameBuffer
(
std
::
size_t
bytes
)
{
{
...
@@ -110,6 +115,20 @@ DRing::SinkTarget::FrameBufferPtr Video::DirectRendererPrivate::requestFrameBuff
...
@@ -110,6 +115,20 @@ DRing::SinkTarget::FrameBufferPtr Video::DirectRendererPrivate::requestFrameBuff
return
std
::
move
(
daemonFramePtr_
);
return
std
::
move
(
daemonFramePtr_
);
}
}
void
Video
::
DirectRendererPrivate
::
configureTarget
(
bool
useAVFrame
)
{
using
namespace
std
::
placeholders
;
if
(
useAVFrame
)
{
target
.
pull
=
nullptr
;
target
.
push
=
nullptr
;
av_target
.
push
=
std
::
bind
(
&
Video
::
DirectRendererPrivate
::
onNewAVFrame
,
this
,
_1
);
return
;
}
target
.
pull
=
std
::
bind
(
&
Video
::
DirectRendererPrivate
::
requestFrameBuffer
,
this
,
_1
);
target
.
push
=
std
::
bind
(
&
Video
::
DirectRendererPrivate
::
onNewFrame
,
this
,
_1
);
av_target
.
push
=
nullptr
;
}
void
Video
::
DirectRendererPrivate
::
onNewFrame
(
DRing
::
SinkTarget
::
FrameBufferPtr
buf
)
void
Video
::
DirectRendererPrivate
::
onNewFrame
(
DRing
::
SinkTarget
::
FrameBufferPtr
buf
)
{
{
if
(
not
q_ptr
->
isRendering
())
if
(
not
q_ptr
->
isRendering
())
...
...
This diff is collapsed.
Click to expand it.
src/directrenderer.h
+
1
−
0
View file @
ca2a0dd8
...
@@ -52,6 +52,7 @@ public:
...
@@ -52,6 +52,7 @@ public:
virtual
ColorSpace
colorSpace
()
const
override
;
virtual
ColorSpace
colorSpace
()
const
override
;
virtual
lrc
::
api
::
video
::
Frame
currentFrame
()
const
override
;
virtual
lrc
::
api
::
video
::
Frame
currentFrame
()
const
override
;
virtual
std
::
unique_ptr
<
AVFrame
,
void
(
*
)(
AVFrame
*
)
>
currentAVFrame
()
const
override
;
virtual
std
::
unique_ptr
<
AVFrame
,
void
(
*
)(
AVFrame
*
)
>
currentAVFrame
()
const
override
;
void
configureTarget
(
bool
useAVFrame
);
public
Q_SLOTS
:
public
Q_SLOTS
:
virtual
void
startRendering
()
override
;
virtual
void
startRendering
()
override
;
...
...
This diff is collapsed.
Click to expand it.
src/newvideo.cpp
+
3
−
0
View file @
ca2a0dd8
...
@@ -138,6 +138,9 @@ Renderer::isRendering() const
...
@@ -138,6 +138,9 @@ Renderer::isRendering() const
void
void
Renderer
::
useAVFrame
(
bool
useAVFrame
)
{
Renderer
::
useAVFrame
(
bool
useAVFrame
)
{
pimpl_
->
usingAVFrame_
=
useAVFrame
;
pimpl_
->
usingAVFrame_
=
useAVFrame
;
#ifdef ENABLE_LIBWRAP
pimpl_
->
renderer
->
configureTarget
(
useAVFrame
);
#endif;
}
}
std
::
string
std
::
string
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment