- 02 Feb, 2022 2 commits
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
- 28 Jan, 2022 2 commits
-
-
SetThreadErrorMode() API is available on UWP but flag values are desktop API only. Since error dialogs don't exist on UWP, we don't need to suppress it Part-of: <!1569>
-
It is an extremely common mistake on Windows to have incorrect PATH values when loading a plugin, and the error from g_module_error() (which just calls FormatMessageW()) is very confusing in this case: The specified module could not be found. https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-#ERROR_MOD_NOT_FOUND It implies the plugin itself could not be found. The actual issue is that a DLL dependency could not be found. We need to detect this case and print a more useful error message. We should still print the error fetched from FormatMessage() so that people are able to google for it. Part-of: <!1589>
-
- 20 Jan, 2022 2 commits
- 17 Jan, 2022 1 commit
-
-
Need to release GstPluginFeature object after use Part-of: <!1534>
-
- 31 Oct, 2021 2 commits
-
-
gst_base_parse_reset() does not reset data_bytecount to 0, so gst_base_parse_update_bitrates() uses a wrong value to calculate the average bitrate on subsequent pipeline starts. This leads to an excessive amount of "tag" events being pushed. These events include very high "bitrate" values that diminish over time, and are produced until the average bitrate is back to sane values. Fixes #840 Part-of: <!1285>
-
If the query has already been destroyed at this point, GST_IS_QUERY will read garbage, can return false and we will try to unref it again. Instead, make note of whether the item is a query when we dequeue it. Part-of: <!1284>
-
- 29 Oct, 2021 7 commits
-
-
These might not exist inside the structure and then we would potentially keep around uninitialized memory from the caller in the out parameter. Part-of: <!1273>
-
Part-of: <!1272>
-
We should record the ownership of the data before we reset the bitwriter. Or we will always dup the buffer data and leak the memory. Part-of: <!1272>
-
In reset_and_get_data and reset_and_get_buffer, it fails to include the trailing bits less than 8. So, when the bit_size is not byte aligned, the trailing bits are lost in the return buffer. Part-of: <!1272>
-
The initial single queue srcresult is OK, it hasn't been NOT_LINKED since 2007. Part-of: <!1271>
-
.. when computing the high id. After a flush for instance, sq->srcresult is reset to OK, yet it doesn't make sense to pick a non-existing position id as the high id when a queue doesn't contain any items in that situation either. It is in any case completely OK to let the not-linked stream get consumed without throttling at this stage, as any first packet arriving on other single queues will get assigned a higher position id. Part-of: <!1271>
-
We need to use the segment associated with the cached buffer, not the current segment of the pad, otherwise we miscalculate the running time of cached buffers from before a segment change. Part-of: <!1270>
-
- 08 Sep, 2021 3 commits
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
Part-of: <!883>
-
- 06 Sep, 2021 2 commits
-
-
gst_child_proxy_get_property() can now take a value initialized to G_VALUE_INIT. This parallels the corresponding change in g_object_get_property(), GLib 2.60+. !724 (comment 738531) Part-of: <!882>
-
Use gap events to update the next_time of a queue the same as buffers or segment events. Fixes problems where a group consisting only of sparse streams primarily driven by gap events would stall with a full multiqueue because unlinked streams in the group were not being woken to push data. Part-of: <!881>
-
- 27 Aug, 2021 1 commit
-
-
If dispose() is called more than once, we may double unref the list of GstContext's. Part-of: <!876>
-
- 24 Aug, 2021 1 commit
-
-
When the probe returns GST_PAD_PROBE_REMOVE and gets called concurrently from the streaming thread while we're in the callback here, the hook has already been destroyed by the time we've reacquired the object lock. Consequently, cleanup_hook gets passed an invalid pointer. Keep another reference to the hook alive to avoid this situation. Part-of: <!874>
-
- 23 Aug, 2021 1 commit
- 20 Aug, 2021 1 commit
- 18 Aug, 2021 1 commit
-
-
The last flow return field was never updated on sink pads in push mode. This fixes it and makes it consistent. Part-of: <!870>
-
- 11 Aug, 2021 1 commit
-
-
Tim-Philipp Müller authored
We shouldn't fail to load plugins just because we don't recognise the license string. It's not our job to validate licenses, and the license list is outdated and ambiguous anyway. Part-of: <!865>
-
- 22 Jul, 2021 3 commits
-
-
120 bytes in 5 blocks are definitely lost in loss record 7,615 of 9,510 at 0x484486F: malloc (vg_replace_malloc.c:380) by 0x58A2938: g_malloc (gmem.c:106) by 0x58BA1F4: g_slice_alloc (gslice.c:1069) by 0x588F059: g_list_prepend (glist.c:335) by 0x5B9C5C0: select_best_master_clock (gstptpclock.c:756) by 0x5B9CA8E: cleanup_cb (gstptpclock.c:1930) by 0x589AD20: g_timeout_dispatch (gmain.c:4889) by 0x589A4CE: UnknownInlinedFun (gmain.c:3337) by 0x589A4CE: g_main_context_dispatch (gmain.c:4055) by 0x58EE4E7: g_main_context_iterate.constprop.0 (gmain.c:4131) by 0x5899A92: g_main_loop_run (gmain.c:4329) by 0x5B9BA4C: ptp_helper_main (gstptpclock.c:1980) by 0x58C8C31: g_thread_proxy (gthread.c:826) 576 bytes in 24 blocks are definitely lost in loss record 8,782 of 9,510 at 0x484486F: malloc (vg_replace_malloc.c:380) by 0x58A2938: g_malloc (gmem.c:106) by 0x58BA1F4: g_slice_alloc (gslice.c:1069) by 0x588F059: g_list_prepend (glist.c:335) by 0x5B9C5C0: select_best_master_clock (gstptpclock.c:756) by 0x5B9EFA0: handle_announce_message (gstptpclock.c:934) by 0x5B9EFA0: handle_ptp_message (gstptpclock.c:1765) by 0x5B9EFA0: have_stdin_data_cb (gstptpclock.c:1851) by 0x589A4CE: UnknownInlinedFun (gmain.c:3337) by 0x589A4CE: g_main_context_dispatch (gmain.c:4055) by 0x58EE4E7: g_main_context_iterate.constprop.0 (gmain.c:4131) by 0x5899A92: g_main_loop_run (gmain.c:4329) by 0x5B9BA4C: ptp_helper_main (gstptpclock.c:1980) by 0x58C8C31: g_thread_proxy (gthread.c:826) by 0x5DA4298: start_thread (pthread_create.c:481) Part-of: <!857>
-
This is being logged for each buffer, so it should not use INFO. Part-of: <!856>
- 08 Jul, 2021 1 commit
-
-
Fix "has no handler with id" output criticals when the : multilink operator is used. These were caused by disconnecting a signal handler multiple times. Part-of: <!850>
-
- 24 Jun, 2021 1 commit
-
-
Part-of: <!844>
-
- 11 Jun, 2021 1 commit
-
-
This is required because the query could be intercepted and the application could send any other requests to the element from this thread. Part-of: <!834>
-
- 14 May, 2021 5 commits
-
-
When concat adjusts the base of the segments it forwards downstream, it needs to also adjust the running time offsets, as GstPad does when an offset is set by the application on a pad. Part-of: <!823>
-
concat->current_start_offset needs the lock taken for safe access, as it can be accessed from outside of the streaming thread, eg in release_pad. An early break is also added for an error case. Part-of: <!822>
-
When switching between read/write a fseek() or fflush() is required. Part-of: <!821>
-
On Windows, the file handles must be closed before you can delete a file. Also, it would cause an error if you try to close an already closed handle. Part-of: <!821>
-
Part-of: <!821>
-
- 06 May, 2021 1 commit
-
-
The pads can be NULL when we're racing with pad removal, e.g. when the pads get removed between `gst_pad_iterate_internal_links` acquiring the parent element and `gst_multi_queue_iterate_internal_links` locking the multiqueue. Part-of: <!811>
-
- 20 Apr, 2021 1 commit
-
-
Protect clearing probes against concurrent modification which might happen due to dispose does NOT guarantee that the object is not used anymore, as it could be referenced again and so being continued used. So, as in the rest of places where probes hook list is used, on dispose it should be accessed holding the mutex "GST_OBJECT_LOCK (pad);" as GHookList is not thread-safe. Part-of: <!800>
-