This commit adds support for direct rendering with YUV/RGB software chromas.
This is done using Pixel Buffer Object (PBO, A Buffer Object that is used for
asynchronous pixel transfer operations) [1][2]. PBO are present since OpenGL
2.1 and since OpenGLES 3.0.
But there is an issue, VLC software decoders and video filters might need to
read picture buffers while they're being displayed. Therefore, the basic use
case of PBOs can't work (since you need to unmap the buffer before displaying
it).
To solve this issue, we need to use persistent mapped buffers[3]. This can be
done using the glBufferStorage() function with the GL_MAP_PERSISTENT_BIT flag.
Unfortunately, this new API is only present since OpenGL 4.4 and as an
extension since OpenGLES 3.1 (so no Android, macos and ios support for now).
References:
[1]: https://www.khronos.org/opengl/wiki/Pixel_Buffer_Object
[2]: http://www.songho.ca/opengl/gl_pbo.html
[3]: https://www.khronos.org/opengl/wiki/Buffer_Object_Streaming
Convert/Save dialog has had option to specify 'start time' but
no option for setting 'stop time' in the interface. The backend
'stop-time' option was already present. This patch simply adds
and enables the edit widget for end time in Qt interface.
Signed-off-by: Marvin Scholz <epirat07@gmail.com>
By default we wait -1 as previously, but you can give --udp-timeout as timeout in seconds
how long we wait for next packet before deciding that input has ended.
The edge detection filter uses the Sobel operator to detect and highlight
edges in a frame. In order to successfully detect an edge, the image must
first be converted to gray scale (because Sobel is a gray scale operator) and
then have a slight Gaussian blur applied to it. We do this because Sobel is a
noisy operator and the Gaussian blur reduces this noise.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
This handles deflate encoding or application/zlib type transparently.
(Note though that it fails to check and discard the application/zlib
content-type from the underlying stream.)
This module implements nfs file read and browsing via libnfs, see
https://github.com/sahlberg/libnfs .
This module use the *_async functions of libnfs and is interruptible via
vlc_interrupt.
Playing FIFOs and devices (especially character devices) typically
only makes sense if explicitly requested. Playing FIFOs will usually
lock up. Playing devices could have any effects.
Add an option to restore the old behaviour in case someone wants it.
This resampler supports 5 quality presets: from 0 to 4, 2 is the default and
correspond to "mq". It supports integer and float samples. Performances are way
better when this module is used as an "audio converter" (fixed sample rate).
See http://lastique.github.io/src_test/ for comparison with speexdsp.
It is deactivated for now.
This is the work from Moti Zilberman, modified by me to build and
integrate in-tree
It's heavily inspired on the OS X one.
Be careful: you need a very recent Mingw-W64 to hope to compile it.
Ref #11893
Tizen audio_io.h supports only mono/stereo, with PCM U8/S16. With Tizen 2.3,
flush is done by destroying/recreating the audio_output. A real flush will come
with Tizen 2.4.
There is no TimeGet for now since there is no way to know the position in audio
stream.
Usage:
$ vlc concat:// :concat=URL1,URL2,....URLn
Note: As for the existing input-slave and input-list options, URLs are
assumed to not contain unencoded commas. This is usually the case but
not strictly warranted as the comma is a sub-delimiter.
Added a boolean Playlist preference called start-pause.
Setting the preference causes the src/input/input.c Run function to call the
ControlPause function after Init finishes successfully.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
This function gets the active device identifier for the current
audio output, if there is one, and is the complementary function
to libvlc_audio_output_device_set().
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
libvlc_media_discoverer_new_from_name was creating a services_discovery_t and
was starting it, so libvlc_MediaDiscovererStarted event (or any other events)
could not be received.
To fix that, Split libvlc_media_discoverer_new_from_name into
libvlc_media_discoverer_new and libvlc_media_discoverer_start. That way, we can
attach events between create and start.
libvlc_media_discoverer_new_from_name is now deprecated, but it still works
like before.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Shared cookies are required, for example, by certain HDS and HLS streams
that set a cookie when the manifest is read and expect it to be sent
back on subsequent fragment requests.
The cookie jar is created during playlist initialization. HTTP requests
inherit the cookie jar from the playlist.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
mp4stream tries to build stream with 1.5sec runs.
mp4frag aims files by creating a compatible index.
Might need for transcode tests (fragments are 1.5 sec only).
--sout-x264-keyint=30 --sout-avcodec-strict=-2
Streaming done using http, with fragment start used as iframes.
This plugin is capable of decoding MPEG-2 and H264 video through the Multi
Media Abstraction Layer (MMAL) by Broadcom. It is supported by recent Broadcom
SoCs and found on the widely spread Raspberry Pi.
Signed-off-by: Dennis Hamester <dennis.hamester@gmail.com>
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
This plugin uses the Multimedia Abstraction Layer (mmal) by Broadcom. It is
supported on recent Broadcom SoCs as found on the well known Raspberry Pi.
The plugin features support for native blending of overlays through DispManX.
Furthermore it supports automatic adaption of refresh rate to the video being
played through the tvservice API.
Signed-off-by: Dennis Hamester <dennis.hamester@gmail.com>
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
GStreamer is a cross-platform multimedia processing
framework for audio/video postprocess/capture/
encode/decode/render.
This module is intended for Audio/Video decoding using
the available GStreamer plugins present in the system.
Currently this module supports only video decoding
and can be extended to audio decoding as well.
ZeroCopy is currently not supported and must be added.
Codecs currently supported are h264, mpeg4, vp8, mpeg2,
flashvideo, wmv1/2/3, vc1.
Signed-off-by: Vikram Fugro <vikram.fugro@gmail.com>
Signed-off-by: Jean-Baptiste <jb@videolan.org>