summaryrefslogtreecommitdiff
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* decklink: Initialize capture_time to NONE so it can be used if no video ↵Sebastian Dröge2016-04-081-1/+1
| | | | | | frame is provided but audio is CID 1358390
* decklinkaudiosrc: Don't accept packets without timestamps after a discontSebastian Dröge2016-04-061-1/+10
| | | | | | | | | We have no idea which timestamps they are supposed to have so the only thing we can do at this point is to drop them. Packets without timestamps happen if audio was captured but no corresponding video, which shouldn't happen under normal circumstances. https://bugzilla.gnome.org/show_bug.cgi?id=747633
* decklinkaudiosrc: Don't crash when receiving video frames but no audioSebastian Dröge2016-04-063-7/+16
| | | | | | And mark these events as disconts to reset time tracking in the audio source. https://bugzilla.gnome.org/show_bug.cgi?id=747633
* decklinkvideosrc: don't crash if we get NULL video frames in the callbackTim-Philipp Müller2016-04-061-1/+6
| | | | | | | For some reason we seem to sometimes get NULL video_frames in the ::VideoInputFrameArrived() callback, observed on Intensity Pro cards. https://bugzilla.gnome.org/show_bug.cgi?id=747633
* directsoundsrc: add missing -lole32Kouhei Sutou2016-04-061-1/+1
| | | | | | | | | | CLSIDFromString() requires ole32.dll. See https://msdn.microsoft.com/en-us/library/windows/desktop/ms680589%28v=vs.85%29.aspx CLSIDFromString() is introduced at f9464ce3549c2b3948a582464631ba4f8dd0d5e7 . https://bugzilla.gnome.org/show_bug.cgi?id=764523
* dvbbasebin: unref pat table after usageThiago Santos2016-04-061-0/+1
| | | | | Remember to unref the GPtrArray of the PAT table after use
* dvbbasebin: plug some leaksThiago Santos2016-04-061-0/+5
| | | | Plug various leaks in dvbbasebin.
* fbdevsink: fix bytes per pixel calculationPeter Seiderer2016-04-061-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
* decklinkaudiosrc: Fix discont trackingJan Schmidt2016-04-061-1/+2
| | | | | Don't reset the marker that's tracking disconts until either the discont disappears or we resync.
* shmsink: fix possible deadlock in _render()/ _allocator_free()Matt Crane2016-01-161-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
* directsoundsrc: Check return values of DirectSound functions in read loopThomas Roos2015-12-111-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
* d3dvideosink: Don't try to recreate swapchain while the window is minimizedSebastian Dröge2015-12-011-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
* vtenc: Set profile_level to NULL after releaseHeinrich Fink2015-11-161-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
* Revert "vtenc: free input buffer ASAP"Alessandro Decina2015-11-031-4/+0
| | | | | | | | This reverts commit 6101fc57b8afac4f4e4aa742892f0d9c99d38a8c. GstVideoEncoder assumes that the input buffer is available until _finish_frame. https://bugzilla.gnome.org/show_bug.cgi?id=756951
* amcvideodec: Properly forward the return value of gst_video_decoder_negotiate()Sebastian Dröge2015-10-201-2/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=756578
* amcvideodec: Implement support for ↵Sebastian Dröge2015-10-202-0/+9
| | | | | | COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView for decoding https://bugzilla.gnome.org/show_bug.cgi?id=756578
* dshowvideosink: Fix 64bit compatibility issueplamot2015-10-201-9/+5
| | | | | | | SetWindowLong works only for 32 bit systems, thus windows events (move/resize) where not interpreted on 64 bit systems https://bugzilla.gnome.org/show_bug.cgi?id=756617
* applemedia: dist missing header filesAleix Conchillo Flaqué2015-09-301-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=755852
* decklink: Add a clock epoch that is used as offset whenever restarting the clockSebastian Dröge2015-09-244-2/+10
| | | | | | | Otherwise we're going to return times starting at 0 again after shutting down an element for a specific input/output and then using it again later. https://bugzilla.gnome.org/show_bug.cgi?id=755426
* decklink: Disable inputs/outputs in PAUSED->READY to allow going to PAUSED ↵Sebastian Dröge2015-09-243-21/+72
| | | | | | again from there https://bugzilla.gnome.org/show_bug.cgi?id=755426
* vtdec: disable the texture cache on OSXMatthew Waters2015-09-181-0/+5
| | | | | | | This a workaround until the incompatibility with CVOpenGLTextureCache and opengl3 contexts is fixed. https://bugzilla.gnome.org/show_bug.cgi?id=754786
* vtdec: gst-indent fileMatthew Waters2015-09-181-3/+6
|
* applemedia/vtdec: fix negotiation errors when resizing glimagesinkMatthew Waters2015-09-171-16/+16
| | | | | | | | GstVideoDecoder has its own logic for detecting when to reconfigure which ultimately calls decide_allocation and results in a new texture cache that has not been configured from our reconfigure check. https://bugzilla.gnome.org/show_bug.cgi?id=755156
* avdtputil: fix GError memory leak during failuresVineeth T M2015-09-171-4/+7
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=755142
* vtdec: Use R/RG textures for NV12 when the context provides themJan Schmidt2015-09-121-5/+15
| | | | | | | | Fixes playback to GL memory on iOS, where the colours are messed up by passing Luminance/LuminanceAlpha textures where color convert expects R/RG textures. https://bugzilla.gnome.org/show_bug.cgi?id=754504
* vtdec: Prefer GL output caps.Jan Schmidt2015-09-121-23/+33
| | | | | Prefer GL caps by putting them first in the pad template and intersecting using GST_CAPS_INTERSECT_FIRST.
* decklinkvideosink: less-than-zero comparison of an unsigned value is never trueSebastian Dröge2015-09-101-2/+3
| | | | | | Use the correct type, GstClockTimeDiff, instead. CID 1323742
* decklinkvideosink: Handle pipelines where the running time does not start ↵Sebastian Dröge2015-09-091-4/+26
| | | | | | | | | | | | | around 0 properly We were converting all times to our internal running times, that is the time the sink itself spent in PLAYING already. But forgot to do that for the running time calculated from the buffer timestamps. As such, all buffers were scheduled much later if the pipeline's running time did not start at 0. This happens for example if a base time is explicitly set on the pipeline. https://bugzilla.gnome.org/show_bug.cgi?id=754528
* decklinkvideosink: Consider pipeline latency, render delay and ts offset ↵Sebastian Dröge2015-09-091-0/+23
| | | | | | | | when scheduling frames Without this, we will schedule all frames too late in live pipelines. https://bugzilla.gnome.org/show_bug.cgi?id=754666
* directsoundsrc: fix build error for 64bit Windows build by MinGWKouhei Sutou2015-09-091-1/+1
| | | | | | | | | | | | | | | Casting to UINT from HMIXER generates the following warning with 64bit Windows target MinGW: gstdirectsoundsrc.c: In function 'gst_directsound_src_mixer_find': gstdirectsoundsrc.c:733:30: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] mmres = mixerGetDevCaps ((UINT) dsoundsrc->mixer, ^ cc1: all warnings being treated as errors We can use portable GPOINTER_TO_UINT() macro for this propose. https://bugzilla.gnome.org/show_bug.cgi?id=754756
* Fix file permissions of some filesTim-Philipp Müller2015-08-287-0/+0
|
* configure.ac: fix build when the uvch264 plugin is not selectedArnaud Vrac2015-08-191-3/+1
| | | | | | | | | | Instead of checking for the gstreamer-video-1.0 package is installed, just assume it is since we already check for the -base dependency. With this replace the GST_VIDEO_* variables in makefiles and directly link with libgstvideo. https://bugzilla.gnome.org/show_bug.cgi?id=753820
* winscreencap: Properly timestamp buffers with the current clock running time ↵Sebastian Dröge2015-08-034-108/+182
| | | | | | | | instead of doing magic Also implement framerate handling correctly by borrowing the code from ximagesrc. GstBaseSrc::get_times() can't be used for that, we have to implement proper waiting ourselves.
* applemedia/avsample: Fix racy cleanup of CA layerHeinrich Fink2015-07-311-2/+3
| | | | | | | | | | | | The block that is dispatched async to the main thread assumed the wrapping GstAvSampleVideoSink to be alive. However, at the time of the block execution the GstObject instance that is deferenced to access the CA layer might already be freed, which caused occasional crashes. Instead, we now only pass the CoreAnimation layer that needs to be released to the block. We use __block to make sure the block is not increasing the refcount of the CA layer again on its own. https://bugzilla.gnome.org/show_bug.cgi?id=753081
* amcvideoenc: Always set i-frame-interval settingSebastian Dröge2015-07-291-3/+2
| | | | Most encoders fail to initialize if we don't set it at all.
* bluez: Add built sources to CLEANFILESNicolas Dufresne2015-07-251-0/+2
|
* vtdec: handle non-consecutive GstBuffer input without copyingIlya Konstantinov2015-07-131-27/+79
| | | | | | | | | | | | | | | | | | | | | | | | CMBlockBuffer offers a model similar to GstBuffer, as it can consist of multiple non-consecutive memory blocks. Prior to this change, what we were doing was: 1) Incorrect: CMBlockBufferCreateWithMemoryBlock does not copy the data, but we gst_buffer_unmap'd right away. 2) Inefficient: If the GstBuffer consisted of non-contiguous memory blocks, gst_buffer_map resulted in malloc / memcpy. With this change, we construct a CMBlockBuffer out of individual mapped GstMemory objects. CMBlockBuffer is made to retain the GstMemory objects (through the use of CMBlockBufferCustomBlockSource), so the original GstBuffer can be unref'd. https://bugzilla.gnome.org/show_bug.cgi?id=751241
* applemedia/avsample: fix unconditional use of OSX 10.10 APIMatthew Waters2015-07-131-0/+2
| | | | | | We can just not use the error/status properties https://bugzilla.gnome.org/show_bug.cgi?id=746631
* bluez: Fix make dist while bluez >= 5 is not availableRico Tzschichholz2015-07-101-3/+4
|
* bluez: Include new file in dist'ed filesEdward Hervey2015-07-091-0/+2
| | | | Fixes make distcheck and tarball generation
* bluez: remove unnecessary gotoLuis de Bethencourt2015-07-081-10/+4
| | | | | | | | All goto fail happen before ret is set. ret must be NULL, and the only thing the fail statement block does is return NULL. Replacing the jumps to do this return directly. CID #1311329
* androidmedia: Add support for H265/HEVCSebastian Dröge2015-07-085-3/+215
|
* vtdec: fix refcount error in error handlingIlya Konstantinov2015-07-071-3/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=751641
* bluez: refactor to use glib and add connection state trackingNick Stoughton2015-07-036-196/+151
|
* amc: fix check whether we managed to acquire a bufferVineeth TM2015-07-021-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=751821
* androidmedia: Call initialize_classes() also when we got the Java VM from ↵Sebastian Dröge2015-06-291-1/+1
| | | | | | the app https://bugzilla.gnome.org/show_bug.cgi?id=751664
* docs: decodebin2 -> decodebinLuis de Bethencourt2015-06-251-1/+1
|
* applemedia: enable sharing of CMBlockBuffer dataIlya Konstantinov2015-06-251-2/+3
| | | | | | | Instead of wrapping with GST_MEMORY_FLAG_NO_SHARE, we make the GstMemory object retain the underlying CMBlockBuffer. https://bugzilla.gnome.org/show_bug.cgi?id=751072
* applemedia: CMBlockBuffer can be non-contiguousIlya Konstantinov2015-06-251-10/+15
| | | | | | | | CMBlockBufferGetDataLength would return the entire data length, while size of individual blocks can be smaller. Iterate over the block buffer and add the individual (possibly non-contiguous) memory blocks. https://bugzilla.gnome.org/show_bug.cgi?id=751071
* avfvideosrc: add frame rate range to capsIlya Konstantinov2015-06-221-9/+29
| | | | | | | | When AVFoundation indicates a supported frame rate range, add it to the caps. This is important for devices such as the iPhone 6, which indicate a single AVFrameRateRange of 2fps - 60fps. https://bugzilla.gnome.org/show_bug.cgi?id=751048