summaryrefslogtreecommitdiff
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* amc: Correctly handle NULL input buffersSebastian Dröge2016-03-114-16/+50
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=763401
* amcvideodec: getOutputBuffers() returns a NULL array when a surface was ↵Sebastian Dröge2016-03-112-3/+14
| | | | | | | | configured So don't error out if it does. https://bugzilla.gnome.org/show_bug.cgi?id=763401
* androidmedia: Remove unused fileJustin Kim2016-03-051-68/+0
| | | | | | ahcsrc is registered by gstamc.c https://bugzilla.gnome.org/show_bug.cgi?id=763098
* amc: properly deinit when ahcsrc register failsMartin Kelly2016-03-041-6/+11
| | | | | | | | | | In the androidmedia plugin_init, we initialize various resources on the Android device. If anything fails during this series of initializations, we need to deinitialize any initializations that already occurred. However, we don't do so if we fail to register the ahcsrc element. Fix this. https://bugzilla.gnome.org/show_bug.cgi?id=763065
* ahc: correct error messageMartin Kelly2016-03-041-1/+2
| | | | | | | | The error message is specific to only one of the failure cases and is misleading in the others. Correct it to be more generic and cover all the failure cases. https://bugzilla.gnome.org/show_bug.cgi?id=763065
* ahc: remove unneeded #include <stdio.h>Martin Kelly2016-03-041-1/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=763065
* ahc: typo fixMartin Kelly2016-03-041-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=763065
* amcvideodec: When outputting on a surface, accept all color formatsSebastian Dröge2016-02-281-4/+24
| | | | | | We don't have to understand them, we handle them as a GL texture. https://bugzilla.gnome.org/show_bug.cgi?id=762792
* vtdec: Negotiate the decoder in set_format() alreadySebastian Dröge2016-02-251-1/+1
| | | | | | | | | | | Don't wait until later, we want to know here if the codec can be opened or not for the requested format. This was removed (accidentially?) by 119e09eac315f79ac2cf45b4441ad1d932130614 Without this decodebin has no way to switch to a different decoder if this one does not work. https://bugzilla.gnome.org/show_bug.cgi?id=762613
* avfvideosrc: Frame durations as CTime to the API, not doubleJoe Gorse2016-02-251-4/+2
| | | | | | Newer iOS seems to automatically convert, older iOS/OSX just crashes. https://bugzilla.gnome.org/show_bug.cgi?id=762575
* nvenc: release the frames and list when searching for an output bufferMatthew Waters2016-02-251-4/+14
| | | | | | Fixes a massive leak in: videotestsrc ! nvh264enc ! fakesink
* fbdevsink: fix bytes per pixel calculationPeter Seiderer2016-02-231-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
* uvch264_src: Fix caps memory leakVineeth TM2016-02-171-2/+2
| | | | | | | v4l_caps and new_caps are being allocated new memory before freeing the old allocation. https://bugzilla.gnome.org/show_bug.cgi?id=761108
* acmenc/acmmp3dec: remove unnecessary break after returnVineeth TM2016-02-162-2/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=761109
* applemedia: videotesturecache: let CVOpenGLESTextureCache flush every 1sAlessandro Decina2016-02-101-4/+0
| | | | | | Leave kCVOpenGLESTextureCacheMaximumTextureAgeKey to the default (1s). We used to set it to 0 and flush manually, but apparently (looking at the GLES profiler) 0 means "disable the cache entirely".
* applemedia: vtdec: implement GstElement::set_contextAlessandro Decina2016-02-091-3/+18
|
* applemedia: vtdec: update copyrightAlessandro Decina2016-02-091-1/+1
|
* applemedia: avfvideosrc: implement GstElement::set_contextAlessandro Decina2016-02-091-0/+21
| | | | Needed to properly handle gst.gl.app_context(s).
* applemedia: avfvideosrc: add myself to the copyright holdersAlessandro Decina2016-02-091-0/+1
|
* glsyncmeta: separate out gpu/cpu waits.Matthew Waters2016-02-091-4/+5
| | | | | | CPU waits are more expensive and are only required if the CPU is ever going to access the data. GPU waits perform inter-context synchronisation and are cheaper as they don't require CPU intervention.
* tinyalsasink: Use glib CLAMP() instead of our own macroArun Raghavan2016-02-051-8/+3
|
* tinyalsasink: Limit period size and count to what the h/w permitsArun Raghavan2016-02-051-0/+24
|
* amcvideodec: pass the correct time value to wait_for_syncMatthew Waters2016-02-041-1/+1
| | | | | | | | When we are not waiting, we need to pass -1 to signal that we just want to check that the frame was/n't rendered. Avoids waiting for frames that will never be rendered. https://bugzilla.gnome.org/show_bug.cgi?id=761014
* amcvideodec: advance the ready counter ourselves when render=FALSEMatthew Waters2016-02-041-2/+8
| | | | | | | | | | When not rendering the video frame, e.g. when freeing an unreleased sync frame, we will not receive a frame listener callback. Reduces the amount of 'on_frame_available miss detected' messages when dropping frames. https://bugzilla.gnome.org/show_bug.cgi?id=761014
* decklinkaudiosrc: Fix discont trackingJan Schmidt2016-02-041-1/+2
| | | | | Don't reset the marker that's tracking disconts until either the discont disappears or we resync.
* Remove ancient and dead cdrom control pluginTim-Philipp Müller2016-02-039-1293/+0
| | | | | | This was never even ported to 0.10, and I don't think it's particularly useful, since it's just a control interface really. Let's remove it.
* tinyalsasink: fix tinalsa typoReynaldo H. Verdejo Pinochet2016-02-021-1/+1
|
* tinyalsasink: fix sample launch lineReynaldo H. Verdejo Pinochet2016-02-021-1/+1
|
* tinyalsasink: Use int type if we support a single rate/channel countArun Raghavan2016-02-021-7/+18
| | | | | Avoids using an int range if the field we're setting is not actually a range.
* tinyalsa: Add a new sink plugin using tinyalsaArun Raghavan2016-02-025-2/+600
| | | | | | | This uses the tinyalsa library to playback to an ALSA device. Future work can include using the mmap interface. https://bugzilla.gnome.org/show_bug.cgi?id=761230
* dvbsrc: drop unnecessary use of _stdint.hTim-Philipp Müller2016-01-301-4/+3
|
* amcvideodec: guard against not finding a valid frame in loopMatthew Waters2016-01-291-1/+1
| | | | | | Fixes sporadic crashes on finishing decoding a video. https://bugzilla.gnome.org/show_bug.cgi?id=761014
* amcvideodec: set our data pointer in java to NULL on closeMatthew Waters2016-01-293-11/+39
| | | | | | | | The frame available callback can be called after deconfiguring the amc codec. Guard against this by setting the back pointer to NULL on close() and ignoring any NULL data pointer. https://bugzilla.gnome.org/show_bug.cgi?id=761014
* applemedia: refactor GL context codeAlessandro Decina2016-01-296-138/+252
| | | | | | | Rework the GL context code. Now both avfvideosrc and vtdec can create an internal GL context for pushing textures. Both elements will still try to use/switch to a local context where available (including after RECONFIGURE events).
* applemedia: avfvideosrc: actually set the configured framerateAlessandro Decina2016-01-271-7/+15
| | | | | | Actually set the configured framerate. Before we only used to set the first matching framerate range. On iOS where the camera reports ranges [2, 60], we used to configure the camera to output anything between 2 and 60fps.
* ahc: Fail gracefully if our callback class can't be foundSebastian Dröge2016-01-221-0/+3
| | | | | | | | Instead of just ignoring that error and then calling JNI functions with NULL, which will kill the virtual machine. The error handling here needs some further improvements though, errors in more places are just ignored.
* ahc: Initialize GError pointer with NULLSebastian Dröge2016-01-221-1/+1
| | | | Otherwise there will be assertions.
* amcvideodec: Only free GstAmcBuffer if it's not NULLSebastian Dröge2016-01-221-2/+8
| | | | And also free it on GL errors.
* decklinkvideosrc: implement RGB capture supportJulien Moutte2016-01-225-23/+63
| | | | | | Combine mode and format to generate caps and support the flags from VideoChanged callback to support RGB capture. https://bugzilla.gnome.org/show_bug.cgi?id=760594
* amc: Add an assertion for NULL GErrorsSebastian Dröge2016-01-221-4/+8
| | | | | Should never happen! But an assertion is better than a NULL pointer dereference.
* ahc: Fix indentationSebastian Dröge2016-01-222-8/+15
|
* amc: MediaCodec::getOutputBuffer() can return NULL without exceptionSebastian Dröge2016-01-224-17/+72
| | | | | | | | Happens when doing zerocopy rendering, or when passing a wrong index to it. Handle this properly for zerocopy rendering, fail properly for the other cases. https://bugzilla.gnome.org/show_bug.cgi?id=760961
* applemedia: texture cache: copy the input metasAlessandro Decina2016-01-221-6/+6
| | | | | Copy the input metas so avfvideosrc and vtenc can fast path to using CVPixelBuffer(s) even when using GLMemory.
* ahcsrc: Fix latency reportingNicolas Dufresne2016-01-211-7/+6
| | | | | | | | | | Currently it was wrongly reporting min/max as being the shortest and longest possible frame duration. This is not how latency works in GStreamer. Fix by reporting min latency as being the longest possible duration of one frame. As we don't know how many buffers the stack can accumulate, we simply assume that max latency is the same (the usual default behaviour).
* ahcsrc: fix deadlock when flushingGeorge Kiagiadakis2016-01-211-6/+8
| | | | | | _data_queue_item_free() calls gst_buffer_unref(), which calls gst_ahc_src_buffer_free_func(), which calls g_mutex_lock() on self->mutex and there you go... deadlock!
* ahcsrc: porting from 0.10 to 1.0Justin Kim2016-01-2119-2716/+1484
|
* move androidcamera into androidmediaJustin Kim2016-01-2112-146/+0
| | | | | | This commit is a part of portng android hardware camera from 0.10 implementation. To preserve history and get diff clearly, the interesting files are moved to deployment directory and the remaining files are removed.
* androidcamera: Separate release and free APIsYouness Alaoui2016-01-215-1/+19
|
* androidmedia: Fix get_level and get_profile exception checking by not using ↵Youness Alaoui2016-01-211-2/+8
| | | | return
* androidmedia: Add extern gint declarationsYouness Alaoui2016-01-213-1/+31
|