summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-28volume: use template check for accept-capsHEADmasterThiago Santos1-0/+1
No need to do a find_transform() operation, they always accept the same as the template
2015-08-28videoconvert: videorate: videoscale: use template check for accept-capsThiago Santos3-0/+5
No need to do a find_transform() operation, they always accept the same as the template
2015-08-28audioconvert: audioresample: use template check for accept-capsThiago Santos2-0/+2
No need to do a find_transform() operation, they always accept the same as the template
2015-08-28playsinkconvertbin: implement accept-caps handlerThiago Santos1-0/+47
The default one will just go through the internal elements which might just be identity when it is in passthrough which will lead to the query being handled by the downstream sink, ignoring all that playsinkconvertbin could actually handle and convert.
2015-08-28audiobasesink: Fix incorrect/missing custom slaving method documentationCarlos Rafael Giani2-20/+26
https://bugzilla.gnome.org/show_bug.cgi?id=754199
2015-08-19subparse: use g_clear_error instead of g_error_freeEunhae Choi1-6/+6
To avoid invalid pointer accees the err pointer should be set to NULL. By using g_clear_error() it calls free and clear the pointer. https://bugzilla.gnome.org/show_bug.cgi?id=753817
2015-08-19Release 1.5.90Sebastian Dröge36-85/+1470
2015-08-19Update .po filesSebastian Dröge38-2135/+903
2015-08-19po: Update translationsSebastian Dröge9-999/+2204
2015-08-19tools: discoverer: When info is NULL just print error and returnVineeth TM1-1/+8
In case discover_uri returns NULL info, passing the info to discoverer APIs result in critical assertion errors. Hence instead of passing NULL info along, print the error and return. https://bugzilla.gnome.org/show_bug.cgi?id=753701
2015-08-18Revert "decodebin: Handle the preroll multi-queue size"Sebastian Dröge1-38/+6
This reverts commit 5c8ef0ea05123506dfc35c70c8b165bca7435dad.
2015-08-18Revert "decodebin: Store extra_buffer_required per group, not globally"Sebastian Dröge1-31/+26
This reverts commit 1ea81114ea6bd48b581f19002018680933aa7a12.
2015-08-18Revert "decodebin: If extra buffers are going to be required, we're still ↵Sebastian Dröge1-11/+10
prerolling" This reverts commit a3b24f0241bd55a005a072ba8ddcd53e0fdbf827.
2015-08-18video(en|de)coder: Return TRUE when we consumed a tag event without creating ↵Sebastian Dröge2-0/+4
a new event Fixes spurious flow errors that especially break gst-validate.
2015-08-18audiodecoder: If there are no tags, don't try to do event handling on a NULL ↵Sebastian Dröge1-0/+6
event Fixes some crashes.
2015-08-18audioencoder: If there are no tags, don't try to do event handling on a NULL ↵Sebastian Dröge1-0/+6
event Fixes some crashes.
2015-08-18tools: gst-play: Use g_build_filename instead of g_strconcatVivia Nikolaidou1-1/+1
When running gst-play against a directory name, and suffix the path with a directory separator (e.g. tab completion), gst-play was printing two directory separators in a row. g_build_filename fixes this, and additionally allows for both '/' and '\' as separators on Windows.
2015-08-18decodebin: If extra buffers are going to be required, we're still prerollingSebastian Dröge1-10/+11
2015-08-18decodebin: Store extra_buffer_required per group, not globallySebastian Dröge1-26/+31
It's only relevant for each group, and by storing it in the group we have locking and everything else like for the other buffering-related variables. Locking looks a bit fishy still, but it was like that for a long time already so shouldn't be worse than before.
2015-08-18decodebin: Handle the preroll multi-queue sizeMyoungsun Lee1-6/+38
Overview: There are some of interleaved streams which has long-term location of audio data. It mean the audio data is located far away more than multiqueue size. In this case, because of multiqueue overrun, the pipeline is stopped. To prevent hanging-like state, the decodebin needs to handle the queue size. Caused: The multiqueue size is not enough, the pipeline will stay being stalled status and decodebin cannot complete to build decode chain. In this issue file, decodebin did not receive no_more_pads signal or audio data yet. Steps to Reproduce: play the high-resolution(4K file) files or some streaming media(push mode). Actual Results: There is no audio or subtitle. We can see only video or infinite loading. Resolution: Decodebin detect this problem, and add extra buffer size to multiqueue. The multiqueue is larger than before, the next data can be pushed the downstream element. Additional Information: The max-preroll extra buffer size is set 8MB. We can use total pre-roll buffer 10MB. Only first overrun callback can handle multiqueue size. https://bugzilla.gnome.org/show_bug.cgi?id=733235
2015-08-18videoencoder: fix tag handlingTim-Philipp Müller1-35/+104
Merge upstream tags with encoder tags and update whenever any of those changes. https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-18audioencoder: fix tag handlingTim-Philipp Müller1-59/+116
Merge upstream tags with encoder tags and update whenever any of those changes. https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-18typefindfunctions: Add typefinder for TTML+XMLSebastian Dröge1-0/+15
Used in DASH among other things, as SMPTE Timed Text.
2015-08-18pbutils: discoverer: Set GError when NULL info is being returned.Vineeth TM1-0/+3
When discovering the URI, if info is NULL, then instead of just returning NULL, set the GError, so the error can be printed and notified. https://bugzilla.gnome.org/show_bug.cgi?id=753701
2015-08-17discoverer: free context and error during failuresVineeth TM1-0/+3
When g_option_context_parse or gst_discoverer_new fails, then there will be memory leaks for ctx and err variables. Free'ing the same. https://bugzilla.gnome.org/show_bug.cgi?id=753701
2015-08-16audiodecoder: try harder to avoid sending unnecessary tag updatesTim-Philipp Müller1-1/+2
2015-08-16videodecoder: fix tag handlingTim-Philipp Müller1-24/+81
Before we just merged everything in pretty much random ways ad-hoc instead of keeping state properly. In 0.10 that was how it worked, but in 1.x the tag events sent should always reflect the latest state and replace any previous tags. So save the upstream (stream) tags, and save the tags set by the decoder subclass with merge mode, and then update the merged tags whenever either of those two changes. This slightly changes the behaviour of gst_video_decoder_merge_tags() in case it is called multiple times, since now any call replaces the previously-set tags. However, it leads to much more predictable outcomes, and also we are not aware of any subclass which sets this multiple times and expects all the tags set to be merged. If more complex tag merging scenarios are required, we'll have to add a new vfunc for that or the subclass has to intercept the upstream tags itself and send merged tags itself. https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16tests: audiodecoder: add unit test for tag handlingTim-Philipp Müller1-0/+226
https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16audiodecoder: fix tag handlingTim-Philipp Müller1-34/+82
Before we just merged everything in pretty much random ways ad-hoc instead of keeping state properly. In 0.10 that was how it worked, but in 1.x the tag events sent should always reflect the latest state and replace any previous tags. So save the upstream (stream) tags, and save the tags set by the decoder subclass with merge mode, and then update the merged tags whenever either of those two changes. This slightly changes the behaviour of gst_audio_decoder_merge_tags() in case it is called multiple times, since now any call replaces the previously-set tags. However, it leads to much more predictable outcomes, and also we are not aware of any subclass which sets this multiple times and expects all the tags set to be merged. If more complex tag merging scenarios are required, we'll have to add a new vfunc for that or the subclass has to intercept the upstream tags itself and send merged tags itself. https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16vorbisenc: use template subset check for accept-capsThiago Santos1-0/+2
It is faster than doing a query that propagates downstream and should be enough
2015-08-16vorbisenc: use more accurate sink pad template capsThiago Santos1-36/+9
Removes the need for custom caps query handling and makes it more correct from the beginning on the template. It is a bit uglier to read because there is 1 entry per channel but makes code easier to maintain.
2015-08-16theoraenc: use template subset check for accept-capsThiago Santos1-0/+2
It is faster than doing a query that propagates downstream and should be enough
2015-08-16audioencoder: add src and sink query methodsThiago Santos2-12/+70
Allows subclasses to do their own handling of GstQuery and still chain up to the parent class to handle the ones that they don't want to handle
2015-08-16decodebin: Fix list iterationEdward Hervey1-1/+1
We were using the wrong variable ... CID #1316477
2015-08-15decodebin2: Handle flushing with multiple decode groupsEdward Hervey1-0/+116
When an upstream element wants to flush downstream, we need to take all chains/groups into consideration. To that effect, when a FLUSH_START event is seen, after having it sent downstream we mark all those chains/groups as "drained" (as if they had seen a EOS event on the endpads). When a FLUSH_STOP event is received, we check if we need to switch groups. This is done by checking if there are next groups. If so, we will switch over to the latest next_group. The actual switch will be done when that group is blocked. https://bugzilla.gnome.org/show_bug.cgi?id=606382
2015-08-15decodebin2: Forward event/queries for unlinked groupsEdward Hervey1-0/+80
When upstream events/queries reach sinkpads of unlinked groups (i.e. no longer linked to the upstream demuxer), this patch attempts to find the linked group and forward it upstream of that group. This is done by adding upstream event/query probes on new group sinkpads and then: * Checking if the pad is linked or not (has a peer or not) * If there is a peer, just let the event/query follow through normally * If there is no peer, we find a pad to which to proxy it and return GST_PROBE_HANDLED if it succeeded (allowing the event/query to be properly returned to the initial called) Note that this is definitely not thread-safe for the time being https://bugzilla.gnome.org/show_bug.cgi?id=606382
2015-08-15Revert "audiodecoder: expose default query handling function"Thiago Santos3-17/+3
Apparently I forgot how gobject works, there is no need to expose it directly as one can call it from the parent_class pointer This reverts commit 8a64592481dab985ca520a5b1cb394a609275c60.
2015-08-15Revert "videodecoder: expose default query handling function"Thiago Santos3-18/+3
Apparently I forgot how gobject works, there is no need to expose it directly as one can call it from the parent_class pointer This reverts commit ea9b6a7e3c4eea512650adf530b7f1acb0eccd84.
2015-08-15vorbisdec: use default pad accept-caps handlingThiago Santos1-0/+3
Avoids useless check of downstream caps when handling an accept-caps query
2015-08-15theoradec: use default pad accept-caps handlingThiago Santos1-0/+4
Avoids useless check of downstream caps when handling an accept-caps query
2015-08-15audiodecoder: add option to use default pad accept-caps handlingThiago Santos3-16/+50
Add gst_audio_decoder_set_use_default_pad_acceptcaps() to allow subclasses to make videodecoder use the default pad acceptcaps handling instead of resorting to the caps query that is, usually, less efficient and unecessary API: gst_audio_decoder_set_use_default_pad_acceptcaps
2015-08-15videodecoder: add option to use default pad accept-caps handlingThiago Santos3-16/+50
Add gst_video_decoder_set_use_default_pad_acceptcaps() to allow subclasses to make videodecoder use the default pad acceptcaps handling instead of resorting to the caps query that is, usually, less efficient and unecessary API: gst_video_decoder_set_use_default_pad_acceptcaps
2015-08-15rtpbasedepayload: Make stats creation threadsafe, fix a CRITICALJan Schmidt1-7/+19
Use the object lock to protect the internal segment when updating against access from getting the stats property. Fix a critical in gst-inspect or when retrieving the stats before any segment has arrived by checking whether the segment has been initted..
2015-08-15typefind: Make the H.264 typefind a tiny bit more lenient.Jan Schmidt1-2/+6
When we see prefix NALs before a Subset SPS has been spotted, it might just be because the stream was truncated at the start, so don't count those as either 'bad' or 'good' packets.
2015-08-14appsink: unref the preroll buffer and cleanup the segments on stop()George Kiagiadakis1-0/+3
Just for consistency. No need to keep data around.
2015-08-14appsink: do not update preroll_caps unless the sink is prerollingGeorge Kiagiadakis1-1/+2
Just for consistency with the preroll_segment
2015-08-14tests/appsink: add test to ensure that the segment returned by ↵George Kiagiadakis1-0/+36
pull-preroll/sample is correct https://bugzilla.gnome.org/show_bug.cgi?id=751147
2015-08-14appsink: put the correct segment in the preroll sampleGeorge Kiagiadakis1-1/+5
last_segment is only being updated in dequeue_buffer(), which is only called from _pull_sample(). _pull_preroll() simply re-uses an old or dummy segment while the actual one sits and waits in the queue. https://bugzilla.gnome.org/show_bug.cgi?id=751147
2015-08-14videodecoder: expose default query handling functionThiago Santos3-3/+17
Subclasses can use it to select what queries they want to handle and forward the rest to the default handling function. API: gst_video_decoder_sink_query_default https://bugzilla.gnome.org/show_bug.cgi?id=753623
2015-08-14audiodecoder: expose default query handling functionThiago Santos3-3/+17
Subclasses can use it to select what queries they want to handle and forward the rest to the default handling function. API: gst_audio_decoder_sink_query_default https://bugzilla.gnome.org/show_bug.cgi?id=753623