Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | openslesringbuffer: Warn if the position reported by OpenSL is higher than ↵ | Sebastian Dröge | 2016-03-16 | 1 | -1/+8 |
| | | | | | | | what we queued up so far This would hint at wrong position reporting, and apparently sometimes happens after a seek. | ||||
* | amc: Correctly handle NULL input buffers | Sebastian Dröge | 2016-03-11 | 4 | -16/+50 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=763401 | ||||
* | amcvideodec: getOutputBuffers() returns a NULL array when a surface was ↵ | Sebastian Dröge | 2016-03-11 | 2 | -3/+14 |
| | | | | | | | | configured So don't error out if it does. https://bugzilla.gnome.org/show_bug.cgi?id=763401 | ||||
* | androidmedia: Remove unused file | Justin Kim | 2016-03-05 | 1 | -68/+0 |
| | | | | | | ahcsrc is registered by gstamc.c https://bugzilla.gnome.org/show_bug.cgi?id=763098 | ||||
* | amc: properly deinit when ahcsrc register fails | Martin Kelly | 2016-03-04 | 1 | -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 message | Martin Kelly | 2016-03-04 | 1 | -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 Kelly | 2016-03-04 | 1 | -1/+0 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=763065 | ||||
* | ahc: typo fix | Martin Kelly | 2016-03-04 | 1 | -1/+1 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=763065 | ||||
* | amcvideodec: When outputting on a surface, accept all color formats | Sebastian Dröge | 2016-02-28 | 1 | -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() already | Sebastian Dröge | 2016-02-25 | 1 | -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 double | Joe Gorse | 2016-02-25 | 1 | -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 buffer | Matthew Waters | 2016-02-25 | 1 | -4/+14 |
| | | | | | | Fixes a massive leak in: videotestsrc ! nvh264enc ! fakesink | ||||
* | fbdevsink: fix bytes per pixel calculation | Peter Seiderer | 2016-02-23 | 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 | ||||
* | uvch264_src: Fix caps memory leak | Vineeth TM | 2016-02-17 | 1 | -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 return | Vineeth TM | 2016-02-16 | 2 | -2/+0 |
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=761109 | ||||
* | applemedia: videotesturecache: let CVOpenGLESTextureCache flush every 1s | Alessandro Decina | 2016-02-10 | 1 | -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_context | Alessandro Decina | 2016-02-09 | 1 | -3/+18 |
| | |||||
* | applemedia: vtdec: update copyright | Alessandro Decina | 2016-02-09 | 1 | -1/+1 |
| | |||||
* | applemedia: avfvideosrc: implement GstElement::set_context | Alessandro Decina | 2016-02-09 | 1 | -0/+21 |
| | | | | Needed to properly handle gst.gl.app_context(s). | ||||
* | applemedia: avfvideosrc: add myself to the copyright holders | Alessandro Decina | 2016-02-09 | 1 | -0/+1 |
| | |||||
* | glsyncmeta: separate out gpu/cpu waits. | Matthew Waters | 2016-02-09 | 1 | -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 macro | Arun Raghavan | 2016-02-05 | 1 | -8/+3 |
| | |||||
* | tinyalsasink: Limit period size and count to what the h/w permits | Arun Raghavan | 2016-02-05 | 1 | -0/+24 |
| | |||||
* | amcvideodec: pass the correct time value to wait_for_sync | Matthew Waters | 2016-02-04 | 1 | -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=FALSE | Matthew Waters | 2016-02-04 | 1 | -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 tracking | Jan Schmidt | 2016-02-04 | 1 | -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 plugin | Tim-Philipp Müller | 2016-02-03 | 9 | -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 typo | Reynaldo H. Verdejo Pinochet | 2016-02-02 | 1 | -1/+1 |
| | |||||
* | tinyalsasink: fix sample launch line | Reynaldo H. Verdejo Pinochet | 2016-02-02 | 1 | -1/+1 |
| | |||||
* | tinyalsasink: Use int type if we support a single rate/channel count | Arun Raghavan | 2016-02-02 | 1 | -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 tinyalsa | Arun Raghavan | 2016-02-02 | 5 | -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.h | Tim-Philipp Müller | 2016-01-30 | 1 | -4/+3 |
| | |||||
* | amcvideodec: guard against not finding a valid frame in loop | Matthew Waters | 2016-01-29 | 1 | -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 close | Matthew Waters | 2016-01-29 | 3 | -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 code | Alessandro Decina | 2016-01-29 | 6 | -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 framerate | Alessandro Decina | 2016-01-27 | 1 | -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 found | Sebastian Dröge | 2016-01-22 | 1 | -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 NULL | Sebastian Dröge | 2016-01-22 | 1 | -1/+1 |
| | | | | Otherwise there will be assertions. | ||||
* | amcvideodec: Only free GstAmcBuffer if it's not NULL | Sebastian Dröge | 2016-01-22 | 1 | -2/+8 |
| | | | | And also free it on GL errors. | ||||
* | decklinkvideosrc: implement RGB capture support | Julien Moutte | 2016-01-22 | 5 | -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 GErrors | Sebastian Dröge | 2016-01-22 | 1 | -4/+8 |
| | | | | | Should never happen! But an assertion is better than a NULL pointer dereference. | ||||
* | ahc: Fix indentation | Sebastian Dröge | 2016-01-22 | 2 | -8/+15 |
| | |||||
* | amc: MediaCodec::getOutputBuffer() can return NULL without exception | Sebastian Dröge | 2016-01-22 | 4 | -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 metas | Alessandro Decina | 2016-01-22 | 1 | -6/+6 |
| | | | | | Copy the input metas so avfvideosrc and vtenc can fast path to using CVPixelBuffer(s) even when using GLMemory. | ||||
* | ahcsrc: Fix latency reporting | Nicolas Dufresne | 2016-01-21 | 1 | -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 flushing | George Kiagiadakis | 2016-01-21 | 1 | -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.0 | Justin Kim | 2016-01-21 | 19 | -2716/+1484 |
| | |||||
* | move androidcamera into androidmedia | Justin Kim | 2016-01-21 | 12 | -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 APIs | Youness Alaoui | 2016-01-21 | 5 | -1/+19 |
| | |||||
* | androidmedia: Fix get_level and get_profile exception checking by not using ↵ | Youness Alaoui | 2016-01-21 | 1 | -2/+8 |
| | | | | return |