Jan Schmidt
d78502deb1
splitmuxsink: Don't accumulate more than 2 GOPs
...
Don't allow large amounts of data to queue up - we only need
the GOP we're writing, and the GOP we're accumulating.
2015-06-08 18:58:43 +10:00
Jan Schmidt
94e113c6c6
splitmuxsrc: Protect total_duration state variable with the object lock.
...
Prevent deadlocks from downstream querying duration from the streaming thread.
2015-06-08 14:16:36 +10:00
Jimmy Ohn
d3997773fc
splitfilesrc: Implement binary search in find_part_for_offset
...
Implement binary search using gst_util_array_binary_search
https://bugzilla.gnome.org/show_bug.cgi?id=749690
2015-05-25 14:23:32 +10:00
Edward Hervey
27c91bc881
multifilesink: Add a new max-duration file switching mode
...
This new mode ensures that files will never exceed a certain duration
based on incoming buffer PTS (and duration if present)
Note:
* You need timestamped buffers (duh). If some of the incoming buffers don't
have PTS, then it will just accept them in the current file
2015-05-20 15:50:07 +02:00
Edward Hervey
f1ceaab02f
multifilesink: streamline the file-switch code a bit
...
Use the same functions regardless of the mode we are using
2015-05-20 15:50:07 +02:00
Edward Hervey
db0abbd531
multifilesink: add "aggregate-gops" property to process GOPs as a whole
...
This property can be used in combination with next-file=max-size
(and perhaps a future next-file=max-duration) to make sure that
each file part starts cleanly with a key frame and the appropriate headers.
In order for this property to work correctly, upstream elements should make
sure than any headers that need to be written in a standalone file are:
1) in the streamheader caps field
2) and/or in the stream as one or more buffers marked with GST_BUFFER_FLAG_HEADER
that are just before the keyframe buffer
This is useful for MPEG-TS/MPEG-PS file segmenting in
combination with mpegtsmux or mpegpsmux.
Original patch by: Tim-Philipp Müller <tim@centricular.com>
2015-05-20 15:49:57 +02:00
Stefan Sauer
168881a186
Revert "doc: Workaround gtkdoc issue"
...
This reverts commit 1797c8f8b1
.
This is fixed by the gtk-doc 1.23 release.
<para> cannot contain <refsect2>:
http://www.docbook.org/tdg/en/html/para.html
http://www.docbook.org/tdg/en/html/refsect2.html
2015-05-18 20:13:01 +02:00
Nicolas Dufresne
1797c8f8b1
doc: Workaround gtkdoc issue
...
With gtkdoc 1.22, the XML generator fails when a itemizedlist is
followed by a refsect2. Workaround the issue by wrapping the
refsect2 into para.
2015-05-16 23:37:06 -04:00
Tim-Philipp Müller
3755409409
splitmuxsrc: minor error message clean-up
...
Don't put filename in error message shown to user.
2015-05-10 10:53:13 +01:00
Luis de Bethencourt
9391622579
Rename property enums from ARG_ to PROP_
...
Property enum items should be named PROP_ for consistency and readability.
2015-04-27 11:22:11 +01:00
Tim-Philipp Müller
d753a3eeb1
Remove obsolete Android build cruft
...
This is not needed any longer.
2015-04-26 17:55:07 +01:00
Luis de Bethencourt
671b4d25cd
remove unused enum items PROP_LAST
...
This were probably added to the enums due to cargo cult programming and are
unused. Removing them.
2015-04-24 17:01:12 +01:00
George Kiagiadakis
97c03449a4
splitmuxsink: do not access property variable without the object lock, use the local stack copy instead
2015-04-15 13:30:19 +02:00
George Kiagiadakis
1954726328
splitmuxsink: add probe on the multiqueue's sink pad instead of the ghost pad
...
because _release_pad tries to release it from ctx->sinkpad, which is
multiqueue's sink pad, and currently fails because the probe is not
installed there
2015-04-15 13:30:19 +02:00
Tim-Philipp Müller
b745cb8a47
multifilesink: minor docs improvement
2015-04-13 14:31:17 +01:00
Vincent Penquerc'h
a862db33b6
splitmuxsink: fix mutex leak
2015-04-09 13:01:23 +01:00
Thiago Santos
cf7d9f676d
multifilesink: close files before posting message
...
Makes sure the files were properly flushed and closed before
the message reaches the application
2015-04-04 11:55:00 -03:00
Thiago Santos
e00f0de4f3
multifilesink: post file message on EOS
...
When multifilesink is operating in any mode other than one file
per buffer, the last file created won't have a file message posted
as multifilesink doesn't handle the EOS event.
This patch fixes it by using the last position to post a file
message when EOS is received. This should ensure at least the
time related data and the filename are posted to the application
or other elements
https://bugzilla.gnome.org/show_bug.cgi?id=747000
2015-04-04 07:58:44 -03:00
Jan Schmidt
d441140cd6
splitmux: Shut down element before downward state change
...
Make sure the state change won't hang trying to shut down pads
by making sure the streaming has stopped before chaining up.
2015-03-10 15:49:33 +11:00
Jan Schmidt
b0ce43cde3
splitmuxsink: Protect property variables with the object lock.
...
Use the object lock instead of the splitmux lock to protect
internal property variables, so they're not locked when
switching to a new file.
https://bugzilla.gnome.org/show_bug.cgi?id=744420
2015-03-07 00:55:47 +11:00
Tim-Philipp Müller
f5b511b42b
multifile: attempt to fix docs build issue on build bot
2015-02-26 19:48:33 +00:00
Luis de Bethencourt
4af5a2b760
splitmuxsin: remove dead code
...
Every instance of goto beach has buf_info equal NULL. Don't check
for a condition that never happens.
CID #1268399
2015-02-16 13:59:17 +00:00
Tim-Philipp Müller
3f5b690e78
splitmuxsink: flag as sink from the start
2015-02-13 20:40:48 +00:00
Tim-Philipp Müller
90badeebad
splitmuxsink: fix example pipeline properly
...
x264enc might not have a max-key-int property, but it
has a key-int-max property...
2015-02-10 16:00:07 +00:00
Luis de Bethencourt
102ae8511a
splitmux: fix typo
2015-02-10 14:57:55 +00:00
Luis de Bethencourt
12aa2428e0
splitmux: update example pipeline
...
Element x264enc doesn't have a max-key-int property
2015-02-10 14:56:23 +00:00
Luis de Bethencourt
0373fd8f65
splitmux: fix memory leak
...
If execution goes to the beach in line 981, buf_info goes out of scope without
the memory being free'd. Handle this case.
CID #1268403
2015-02-10 13:33:09 +00:00
Jan Schmidt
8ceb58122e
splitmux: Add unit test for file splitting
...
Add a unit test for file splitting, and fix the leaks in the
splitmuxsink it found
2015-02-07 03:58:30 +11:00
Jan Schmidt
aa4c29c5d6
splitmux: Fix memory leaks until the test valgrinds clean
2015-02-07 00:19:36 +11:00
Jan Schmidt
ace6be8abb
splitmux: Handle early EOS during part preparation
...
Handle the case where a short file reaches EOS while we're still
waiting for no-more-pads, and make sure we continue to the internal
READY state for real playback to work properly later.
2015-02-06 06:42:17 +11:00
Jan Schmidt
5e2214d309
splitmux: Implement new elements for splitting files at mux level.
...
Implement 2 new elements - splitmuxsink and splitmuxsrc.
splitmuxsink is a bin which wraps a muxer and takes 1 video stream,
plus audio/subtitle streams, and starts a new file
whenever necessary to avoid overrunning a threshold of either bytes
or time. New files are started at a keyframe, and corresponding audio
and subtitle streams are split at packet boundaries to match
video GOP timestamps.
splitmuxsrc is a corresponding source element which handles
the splitmux:// URL and plays back all component files,
reconstructing the original elementary streams as it goes.
2015-02-06 04:26:59 +11:00
Anuj Jaiswal
86579c59bf
multifilesink: don't OR the same flag twice
...
https://bugzilla.gnome.org/show_bug.cgi?id=736462
2014-09-11 11:05:35 +01:00
Tim-Philipp Müller
c9597298f9
docs: remove outdated and pointless 'Last reviewed' lines from docs
...
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:35:17 +01:00
Thibault Saunier
1fc591238b
multifilesrc: Implement seeking in case of multiple images
...
https://bugzilla.gnome.org/show_bug.cgi?id=712254
2013-11-22 18:52:54 -03:00
Tim-Philipp Müller
d506409af5
docs: get rid of 'Since: 0.10.x' markers
...
And some gtk-doc markup fixes.
2013-11-18 14:47:35 +00:00
Olivier Crête
4f0fdabf10
multifilesink: Let the base class do get_times
...
This will make sync=TRUE work, the default is still sync=FALSE
2013-05-13 13:34:22 -04:00
Sebastian Dröge
b0b0557c48
gst: Add better support for static plugins
2013-04-15 15:54:11 +02:00
Tim-Philipp Müller
6f1aa3e4d5
multifilesink: post messages in max-size mode as well
...
No reason not to really.
2012-11-16 09:13:22 +00:00
Alessandro Decina
b916d2b398
multifilesink: don't write stream headers with key-unit-event
...
Don't write stream headers, let upstream elements insert them in the stream if
all_headers=true is set in key unit events.
2012-11-10 12:41:33 +01:00
Tim-Philipp Müller
230cf41cc9
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Stas Sergeev
238a5ec826
multifilesrc: fix stop index handling
...
Make sure the stop index is always honoured. Avoids
endless loop if one wants to read and output the same
file N times, for example.
https://bugzilla.gnome.org/show_bug.cgi?id=654853
2012-10-26 11:04:01 +01:00
Tim-Philipp Müller
fe7236230c
multifilesrc: fix typo in property description
2012-10-25 20:19:44 +01:00
Tim-Philipp Müller
4bb52bbadf
docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert
2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
6ee9a7d228
multifilesrc: fix example pipeline in docs
2012-08-17 20:52:42 +01:00
Tim-Philipp Müller
b6da022417
splitfilesrc: fix up docs for 0.11
2012-06-17 01:00:40 +01:00
Tim-Philipp Müller
3b94e44571
splitfilesrc: small uri handler fixup and some more docs
...
Get URI location using gst_uri_get_location(), so any
escaped bits get unescaped.
https://bugzilla.gnome.org/show_bug.cgi?id=609049
2012-06-17 00:59:54 +01:00
Tim-Philipp Müller
1d659d8e41
splitfilesrc: re-port to 0.11
2012-06-17 00:59:21 +01:00
Bastien Nocera
9b13a29f91
splitfilesrc: Implement splitfile:// URI scheme
...
https://bugzilla.gnome.org/show_bug.cgi?id=609049
Conflicts:
gst/multifile/gstsplitfilesrc.c
2012-06-17 00:58:54 +01:00
Peter Seiderer
175f666293
multifilesink: don't write stream header twice for first file
2012-04-30 22:53:42 +01:00
Peter Seiderer
7112b93a97
multifilesink: fix buffer list size calculation in render_list
...
Fix uninitialized 'size' variable in call to gst_buffer_list_foreach().
2012-04-30 22:00:59 +01:00