flvmux: properly determine final duration
... which can be authoratively obtained from our own written timestamps.
This commit is contained in:
parent
fa5c02b211
commit
b175d1cbc4
@ -1250,12 +1250,6 @@ gst_flv_mux_determine_duration (GstFlvMux * mux)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (duration == GST_CLOCK_TIME_NONE) {
|
|
||||||
GST_DEBUG_OBJECT (mux, "not able to determine duration "
|
|
||||||
"from pad timestamps, assuming 0");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return duration;
|
return duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1269,6 +1263,7 @@ gst_flv_mux_rewrite_header (GstFlvMux * mux)
|
|||||||
GList *l;
|
GList *l;
|
||||||
guint32 index_len, allocate_size;
|
guint32 index_len, allocate_size;
|
||||||
guint32 i, index_skip;
|
guint32 i, index_skip;
|
||||||
|
GstClockTime dur;
|
||||||
|
|
||||||
if (mux->streamable)
|
if (mux->streamable)
|
||||||
return GST_FLOW_OK;
|
return GST_FLOW_OK;
|
||||||
@ -1281,9 +1276,12 @@ gst_flv_mux_rewrite_header (GstFlvMux * mux)
|
|||||||
return GST_FLOW_OK;
|
return GST_FLOW_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if we were not able to determine the duration before, set it now */
|
/* determine duration now based on our own timestamping,
|
||||||
if (mux->duration == GST_CLOCK_TIME_NONE)
|
* so that it is likely many times better and consistent
|
||||||
mux->duration = gst_flv_mux_determine_duration (mux);
|
* than whatever obtained by some query */
|
||||||
|
dur = gst_flv_mux_determine_duration (mux);
|
||||||
|
if (dur != GST_CLOCK_TIME_NONE)
|
||||||
|
mux->duration = dur;
|
||||||
|
|
||||||
/* rewrite the duration tag */
|
/* rewrite the duration tag */
|
||||||
d = gst_guint64_to_gdouble (mux->duration);
|
d = gst_guint64_to_gdouble (mux->duration);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user