Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | mpegtspacketizer: handle early PTS conversion when a group has been found | Aurélien Zanelli | 2016-04-06 | 1 | -2/+6 |
| | | | | | | | | | | | | | | | | In some cases, the PTS might be smaller than the first observed PCR value which causes element to apply wraparound leading to bogus timestamp. To solve this, we only apply it if the PTS-PCR difference is greater that 1 second to be sure that it's a real wraparound. Moreover, using unsigned 32 bits values to handle wrapover could end up with bogus value, so it use pts value to handle it. Also, convert pcr time to gst time before comparing it to pts. Since refpcr is expressed in PCR time base while pts is expressed in GStreamer time. https://bugzilla.gnome.org/show_bug.cgi?id=743259 | ||||
* | dashdemux: correctly handle an HTTP-XSDATE that is exactly the size of the ↵ | Florin Apostol | 2016-04-06 | 1 | -6/+8 |
| | | | | | | | | | | | | | | | | date string The code in the gst_dash_demux_parse_http_xsdate() was trying to handle the case where the string is not null terminated by resizing the buffer and appending a zero byte. This does not work if the buffer is exactly the length of the string because the gst_buffer_resize() function does not re-allocate the buffer, it just changes its size. If a buffer is passed to gst_dash_demux_parse_http_xsdate() that is exactly the length of the string, the function fails with an assert failure in gst_buffer_resize(). https://bugzilla.gnome.org/show_bug.cgi?id=762148 | ||||
* | fbdevsink: fix bytes per pixel calculation | Peter Seiderer | 2016-04-06 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simple pipeline $ gst-launch-1.0 videotestsrc ! fbdevsink crashes with SIGSEGV in case the frambuffer xres is smaller than the virtual xres resolution, e.g.: $ fbset mode "800x480-0" # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz geometry 800 480 1920 1200 16 timings 0 0 0 0 0 0 0 accel true rgba 5/11,6/5,5/0,0/0 endmode Debug: $ gdb gst-launch-1.0 (gdb) run videotestsrc ! fbdevsink (gdb) where #0 0xb6bd2d24 in __memcpy_neon () at ../sysdeps/arm/armv7/multiarch/memcpy_impl.S:591 #1 0xb69b04e8 in gst_fbdevsink_show_frame (videosink=0x10a3378, buf=0xb5c08838) at gstfbdevsink.c:269 #2 0xb69e88c4 in gst_base_sink_do_preroll (sink=sink@entry=0x10a3378, obj=0xb5c08838, obj@entry=0xa0) at gstbasesink.c:2281 #3 0xb69e92bc in gst_base_sink_do_sync (basesink=basesink@entry=0x10a3378, obj=0xa0, obj@entry=0xb5c08838, late=0x0, late@entry=0xb6548ba0, step_end=0x140, step_end@entry=0xb6548ba4) at gstbasesink.c:2500 #4 0xb69ea67c in gst_base_sink_chain_unlocked ( basesink=basesink@entry=0x10a3378, obj=0x0, obj@entry=0xb5c08838, is_list=is_list@entry=0, pad=<optimized out>) at gstbasesink.c:3486 #5 0xb69ec1c0 in gst_base_sink_chain_main (basesink=0x10a3378, pad=<optimized out>, obj=0xb5c08838, is_list=0) at gstbasesink.c:3647 #6 0xb6eb5b10 in gst_pad_chain_data_unchecked (pad=0x10a6170, type=<optimized out>, data=0xb5c08838) at gstpad.c:4086 #7 0xb6eb7a34 in gst_pad_push_data (pad=pad@entry=0x10a6020, type=type@entry=4112, data=0xb5c08838) at gstpad.c:4338 #8 0xb6ebf344 in gst_pad_push (pad=pad@entry=0x10a6020, buffer=<optimized out>) at gstpad.c:4454 #9 0xb69f22f0 in gst_base_src_loop (pad=0x10a6020) at gstbasesrc.c:2845 #10 0xb6eeddfc in gst_task_func (task=0x10a8828) at gsttask.c:331 #11 0xb6d485a0 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpoQuit (gdb) frame 1 #1 0xb69b04e8 in gst_fbdevsink_show_frame (videosink=0x10a3378, buf=0xb5c08838) at gstfbdevsink.c:269 269 gstfbdevsink.c: No such file or directory. (gdb) p fbdevsink $1 = (GstFBDEVSink *) 0x10a3378 (gdb) p *fbdevsink $2 = {videosink = {element = {element = {object = {object = { g_type_instance = {g_class = 0x10a2d60}, ref_count = 3, qdata = 0x0}, lock = {p = 0x0, i = {0, 0}}, name = 0x10a2f30 "fbdevsink0", parent = 0x10a70a0, flags = 32, control_bindings = 0x0, control_rate = 100000000, last_sync = 18446744073709551615, _gst_reserved = 0x0}, state_lock = {p = 0x109f9a8, i = {0, 0}}, state_cond = {p = 0x0, i = { 3, 0}}, state_cookie = 2, target_state = GST_STATE_PAUSED, current_state = GST_STATE_READY, next_state = GST_STATE_PAUSED, pending_state = GST_STATE_PAUSED, last_return = GST_STATE_CHANGE_ASYNC, bus = 0x108bcb8, clock = 0x0, base_time = 0, start_time = 0, numpads = 1, pads = 0x109cc20, numsrcpads = 0, srcpads = 0x0, numsinkpads = 1, sinkpads = 0x109cc30, pads_cookie = 1, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}, sinkpad = 0x10a6170, pad_mode = GST_PAD_MODE_PUSH, offset = 0, can_activate_pull = 0, can_activate_push = 1, preroll_lock = {p = 0x1, i = {1, 0}}, preroll_cond = {p = 0x0, i = {0, 0}}, eos = 0, need_preroll = 1, have_preroll = 0, playing_async = 1, have_newsegment = 1, segment = {flags = GST_SEGMENT_FLAG_NONE, rate = 1, applied_rate = 1, format = GST_FORMAT_TIME, base = 0, offset = 0, start = 0, stop = 18446744073709551615, time = 0, position = 33333333, duration = 18446744073709551615, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}, clock_id = 0x0, sync = 1, flushing = 0, running = 0, max_lateness = 20000000, priv = 0x10a3188, _gst_reserved = { 0x0 <repeats 20 times>}}, width = 0, height = 0, priv = 0x10a3180, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}, fixinfo = { id = '\000' <repeats 15 times>, smem_start = 1078984704, smem_len = 4608000, type = 0, type_aux = 0, visual = 2, xpanstep = 1, ypanstep = 1, ywrapstep = 0, line_length = 3840, mmio_start = 0, mmio_len = 0, accel = 0, capabilities = 0, reserved = {0, 0}}, varinfo = { xres = 800, yres = 480, xres_virtual = 1920, yres_virtual = 1200, xoffset = 0, yoffset = 0, bits_per_pixel = 16, grayscale = 0, red = { offset = 11, length = 5, msb_right = 0}, green = {offset = 5, length = 6, msb_right = 0}, blue = {offset = 0, length = 5, msb_right = 0}, transp = {offset = 0, length = 0, msb_right = 0}, nonstd = 0, activate = 0, height = 4294967295, width = 4294967295, accel_flags = 1, pixclock = 0, left_margin = 0, right_margin = 0, upper_margin = 0, lower_margin = 0, hsync_len = 0, vsync_len = 0, sync = 0, vmode = 0, rotate = 0, colorspace = 0, reserved = {0, 0, 0, 0}}, fd = 5, framebuffer = 0xb654a000 <error: Cannot access memory at address 0xb654a000>, device = 0x10a38d8 "/dev/fb0", width = 320, height = 240, cx = 240, cy = 120, linelen = 1280, lines = 240, bytespp = 4, fps_n = 30, fps_d = 1} (gdb) p map $3 = {memory = 0xb5d24008, flags = GST_MAP_READ, data = 0xb5d24058 '\377' <repeats 90 times>, "\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\377\a\377\a\377\a\377\a\377\a\377\a\377\a\377\a\377\a"..., size = 153600, maxsize = 153603, user_data = {0x0, 0xb69e3ba4 <gst_base_sink_set_last_buffer_unlocked+92>, 0x10a3378, 0x0}, _gst_reserved = {0x1, 0x10a3378, 0xb6f50dd8 <_gst_debug_min>, 0xb5c08838}} (gdb) p i $4 = 121 Fix this by changing the fbdevsink->bytespp calculation using the frame buffer xres_virtual size instead of xres. https://bugzilla.gnome.org/show_bug.cgi?id=762482 | ||||
* | mpeg4parser: prevent assertion when scanning for sync code | Thiago Santos | 2016-04-06 | 1 | -2/+5 |
| | | | | | Only search if there is indeed enough data to be searched otherwise an assertion is raised | ||||
* | curlbasesink: don't send empty buffers | David Fernandez | 2016-04-06 | 1 | -2/+7 |
| | | | | | | Fixes problem in curlhttpsink when qtmux uses faststart. https://bugzilla.gnome.org/show_bug.cgi?id=762013 | ||||
* | mssdemux: do not assert on fragment reloads for non-live | Thiago Santos | 2016-04-06 | 1 | -2/+0 |
| | | | | | It can be used as a resource to verify if the server has updated something in the Manifest when downloads are failing | ||||
* | decklinkaudiosrc: Fix discont tracking | Jan Schmidt | 2016-04-06 | 1 | -1/+2 |
| | | | | | Don't reset the marker that's tracking disconts until either the discont disappears or we resync. | ||||
* | opusdec: fix wrong buffer being checked for missing data | Vincent Penquerc'h | 2016-04-06 | 1 | -2/+2 |
| | | | | | | | This caused a decoding error if the resulting (wrong) buffer size was passed to the Opus decoding API. https://bugzilla.gnome.org/show_bug.cgi?id=758158 | ||||
* | adaptivedemux: fix segment update on seeks | Thiago Santos | 2016-04-06 | 1 | -3/+3 |
| | | | | | Fixes typo on reverse rate check and also only update the position when the start/stop was actually changed. | ||||
* | adaptivedemux: stop reverse playback when we reach the limit | Thiago Santos | 2016-04-06 | 1 | -1/+1 |
| | | | | | | | | Avoids downloading and pushing a full segment just to get 1 nanosecond of data. This happens frequently when seeking is done with flags that adjust to boundaries or when the start is aligned with segment starts. The later is common when segment durations is a multiple of a second. | ||||
* | adaptivedemux: correctly track segment.position in reverse playback | Thiago Santos | 2016-04-06 | 1 | -2/+6 |
| | | | | | | For reverse, set position to segment.stop when starting and also don't set the position to fragment end timestamp when it finishes, just leave it at the fragment start. | ||||
* | mpeg2enc: Provide format as a string instead of a char to gst_structure_new | Vivia Nikolaidou | 2016-03-04 | 1 | -1/+1 |
| | | | | The format was provided as 'I420' instead of "I420", causing a crash. | ||||
* | adaptivedemux: fix race on shutdown that could result in deadlocks | Tim-Philipp Müller | 2016-02-20 | 2 | -4/+15 |
| | | | | | | | | Minimal fix for one particular deadlock, adaptivedemux has seen a general re-work of its locking in git master, but that would be too intrusive to backport into the stable branch. We need to use a separate variable to signal cancellation here. | ||||
* | ladspa: Fix some debugs | Thibault Saunier | 2016-02-17 | 1 | -4/+3 |
| | |||||
* | gtk(gl)sink: remove the signal handlers on finalize | Matthew Waters | 2016-02-16 | 2 | -3/+12 |
| | | | | | | | | | | | It's possible that the sink element will be freed before the widget is destroyed. When the widget was eventually destroyed, it was attempting to access member variables of the freed sink struct which resulted in undefined behaviour. Fix by disconnecting our signal on finalize. https://bugzilla.gnome.org/show_bug.cgi?id=762098 | ||||
* | glvideomixer: fix checker vbo leak | Wang Xin-yu (王昕宇) | 2016-02-01 | 1 | -0/+5 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=760925 | ||||
* | glprototypes: fix parameter type of glGenBuffers | Wang Xin-yu (王昕宇) | 2016-01-29 | 1 | -1/+1 |
| | | | | | | The number of buffers should be GLsizei instead of GLuint. https://bugzilla.gnome.org/show_bug.cgi?id=761272 | ||||
* | gleffects: fix gleffects fisheye shader compile error | Haihua Hu | 2016-01-29 | 1 | -1/+1 |
| | | | | | | | | On some embedded systems, sqrt() is not supported in the shader, use the actual value of sqrt(2) instead. Signed-off-by: Haihua Hu <b55597@freescale.com> Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=761271 | ||||
* | h265parse: Fix buffer leak when sps is not present | Vineeth TM | 2016-01-25 | 1 | -3/+4 |
| | | | | | | | When sps data is NULL, the buffer allocated and mapped is not being freed. In this scenario there is no need to allocate the buffer as we are supposed to return NULL. https://bugzilla.gnome.org/show_bug.cgi?id=761070 | ||||
* | h265parse: Fix buffer memory leak. | Vineeth TM | 2016-01-25 | 1 | -1/+1 |
| | | | | | | | While setting caps, codec_data buffer is mapped, but not being unmapped leading to memory leaks. https://bugzilla.gnome.org/show_bug.cgi?id=761070 | ||||
* | Release 1.6.31.6.3 | Sebastian Dröge | 2016-01-20 | 82 | -145/+343 |
| | |||||
* | Update .po files | Sebastian Dröge | 2016-01-20 | 40 | -40/+40 |
| | |||||
* | shmsink: fix possible deadlock in _render()/ _allocator_free() | Matt Crane | 2016-01-16 | 1 | -1/+1 |
| | | | | | | | | Drop object lock before unrefing memory, otherwise the object lock might be taken again from the allocator and then things deadlock. https://bugzilla.gnome.org/show_bug.cgi?id=760551 | ||||
* | sbc: sbcdec: Fix frame length calculation | Tim Sheridan | 2016-01-16 | 1 | -4/+4 |
| | | | | | | | | | SBC frame length calculation wasn't being rounded up to the nearest byte (as specified in the A2DP 1.0 specification, section 12.9). This could cause 'stereo' and 'joint stereo' mode SBC streams to have incorrectly calculated frame lengths. https://bugzilla.gnome.org/show_bug.cgi?id=742446 | ||||
* | qml: Mark material dirty when texture buffer is updated | Sergey Borovkov | 2016-01-15 | 1 | -0/+1 |
| | | | | | | Qt might not redraw the scene otherwise. https://bugzilla.gnome.org/show_bug.cgi?id=758286 | ||||
* | mpegtsmux: fix reserve bits so they are 1's | Bob Holcomb | 2016-01-11 | 1 | -3/+3 |
| | | | | | | | | The MPEG standard (ISO-13880-1) says the reserve bits need to be set to one (2.1.64). This is causing transport streams to fail validation on some systems. https://bugzilla.gnome.org/show_bug.cgi?id=760127 | ||||
* | mxftypes: Don't store pointers in stack allocated guints | Sebastian Dröge | 2016-01-11 | 1 | -4/+3 |
| | | | | | | | | | This works usually in this place, unless the compiler optimizes things in interesting ways in which case it causes stack corruption and crashes later. The compiler in question here is clang with -O1, which seems to pack the stack a bit more and causes writing to the guint as pointer to overwrite map.memory, which then later crashes during unmapping of the memory. | ||||
* | gl: Add \0 terminators for the Apple sync extension | Sebastian Dröge | 2015-12-28 | 1 | -2/+2 |
| | | | | Otherwise GL initialization might check for extensions forever and never finishes. | ||||
* | pcapparse: don't crash on 0-sized packets | Tim-Philipp Müller | 2015-12-23 | 1 | -1/+5 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=756573 | ||||
* | openjpegdec: Don't crash when decoding returns NULL data for any component | Sebastian Dröge | 2015-12-18 | 1 | -0/+9 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=758943 | ||||
* | Release 1.6.21.6.2 | Sebastian Dröge | 2015-12-14 | 82 | -172/+435 |
| | |||||
* | Update .po files | Sebastian Dröge | 2015-12-14 | 40 | -301/+429 |
| | |||||
* | po: Update translations | Sebastian Dröge | 2015-12-14 | 4 | -410/+280 |
| | |||||
* | gltransformation: clear to transparent | Matthew Waters | 2015-12-12 | 1 | -1/+1 |
| | | | | | Otherwise composition will result in a black frame outside the transformed video. | ||||
* | glproto: include function definitions for GL_APPLE_sync | Matthew Waters | 2015-12-12 | 1 | -3/+3 |
| | | | | | Provides a performance improvement on iOS where we were falling back to glFinish on settting sync points. | ||||
* | directsoundsrc: Check return values of DirectSound functions in read loop | Thomas Roos | 2015-12-11 | 1 | -1/+13 |
| | | | | | | | | Otherwise we might end up in an infinite loop because of errors. Also take the element's mutex in unprepare(). https://bugzilla.gnome.org/show_bug.cgi?id=738292 | ||||
* | openjpegenc: All frames in JPEG2000 are keyframes, mark them as such | Sebastian Dröge | 2015-12-08 | 1 | -0/+1 |
| | |||||
* | pcapparse: Forward FLUSH_STOP events downstream too | Paolo Pettinato | 2015-12-07 | 1 | -1/+2 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=758913 | ||||
* | d3dvideosink: Don't try to recreate swapchain while the window is minimized | Sebastian Dröge | 2015-12-01 | 1 | -1/+19 |
| | | | | | | | It will fail and cause the sink to crash. Instead wait until the window is visible again before checking if the swapchain really has to be recreated. https://bugzilla.gnome.org/show_bug.cgi?id=741608 | ||||
* | qml: reuse existing GstQSGTexture | Roman Nowicki | 2015-11-20 | 1 | -4/+2 |
| | | | | | | Fixes a memory leak leaking the texture objects. https://bugzilla.gnome.org/show_bug.cgi?id=758286 | ||||
* | qml: activate the wrapped context when binding | Matthew Waters | 2015-11-20 | 1 | -4/+9 |
| | | | | | | Mitigates the following critical gst_gl_context_thread_add: assertion 'context->priv->active_thread == g_thread_self ()' failed | ||||
* | qml: proper initialization if scene is already initialized | Roman Nowicki | 2015-11-20 | 1 | -1/+5 |
| | | | | | | | | The scene graph can be initialized when the we receive window handle change notification and so we will not receive a scenegraph initialization notification. Initialize ourself in this case. https://bugzilla.gnome.org/show_bug.cgi?id=758337 | ||||
* | glimagesink: Fix structure memory leak | Vineeth TM | 2015-11-17 | 1 | -1/+3 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=758205 | ||||
* | tsdemux: fix pending buffers leak when flushing | Nicolas Huet | 2015-11-16 | 1 | -0/+14 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=757895 | ||||
* | tsdemux: Fix pad leak when the pad is never exposed | Etienne Peron | 2015-11-16 | 1 | -0/+2 |
| | | | | | | | | If tsdemux never receives data for a stream, the corresponding pad will never be added and stream->active will remain FALSE. When the stream is removed, the pad will not be unreffed and will be leaked. https://bugzilla.gnome.org/show_bug.cgi?id=757873 | ||||
* | vtenc: Set profile_level to NULL after release | Heinrich Fink | 2015-11-16 | 1 | -0/+1 |
| | | | | | | | | Otherwise, gst_vtenc_negotiate_profile_and_level will double-release as it checks for profile_level != NULL. This caused crashes when the vtenc instance is stopped and then restarted. https://bugzilla.gnome.org/show_bug.cgi?id=757935 | ||||
* | tests:glcolorconvert: Fix caps memory leak | Vineeth TM | 2015-11-11 | 1 | -0/+1 |
| | | | | | | Output caps being got from video info is not getting freed https://bugzilla.gnome.org/show_bug.cgi?id=757929 | ||||
* | gtk: add the overlaycomposition feature to the template caps | Matthew Waters | 2015-11-10 | 1 | -2/+5 |
| | | | | | | | | There is a possibility that the _get_caps impl will be called with the feature in the filter caps which when interecting with the template, will return EMPTY and therefore fail negotiation. https://bugzilla.gnome.org/show_bug.cgi?id=757854 | ||||
* | dvbsuboverlay: Don't send flush events | Edward Hervey | 2015-11-07 | 1 | -30/+3 |
| | | | | | | It is up to the element handling the seek to send flush events downstream, otherwise we end up with a situation where upstream would get unexpected GST_FLOW_FLUSHING | ||||
* | assrender: don't send flush events on seeks | Tim-Philipp Müller | 2015-11-07 | 1 | -45/+7 |
| | | | | | | | | | | It's for the upstream element driving the pipeline to handle seeks and send flush events or not, filters should not interfere here, otherwise downstream pads could be flushing before upstream pads are flushing, which can result in GST_FLOW_ERROR being sent instead of GST_FLOW_FLUSHING when trying to forward sticky events at just the wrong moment. |