}
else
{
+ int64_t duration;
+
+ if( buf->stop < 0 )
+ duration = 90000L * 10;
+ else
+ duration = buf->stop - buf->start;
+
/* Write an empty sample */
if ( mux_data->sum_dur < buf->start )
{
hb_deep_log(3, "MuxMP4:Sub:%fs:%"PRId64":%"PRId64":%"PRId64": %s",
(float)buf->start / 90000, buf->start, buf->stop,
- (buf->stop - buf->start), buffer);
+ duration, buffer);
/* Write the subtitle sample */
memcpy( output + 2, buffer, buffersize );
mux_data->track,
output,
buffersize + stylesize + 2,
- buf->stop - buf->start,
+ duration,
0,
1 ))
{
*job->die = 1;
}
- mux_data->sum_dur += (buf->stop - buf->start);
+ mux_data->sum_dur += duration;
}
}
else if( mux_data->sub_format == PICTURESUB )
{
+ int64_t duration;
+
+ if( buf->stop < 0 )
+ duration = 90000L * 10;
+ else
+ duration = buf->stop - buf->start;
+
/* Write an empty sample */
if ( mux_data->sum_dur < buf->start )
{
mux_data->track,
buf->data,
buf->size,
- buf->stop - buf->start,
+ duration,
0,
1 ))
{
*job->die = 1;
}
- mux_data->sum_dur += (buf->stop - buf->start);
+ mux_data->sum_dur += duration;
}
}
else