Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
288f6784
Commit
288f6784
authored
Dec 11, 2009
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
davinci encoder: fps measurements
parent
93509622
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
1 deletion
+31
-1
modules/codec/davinci/encoder.c
modules/codec/davinci/encoder.c
+31
-1
No files found.
modules/codec/davinci/encoder.c
View file @
288f6784
...
...
@@ -59,6 +59,12 @@ struct encoder_sys_t
XDM_BufDesc
in
;
XDM_BufDesc
out
;
/* stats */
mtime_t
i_pts_start
;
mtime_t
i_pts_end
;
int
i_fps
;
int
i_pics
;
};
/*****************************************************************************
...
...
@@ -257,6 +263,7 @@ static int davinci_InitBuffers( encoder_t *p_enc )
p_enc
->
fmt_out
.
video
.
i_frame_rate
*
1000
/
p_enc
->
fmt_out
.
video
.
i_frame_rate_base
:
p_enc
->
i_iframes
*
1000
;
/* Frames per 1000 seconds */
p_sys
->
i_fps
=
dparams
.
refFrameRate
/
1000
;
dparams
.
targetFrameRate
=
dparams
.
refFrameRate
;
/* input fps = output fps */
dparams
.
targetBitRate
=
p_enc
->
fmt_out
.
i_bitrate
;
dparams
.
intraFrameInterval
=
p_enc
->
i_iframes
;
...
...
@@ -301,7 +308,7 @@ static int davinci_InitBuffers( encoder_t *p_enc )
/* Allocate output buffer */
if
(
(
i_ret
=
davinci_AllocateBuffer
(
status
.
bufInfo
.
minNumOutBufs
,
status
.
bufInfo
.
minOutBufSize
,
&
p_sys
->
out
))
status
.
bufInfo
.
minOutBufSize
,
&
p_sys
->
out
))
!=
VLC_SUCCESS
)
{
msg_Err
(
p_enc
,
"Failed to allocate input buffers"
);
...
...
@@ -325,6 +332,29 @@ static block_t *EncodeVideo( encoder_t *p_enc, picture_t *p_pic )
return
NULL
;
}
p_sys
->
i_pics
++
;
if
(
p_sys
->
i_pics
==
1
)
{
p_sys
->
i_pts_start
=
mdate
();
}
if
(
p_sys
->
i_pics
==
p_sys
->
i_fps
)
{
mtime_t
i_diff
;
/* in us */
double
f_fps
;
p_sys
->
i_pts_end
=
mdate
();
/* in us */
i_diff
=
(
p_sys
->
i_pts_end
-
p_sys
->
i_pts_start
);
f_fps
=
(
double
)((
i_diff
/
(
int64_t
)
p_sys
->
i_pics
));
/* 1 frame per us */
f_fps
=
((
double
)
1
/
f_fps
)
*
(
double
)
1000000
;
msg_Info
(
p_enc
,
"Encoder: %d frames per %"
PRId64
" micro seconds (%4.2f fps)"
,
p_sys
->
i_pics
,
i_diff
,
f_fps
);
/* reset timers */
p_sys
->
i_pics
=
0
;
p_sys
->
i_pts_start
=
p_sys
->
i_pts_end
=
(
mtime_t
)
0
;
}
davinci_CopyPictureToXDM
(
p_enc
,
&
p_sys
->
in
,
p_pic
);
/* Configure input */
...
...
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