qtmux: simplify and fix pts_offset storing
In particular, only write a ctts atom if and only if ever a non-zero offset.
diff --git a/gst/quicktime/gstqtmux.c b/gst/quicktime/gstqtmux.c
index 9ef8caf..de067b7 100644
--- a/gst/quicktime/gstqtmux.c
+++ b/gst/quicktime/gstqtmux.c
@@ -1838,8 +1838,7 @@
static GstFlowReturn
gst_qt_mux_pad_fragment_add_buffer (GstQTMux * qtmux, GstQTPad * pad,
GstBuffer * buf, gboolean force, guint32 nsamples, gint64 dts,
- guint32 delta, guint32 size, gboolean sync, gboolean do_pts,
- gint64 pts_offset)
+ guint32 delta, guint32 size, gboolean sync, gint64 pts_offset)
{
GstFlowReturn ret = GST_FLOW_OK;
@@ -1913,7 +1912,7 @@
}
/* add buffer and metadata */
- atom_traf_add_samples (pad->traf, delta, size, sync, do_pts, pts_offset,
+ atom_traf_add_samples (pad->traf, delta, size, sync, pts_offset,
pad->sync && sync);
atom_array_append (&pad->fragment_buffers, buf, 256);
pad->fragment_duration -= delta;
@@ -2159,8 +2158,8 @@
/* note that a new chunk is started each time (not fancy but works) */
if (qtmux->moov_recov_file) {
if (!atoms_recov_write_trak_samples (qtmux->moov_recov_file, pad->trak,
- nsamples, scaled_duration, sample_size, chunk_offset, sync, do_pts,
- pts_offset)) {
+ nsamples, (gint32) scaled_duration, sample_size, chunk_offset, sync,
+ do_pts, pts_offset)) {
GST_WARNING_OBJECT (qtmux, "Failed to write sample information to "
"recovery file, disabling recovery");
fclose (qtmux->moov_recov_file);
@@ -2175,10 +2174,10 @@
/* ensure that always sync samples are marked as such */
return gst_qt_mux_pad_fragment_add_buffer (qtmux, pad, last_buf,
buf == NULL, nsamples, last_dts, scaled_duration, sample_size,
- !pad->sync || sync, do_pts, pts_offset);
+ !pad->sync || sync, pts_offset);
} else {
- atom_trak_add_samples (pad->trak, nsamples, scaled_duration, sample_size,
- chunk_offset, sync, do_pts, pts_offset);
+ atom_trak_add_samples (pad->trak, nsamples, scaled_duration,
+ sample_size, chunk_offset, sync, pts_offset);
return gst_qt_mux_send_buffer (qtmux, last_buf, &qtmux->mdat_size, TRUE);
}