mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-08 04:41:31 +00:00
filesink: Consider the current buffer size when checking the current position
This commit is contained in:
parent
cbcad53b45
commit
035045c981
1 changed files with 4 additions and 2 deletions
|
@ -452,7 +452,8 @@ gst_file_sink_query (GstBaseSink * bsink, GstQuery * query)
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case GST_FORMAT_DEFAULT:
|
case GST_FORMAT_DEFAULT:
|
||||||
case GST_FORMAT_BYTES:
|
case GST_FORMAT_BYTES:
|
||||||
gst_query_set_position (query, GST_FORMAT_BYTES, self->current_pos);
|
gst_query_set_position (query, GST_FORMAT_BYTES,
|
||||||
|
self->current_pos + self->current_buffer_size);
|
||||||
res = TRUE;
|
res = TRUE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -557,7 +558,8 @@ gst_file_sink_event (GstBaseSink * sink, GstEvent * event)
|
||||||
if (segment->format == GST_FORMAT_BYTES) {
|
if (segment->format == GST_FORMAT_BYTES) {
|
||||||
/* only try to seek and fail when we are going to a different
|
/* only try to seek and fail when we are going to a different
|
||||||
* position */
|
* position */
|
||||||
if (filesink->current_pos != segment->start) {
|
if (filesink->current_pos + filesink->current_buffer_size !=
|
||||||
|
segment->start) {
|
||||||
/* FIXME, the seek should be performed on the pos field, start/stop are
|
/* FIXME, the seek should be performed on the pos field, start/stop are
|
||||||
* just boundaries for valid bytes offsets. We should also fill the file
|
* just boundaries for valid bytes offsets. We should also fill the file
|
||||||
* with zeroes if the new position extends the current EOF (sparse streams
|
* with zeroes if the new position extends the current EOF (sparse streams
|
||||||
|
|
Loading…
Reference in a new issue