Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
219cfa67
Unverified
Commit
219cfa67
authored
Dec 05, 2019
by
Gus Grubba
Committed by
GitHub
Dec 05, 2019
Browse files
Merge pull request #8088 from andrewvoznytsa/video_recording_offset_fix
Non-invasive media file offset adjusting
parents
3a8bfcdc
518386c9
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/VideoStreaming/VideoReceiver.cc
View file @
219cfa67
...
...
@@ -854,13 +854,22 @@ VideoReceiver::_keyframeWatch(GstPad* pad, GstPadProbeInfo* info, gpointer user_
return
GST_PAD_PROBE_DROP
;
}
else
{
VideoReceiver
*
pThis
=
static_cast
<
VideoReceiver
*>
(
user_data
);
// reset the clock
GstClock
*
clock
=
gst_pipeline_get_clock
(
GST_PIPELINE
(
pThis
->
_pipeline
));
GstClockTime
time
=
gst_clock_get_time
(
clock
);
gst_object_unref
(
clock
);
gst_element_set_base_time
(
pThis
->
_pipeline
,
time
);
// offset pipeline timestamps to start at zero again
buf
->
dts
=
0
;
// The offset will not apply to this current buffer, our first frame, timestamp is zero
buf
->
pts
=
0
;
// set media file '0' offset to current timeline position - we don't want to touch other elements in the graph, except these which are downstream!
gint64
position
;
if
(
gst_element_query_position
(
pThis
->
_pipeline
,
GST_FORMAT_TIME
,
&
position
)
!=
TRUE
)
{
qCDebug
(
VideoReceiverLog
)
<<
"Unable to get timeline position, let's hope that downstream elements will survive"
;
if
(
buf
->
pts
!=
GST_CLOCK_TIME_NONE
)
{
position
=
buf
->
pts
;
}
else
{
position
=
gst_pad_get_offset
(
pad
);
}
}
gst_pad_set_offset
(
pad
,
position
);
// Add the filesink once we have a valid I-frame
gst_bin_add_many
(
GST_BIN
(
pThis
->
_pipeline
),
pThis
->
_sink
->
filesink
,
nullptr
);
...
...
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment