- Dec 03, 2019
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
- Dec 02, 2019
-
-
- Nov 29, 2019
-
-
VPX_IMG_FMT_I444 pixel format with sRGB colorspace means GBR data. Fixes: #651
-
...or it will segfault from time to time...
-
- Nov 20, 2019
-
-
In push mode (streaming), if the audio size is smaller than segment buffer size, it would be ignored. This happens because when the plugin receives an EOS signal while a single audio chunk that is less than the segment buffer size is buffered, it does not flush this chunk. The fix is to flush the data chunk when it receives an EOS signal and has a single (first) chunk buffered. How to reproduce: 1. Run gst-launch with tcp source ``` gst-launch-1.0 tcpserversrc port=3000 ! wavparse ignore-length=0 ! audioconvert ! filesink location=bug.wav ``` 2. Send a wav file with unspecified data chunk length (0). Attached a test file ``` cat test.wav | nc localhost 3000 ``` 3. Compare the length of the source file and output file ``` ls -l test.wav bug.wav -rw-rw-r-- 1 amr amr 0 Aug 15 11:07 bug.wav -rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav ``` The expected length of the result of the gst-lauch pipeline should be the same as the test file minus the headers (44), which is ```3564 - 44 = 3520``` but the actual output length is ```0``` After the fix: ``` ls -l test.wav fix.wav -rw-rw-r-- 1 amr amr 3520 Aug 15 11:09 fix.wav -rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav ```
-
In push mode (streaming), if the last audio payload chunk is less than the segment rate buffer size, it would be ignored since the plugin waits until it has at least segment rate bufer size of audio. The fix is to introduce a flushing flag that indicates that no more audio will be available so that the plugin can recognize this condition and flush the data is has even if it is less than the desired segment rate buffer size.
-
Before we do streamon, we queue all capture buffers by calling resurrect. When the driver supports CREATE_BUFS, this would lead to buffers being allocated till the maximum of 32 is reached. Instead, we now save the number of allocated buffers and queue this amount.
-
- Nov 19, 2019
-
-
libv4l2 reset the colorpace to 0 and does not do any request to the driver. This yields an invalid colorspace which currently cause a negotiation failure. This workaround by ignoring bad values during the TRY_FMT step.
-
- Nov 18, 2019
-
-
-
This change fixes the reversed logic in the EOI tag detection code.
-
- Nov 14, 2019
-
-
This update is needed when the output caps is not changed (e.g. we are moving a viewport around). Fixes #669
-
- Nov 11, 2019
- Nov 10, 2019
-
-
If the the height is not a multiple of the macro block size then the memory of the last line is reused for all extra lines. This is no problem if the last line is duplicated properly. However, if the extra lines are not initialized properly during encoding, then the last visible line is overwritten with undefined data. Use a extra buffer to avoid this problem.
-
- Oct 29, 2019
-
-
In commit e2ff8773 ("v4l2videodec: support orphaning") support for orphaning the capture buffer pool was added when the format is renegotiated. However, the commit forgot to check that a pool existed before doing this. This is needed because it's possible for the format to be renegotiated before a capture pool is allocated, which would result in trying to orphan a NULL pool and lead to a NULL pointer dereference. Fix this by checking a pool exists first. If the pool doesn't exist, there are no buffers to be reclaimed, so skip the allocation query in that case.
-
- Oct 17, 2019
-
-
- Oct 13, 2019
-
-
Tim-Philipp Müller authored
Follow-up to commit 1b752c0f !361
-
-
- Sep 23, 2019
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
- Sep 10, 2019
-
-
On arm/aarch64, converting from float directly to unsigned int uses a different opcode and negative numbers result in 0. Cast to signed int first.
-
- Aug 24, 2019
-
-
sethostent() seems to be using a global state and we endup with leaks from that API when called through shout_init(). We had the option to only ignore the shout case, but the impression is that if we have shout and another sethostend user, as it's a global state, we may endup with a different stack trace for the same leak. So in the end, we just ignore memory allocated by sethostent in general.
- Aug 21, 2019
-
-
gstsouphttpsrc.c(2191): warning C4133: '=': incompatible types - from 'guint (__cdecl *)(GType)' to 'GstURIType (__cdecl *)(GType)'
-
- Aug 20, 2019
-
-
So any value over MAXINT32 gets considered as negative and is silently ignored.
-
Make sure to clear any master clock on the media_clock before unreffing it to release the timer callback that's updating the clock and keeping it reffed.
-
Fix assertion fail GLib-CRITICAL **: g_ptr_array_remove_range: assertion 'index_ < rarray->len' failed
-
- Aug 10, 2019
-
-
From now on, we will use linux/types.h on Linux, and use typedef of the various flavour of BSD. Fixes #635
-
- Aug 08, 2019
-
-
Forwarding a single segment event from the pad that first gets chained is incorrect: when that first event was sent by an element such as x264enc, with its offset start, we end pushing out of segment buffers for the other pad(s). Instead, everytime the active pad changes, forward the appropriate segment event. Fixes gstreamer/gst-plugins-bad#1028
-
Prevent _size_changed_cb() to be called after gtkglsink has been finalized. Fix #632
-
Simply assume that the JPEG frame is not going to be interlaced instead of crashing.
-
The src caps were never dereferenced, causing a memory leak.
-
Return right type for drain() function.
-
In this change we now protect the internal srcpads list using the stream lock and limit usage of the internal stream lock to preventing data flowing on the other src pad type while creating and signalling the new pad. This fixes a deadlock with RTPBin shutdown lock. These two locks would end up being taken in two different order, which caused a deadlock. More generally, we should not rely on a streamlock when handling out-of-band data, so as a side effect, we should not take a stream lock when iterating internal links.
-
- Aug 07, 2019
-
-
When trying to orphan a buffer pool, successfully return and unref the pool when the pool is either successfully stopped or orphaned. Indicate failure and leave the pool untouched otherwise.
-
Allocator resources cannot be freed when a buffer pool is orphaned while its buffers are in use. They should, however, be freed once those buffers are no longer needed. This patch disposes of any buffers belonging to an orphaned pool as they are released, and makes sure that the allocator is cleaned up when the last buffer is returned.
-
Use V4L2 buffer orphaning, on recent kernels so that the device can be restarted immediately with a new buffer pool during renogatiation.
-
There is only a single sink element in async-finalize mode, and we would keep the running time from previous fragments set in that case. As we don't ever set the running time for the very last fragment on EOS, this would mean that the closing time reported for the very last fragment is the same as the closing time of the previous fragment.
-