Commit graph

18 commits

Author SHA1 Message Date
nia
7f7872b126 gst-plugins1-base: remove broken unfinished patch (it was the wrong
approach, and isn't necessary anyway)
2022-04-19 16:27:43 +00:00
tnn
c8c0341a1e gst-plugins1-base: mend broken meson pkgsrc patch for gst-gl
The patch has syntax errors and I think it is only needed for
wip/gst-plugins1-gl?
This might need to be done differently but should hopefully unbreak the
base package which is more urgent until a proper fix can be made.
2022-04-19 13:00:27 +00:00
nia
7869fb0c1d gst-plugins1: Update to 1.20.1
Release notes:
https://gstreamer.freedesktop.org/releases/1.20/
2022-04-18 12:36:04 +00:00
nia
9a64180729 gstreamer1: Build fixes for Solarish
PR pkg/56509 from Claes Nästén
2021-11-18 20:25:45 +00:00
wiz
a76603db9b *: update gstreamer1 and plugins and related packages to 1.18.5
Based on the wip packages by nia and myself.
2021-11-15 22:01:15 +00:00
markd
5920561295 gstreamer1,gst-plugins1-{base,bad}: fix build with GNU make 4.3
from Michael Forney
2020-07-16 11:27:25 +00:00
wiz
aafba440ad gst-plugins1-base: fix unportable test(1) operator. 2020-03-12 22:50:30 +00:00
adam
f5191e56c0 gstreamer1: updated to 1.16.0
GStreamer 1.16.0:

Introduction
The GStreamer team is proud to announce a new major feature release in
the stable 1.x API series of your favourite cross-platform multimedia
framework!

As always, this release is again packed with many new features, bug
fixes and other improvements.

Highlights
-   GStreamer WebRTC stack gained support for data channels for
    peer-to-peer communication based on SCTP, BUNDLE support, as well as
    support for multiple TURN servers.
-   AV1 video codec support for Matroska and QuickTime/MP4 containers
    and more configuration options and supported input formats for the
    AOMedia AV1 encoder
-   Support for Closed Captions and other Ancillary Data in video
-   Support for planar (non-interleaved) raw audio
-   GstVideoAggregator, compositor and OpenGL mixer elements are now in
    -base
-   New alternate fields interlace mode where each buffer carries a
    single field
-   WebM and Matroska ContentEncryption support in the Matroska demuxer
-   new WebKit WPE-based web browser source element
-   Video4Linux: HEVC encoding and decoding, JPEG encoding, and improved
    dmabuf import/export
-   Hardware-accelerated Nvidia video decoder gained support for VP8/VP9
    decoding, whilst the encoder gained support for H.265/HEVC encoding.
-   Many improvements to the Intel Media SDK based hardware-accelerated
    video decoder and encoder plugin (msdk): dmabuf import/export for
    zero-copy integration with other components; VP9 decoding; 10-bit
    HEVC encoding; video post-processing (vpp) support including
    deinterlacing; and the video decoder now handles dynamic resolution
    changes.
-   The ASS/SSA subtitle overlay renderer can now handle multiple
    subtitles that overlap in time and will show them on screen
    simultaneously
-   The Meson build is now feature-complete (*) and it is now the
    recommended build system on all platforms. The Autotools build is
    scheduled to be removed in the next cycle.
-   The GStreamer Rust bindings and Rust plugins module are now
    officially part of upstream GStreamer.
-   The GStreamer Editing Services gained a gesdemux element that allows
    directly playing back serialized edit list with playbin or
    (uri)decodebin
-   Many performance improvements
2019-05-29 20:51:47 +00:00
wiz
a9e0ad9ebe gstreamer1: patch updates for 1.14.0 2018-04-17 22:11:32 +00:00
wiz
9afbf43578 gstreamer1 + plugins: update to 1.12.4
### 1.12.4

The fourth 1.12 bug-fix release (1.12.4) was released on 7 December 2017.
This release only contains bugfixes and it should be safe to update from 1.12.x.

#### Major bugfixes in 1.12.4

 - Dozens of fixes for various issues detected with the help of Google's OSS-Fuzz
   project: https://github.com/google/oss-fuzz
   Details to be found there in the bug tracker
 - Performance regressions with registering debug categories after gst_init()
   were fixed
 - Regression with seeking back to 0 in souphttpsrc was fixed
 - Regression with header rewriting in flacparse was fixed
 - Regression with playbin/playsink leaking sinks was fixed
 - Inconsistencies with DROPPED/HANDLED handling in pad probe handlers are fixed
 - gst_bin_iterate_sorted() always returns sources last now, as documented
 - gst_query_writable_structure() will never return NULL, for consistency with events
 - Removal of metas from gst_buffer_meta_foreach() works correctly now
 - OpenJPEG plugin builds with OpenJPEG >= 2.3
 - CDIO plugin builds with CDIO >= 1.0
 - gstreamer-vaapi works correctly with libva 1.0
 - gst-libav was updated to ffmpeg 3.3.5
 - Various fixes for memory leaks, deadlocks and crashes in all modules
 - ... and many, many more!
2018-01-28 19:33:09 +00:00
wiz
485cad9acd Update gstreamer1 and its plugins to 1.12.2.
Highlights

    new msdk plugin for Intel's Media SDK for hardware-accelerated
    video encoding and decoding on Intel graphics hardware on Windows
    or Linux.

    x264enc can now use multiple x264 library versions compiled for
    different bit depths at runtime, to transparently provide support
    for multiple bit depths.

    videoscale and videoconvert now support multi-threaded scaling
    and conversion, which is particularly useful with higher
    resolution video.

    h264parse will now automatically insert AU delimiters if needed
    when outputting byte-stream format, which improves standard
    compliance and is needed in particular for HLS playback on
    iOS/macOS.

    rtpbin has acquired bundle support for incoming streams

Major new features and changes Noteworthy new API

    The video library gained support for a number of new video
    formats:
        GBR_12LE, GBR_12BE, GBRA_12LE, GBRA_12BE (planar 4:4:4
        RGB/RGBA, 12 bits per channel) GBRA_10LE, GBRA_10BE (planar
        4:4:4:4 RGBA, 10 bits per channel) GBRA (planar 4:4:4:4
        ARGB, 8 bits per channel) I420_12BE, I420_12LE (planar 4:2:0
        YUV, 12 bits per channel) I422_12BE,I422_12LE (planar 4:2:2
        YUV, 12 bits per channel) Y444_12BE, Y444_12LE (planar 4:4:4
        YUV, 12 bits per channel) VYUY (another packed 4:2:2 YUV
        format)

    The high-level GstPlayer API was extended with functions for
    taking video snapshots and enabling accurate seeking. It can
    optionally also use the still-experimental playbin3 element
    now.

New Elements

    msdk: new plugin for Intel's Media SDK for hardware-accelerated
    video encoding and decoding on Intel graphics hardware on Windows
    or Linux. This includes an H.264 encoder/decoder (msdkh264dec,
    msdkh264enc), an H.265 encoder/decoder (msdkh265dec, msdkh265enc),
    an MJPEG encoder/encoder (msdkmjpegdec, msdkmjpegenc), an MPEG-2
    video encoder (msdkmpeg2enc) and a VP8 encoder (msdkvp8enc).

    iqa is a new Image Quality Assessment plugin based on DSSIM,
    similar to the old (unported) videomeasure element.

    The faceoverlay element, which allows you to overlay SVG graphics
    over a detected face in a video stream, has been ported from
    0.10.

    our ffmpeg wrapper plugin now exposes/maps the ffmpeg Opus audio
    decoder (avdec_opus) as well as the GoPro CineForm HD / CFHD
    decoder (avdec_cfhd), and also a parser/writer for the IVF
    format (avdemux_ivf and avmux_ivf).

    audiobuffersplit is a new element that splits raw audio buffers
    into equal-sized buffers

    audiomixmatrix is a new element that mixes N:M audio channels
    according to a configured mix matrix.

    The timecodewait element got renamed to avwait and can operate
    in different modes now.

    The opencv video processing plugin has gained a new dewarp
    element that dewarps fisheye images.

    ttml is a new plugin for parsing and rendering subtitles in
    Timed Text Markup Language (TTML) format. For the time being
    these elements will not be autoplugged during media playback
    however, unless the GST_TTML_AUTOPLUG=1 environment variable
    is set. Only the EBU-TT-D profile is supported at this point.

New element features and additions

    x264enc can now use multiple x264 library versions compiled for
    different bit depths at runtime, to transparently provide support
    for multiple bit depths. A new configure parameter
    --with-x264-libraries has been added to specify additional paths
    to look for additional x264 libraries to load. Background is
    that the libx264 library is always compile for one specific bit
    depth and the x264enc element would simply support the depth
    supported by the underlying library. Now we can support multiple
    depths.

    x264enc also picks up the interlacing mode automatically from
    the input caps now and passed interlacing/TFF information
    correctly to the library.

    videoscale and videoconvert now support multi-threaded scaling
    and conversion, which is particularly useful with higher
    resolution video. This has to be enabled explicitly via the
    "n-threads" property.

    videorate's new "rate" property lets you set a speed factor on
    the output stream

    splitmuxsink's buffer collection and scheduling was rewritten
    to make processing and splitting deterministic; before it was
    possible for a buffer to end up in a different file chunk in
    different runs. splitmuxsink also gained a new "format-location-full"
    signal that works just like the existing "format-location"
    signal only that it is also passed the primary stream's first
    buffer as argument, so that it is possible to construct the
    file name based on metadata such as the buffer timestamp or any
    GstMeta attached to the buffer. The new "max-size-timecode"
    property allows for timecode-based splitting. splitmuxsink will
    now also automatically start a new file if the input caps change
    in an incompatible way.

    fakesink has a new "drop-out-of-segment" property to not drop
    out-of-segment buffers, which is useful for debugging purposes.

    identity gained a "ts-offset" property.

    both fakesink and identity now also print what kind of metas
    are attached to buffers when printing buffer details via the
    "last-message" property used by gst-launch-1.0 -v.

    multiqueue: made "min-interleave-time" a configurable property.

    video nerds will be thrilled to know that videotestsrc's snow
    is now deterministic. videotestsrc also gained some new properties
    to make the ball pattern based on system time, and invert colours
    each second ("animation-mode", "motion", and "flip" properties).

    oggdemux reverse playback should work again now. You're welcome.

    playbin3 and urisourcebin now have buffering enabled by default,
    and buffering message aggregation was fixed.

    tcpclientsrc now has a "timeout" property

    appsink has gained support for buffer lists. For backwards
    compatibility reasons users need to enable this explicitly with
    gst_app_sink_set_buffer_list_support(), however. Once activated,
    a pulled GstSample can contain either a buffer list or a single
    buffer.

    splitmuxsrc reverse playback was fixed and handling of sparse
    streams, such as subtitle tracks or metadata tracks, was improved.

    matroskamux has acquired support for muxing G722 audio; it also
    marks all buffers as keyframes now when streaming only audio,
    so that tcpserversink will behave properly with audio-only
    streams.

    qtmux gained support for ProRes 4444 XQ, HEVC/H.265 and CineForm
    (GoPro) formats, and generally writes more video stream-related
    metadata into the track headers. It is also allows configuration
    of the maximum interleave size in bytes and time now. For
    fragmented mp4 we always write the tfdt atom now as required
    by the DASH spec.

    qtdemux supports FLAC, xvid, mp2, S16L and CineForm (GoPro)
    tracks now, and generally tries harder to extract more video-related
    information from track headers, such as colorimetry or interlacing
    details. It also received a couple of fixes for the scenario
    where upstream operates in TIME format and feeds chunks to
    qtdemux (e.g. DASH or MSE).

    audioecho has two new properties to apply a delay only to certain
    channels to create a surround effect, rather than an echo on
    all channels. This is useful when upmixing from stereo, for
    example. The "surround-delay" property enables this, and the
    "surround-mask" property controls which channels are considered
    surround sound channels in this case.

    webrtcdsp gained various new properties for gain control and
    also exposes voice activity detection now, in which case it
    will post "voice-activity" messages on the bus whenever the
    voice detection status changes.

    The decklink capture elements for Blackmagic Decklink cards
    have seen a number of improvements:

        decklinkvideosrc will post a warning message on "no signal"
        and an info message when the signal lock has been (re)acquired.
        There is also a new read-only "signal" property that can
        be used to query the signal lock status. The GAP flag will
        be set on buffers that are captured without a signal lock.
        The new drop-no-signal-frames will make decklinkvideosrc
        drop all buffers that have been captured without an input
        signal. The "skip-first-time" property will make the source
        drop the first few buffers, which is handy since some devices
        will at first output buffers with the wrong resolution
        before they manage to figure out the right input format and
        decide on the actual output caps.

        decklinkaudiosrc supports more than just 2 audio channels
        now.

        The capture sources no longer use the "hardware" timestamps
        which turn out to be useless and instead just use the
        pipeline clock directly.

    srtpdec now also has a readonly "stats" property, just like
    srtpenc.

    rtpbin gained RTP bundle support, as used by e.g. WebRTC. The
    first rtpsession will have a rtpssrcdemux element inside splitting
    the streams based on their SSRC and potentially dispatch to a
    different rtpsession. Because retransmission SSRCs need to be
    merged with the corresponding media stream the ::on-bundled-ssrc
    signal is emitted on rtpbin so that the application can find
    out to which session the SSRC belongs.

    rtprtxqueue gained two new properties exposing retransmission
    statistics ("requests" and "fulfilled-requests")

    kmssink will now use the preferred mode for the monitor and
    render to the base plane if nothing else has set a mode yet.
    This can also be done forcibly in any case via the new
    "force-modesetting" property. Furthermore, kmssink now allows
    only the supported connector resolutions as input caps in order
    to avoid scaling or positioning of the input stream, as kmssink
    can't know whether scaling or positioning would be more appropriate
    for the use case at hand.

    waylandsink can now take DMAbuf buffers as input in the presence
    of a compatible Wayland compositor. This enables zero-copy
    transfer from a decoder or source that outputs DMAbuf. It will
    also set surface opacity hint to allow better rendering
    optimization in the compositor.

    udpsrc can be bound to more than one interface when joining a
    multicast group, this is done by giving a comma separate list
    of interfaces such as multicast-iface="eth0,eth1".

Plugin moves

    dataurisrc moved from gst-plugins-bad to core

    The rawparse plugin containing the rawaudioparse and rawvideoparse
    elements moved from gst-plugins-bad to gst-plugins-base. These
    elements supersede the old videoparse and audioparse elements.
    They work the same, with just some minor API changes. The old
    legacy elements still exist in gst-plugins-bad, but may be
    removed at some point in the future.

    timecodestamper is an element that attaches time codes to video
    buffers in form of GstVideoTimeCodeMetas. It had a "clock-source"
    property which has now been removed because it was fairly useless
    in practice. It gained some new properties however: the
    "first-timecode" property can be used to set the inital timecode;
    alternatively "first-timecode-to-now" can be set, and then the
    current system time at the time the first buffer arrives is
    used as base time for the time codes.

Plugin removals

    The mad mp1/mp2/mp3 decoder plugin was removed from gst-plugins-ugly,
    as libmad is GPL licensed, has been unmaintained for a very
    long time, and there are better alternatives available. Use the
    mpg123audiodec element from the mpg123 plugin in gst-plugins-ugly
    instead, or avdec_mp3 from the gst-libav module which wraps the
    ffmpeg library. We expect that we will be able to move mp3
    decoding to gst-plugins-good in the next cycle seeing that most
    patents around mp3 have expired recently or are about to expire.

    The mimic plugin was removed from gst-plugins-bad. It contained
    a decoder and encoder for a video codec used by MSN messenger
    many many years ago (in a galaxy far far away). The underlying
    library is unmaintained and no one really needs to use this
    codec any more. Recorded videos can still be played back with
    the MIMIC decoder in gst-libav.

Miscellaneous API additions

    Request pad name templates passed to gst_element_request_pad()
    may now contain multiple specifiers, such as e.g. src_%u_%u.

    gst_buffer_iterate_meta_filtered() is a variant of
    gst_buffer_iterate_meta() that only returns metas of the requested
    type and skips all other metas.

    gst_pad_task_get_state() gets the current state of a task in a
    thread-safe way.

    gst_uri_get_media_fragment_table() provides the media fragments
    of an URI as a table of key=value pairs.

    gst_print(), gst_println(), gst_printerr(), and gst_printerrln()
    can be used to print to stdout or stderr. These functions are
    similar to g_print() and g_printerr() but they also support all
    the additional format specifiers provided by the GStreamer
    logging system, such as e.g. GST_PTR_FORMAT.

    a GstParamSpecArray has been added, for elements who want to
    have array type properties, such as the audiomixmatrix element
    for example. There are also two new functions to set and get
    properties of this type from bindings:
        gst_util_set_object_array() gst_util_get_object_array()

    various helper functions have been added to make it easier to
    set or get GstStructure fields containing caps-style array or
    list fields from language bindings (which usually support
    GValueArray but don't know about the GStreamer specific fundamental
    types):
        gst_structure_get_array() gst_structure_set_array()
        gst_structure_get_list() gst_structure_set_list()

    a new 'dynamic type' registry factory type was added to register
    dynamically loadable GType types. This is useful for automatically
    loading enum/flags types that are used in caps, such as for
    example the GstVideoMultiviewFlagsSet type used in multiview
    video caps.

    there is a new GstProxyControlBinding for use with GstController.
    This allows proxying the control interface from one property
    on one GstObject to another property (of the same type) in
    another GstObject. So e.g. in parent-child relationship, one
    may need to call gst_object_sync_values() on the child and have
    a binding (set elsewhere) on the parent update the value. This
    is used in glvideomixer and glsinkbin for example, where
    sync_values() on the child pad or element will call sync_values()
    on the exposed bin pad or element.

    Note that this doesn't solve GObject property forwarding, that
    must be taken care of by the implementation manually or using
    GBinding.

    gst_base_parse_drain() has been made public for subclasses to
    use.

    `gst_base_sink_set_drop_out_of_segment()' can be used by
    subclasses to prevent GstBaseSink from dropping buffers that
    fall outside of the segment.

    gst_calculate_linear_regression() is a new utility function to
    calculate a linear regression.

    gst_debug_get_stack_trace is an easy way to retrieve a stack
    trace, which can be useful in tracer plugins.

    allocators: the dmabuf allocator is now sub-classable, and there
    is a new GST_CAPS_FEATURE_MEMORY_DMABUF define.

    video decoder subclasses can use the newly-added function
    gst_video_decoder_allocate_output_frame_with_params() to pass
    a GstBufferPoolAcquireParams to the buffer pool for each buffer
    allocation.

    the video time code API has gained a dedicated GstVideoTimeCodeInterval
    type plus related API, including functions to add intervals to
    timecodes.

    There is a new libgstbadallocators-1.0 library in gst-plugins-bad,
    which may go away again in future releases once the
    GstPhysMemoryAllocator interface API has been validated by more
    users and was moved to libgstallocators-1.0 from gst-plugins-base.

GstPlayer

New API has been added to:

    get the number of audio/video/subtitle streams:
        gst_player_media_info_get_number_of_streams()
        gst_player_media_info_get_number_of_video_streams()
        gst_player_media_info_get_number_of_audio_streams()
        gst_player_media_info_get_number_of_subtitle_streams()

    enable accurate seeking: gst_player_config_set_seek_accurate()
    and gst_player_config_get_seek_accurate()

    get a snapshot image of the video in RGBx, BGRx, JPEG, PNG or
    native format: gst_player_get_video_snapshot()

    selecting use of a specific video sink element
    (gst_player_video_overlay_video_renderer_new_with_sink())

    If the environment variable GST_PLAYER_USE_PLAYBIN3 is set,
    GstPlayer will use the still-experimental playbin3 element and
    the GstStreams API for playback.

Miscellaneous changes

    video caps for interlaced video may contain an optional
    "field-order" field now in the case of interlaced-mode=interleaved
    to signal that the field order is always the same throughout
    the stream. This is useful to signal to muxers such as mp4mux.
    The new field is parsed from/to GstVideoInfo of course.

    video decoder and video encoder base classes try harder to proxy
    interlacing, colorimetry and chroma-site related fields in caps
    properly.

    The buffer stored in the PROTECTION events is now left unchanged.
    This is a change of behaviour since 1.8, especially for the
    mssdemux element which used to decode the base64 parsed data
    wrapped in the protection events emitted by the demuxer.

    PROTECTION events can now be injected into the pipeline from
    the application; source elements deriving from GstBaseSrc will
    forward those downstream now.

    The DASH demuxer is now correctly parsing the MSPR-2.0
    ContentProtection nodes and emits Protection events accordingly.
    Applications relying on those events might need to decode the
    base64 data stored in the event buffer before using it.

    The registry can now also be disabled by setting the environment
    variable GST_REGISTRY_DISABLE=yes, with similar effect as the
    GST_DISABLE_REGISTRY compile time switch.

    Seeking performance with gstreamer-vaapi based decoders was
    improved. It would recreate the decoder and surfaces on every
    seek which can be quite slow.

    more robust handling of input caps changes in videoaggregator-based
    elements such as compositor.

    Lots of adaptive streaming-related fixes across the board (DASH,
    MSS, HLS). Also:

        mssdemux, the Microsoft Smooth Streaming demuxer, has seen
        various fixes for live streams, duration reporting and
        seeking.

        The DASH manifest parser now extracts MS PlayReady
        ContentProtection objects from manifests and sends them
        downstream as PROTECTION events. It also supports multiple
        Period elements in external xml now.

    gst-libav was updated to ffmpeg 3.3 but should still work with
    any 3.x version.

    GstEncodingProfile has been generally enhanced so it can, for
    example, be used to get possible profiles for a given file
    extension. It is now possible to define profiles based on element
    factory names or using a path to a .gep file containing a
    serialized profile.

    audioconvert can now do endianness conversion in-place. All
    other conversions still require a copy, but e.g. sign conversion
    and a few others could also be implemented in-place now.

    The new, experimental playbin3 and urisourcebin elements got
    many bugfixes and improvements and should generally be closer
    to a full replacement of the old elements.

    interleave now supports > 64 channels.

    OpenCV elements, grabcut and retinex has been ported to use
    GstOpencvVideoFilter base class, increasing code reuse and
    fixing buffer map/unmap issues. Redundant copie of images has
    been removed in edgedetect, cvlaplace and cvsobel. This comes
    with various cleanup and Meson support.

OpenGL integration

    As usual the GStreamer OpenGL integration library has seen
    numerous fixes and performance improvements all over the place,
    and is hopefully ready now to become API stable and be moved
    to gst-plugins-base during the 1.14 release cycle.

    The GStreamer OpenGL integration layer has also gained support
    for the Vivante EGL FB windowing system, which improves performance
    on platforms such as Freescale iMX.6 for those who are stuck
    with the proprietary driver. The qmlglsink element also supports
    this now if Qt is used with eglfs or wayland backend, and it
    works in conjunction with gstreamer-imx of course.

    various qmlglsrc improvements

Tracing framework and debugging improvements

    New tracing hooks have been added to track GstMiniObject and
    GstObject ref/unref operations.

    The memory leaks tracer can optionally use this to retrieve
    stack traces if enabled with e.g.
    GST_TRACERS=leaks(filters="GstEvent,GstMessage",stack-traces-flags=full)

    The GST_DEBUG_FILE environment variable, which can be used to
    write the debug log output to a file instead of printing it to
    stderr, can now contain a name pattern, which is useful for
    automated testing and continuous integration systems. The
    following format specifiers are supported:
        %p: will be replaced with the PID %r: will be replaced with
        a random number, which is useful for instance when running
        two processes with the same PID but in different containers.

Tools

    gst-inspect-1.0 can now list elements by type with the new
    --types command-line option, e.g. gst-inspect-1.0 --types=Audio/Encoder
    will show a list of audio encoders.

    gst-launch-1.0 and gst_parse_launch() have gained a new operator
    (:) that allows linking all pads between two elements. This is
    useful in cases where the exact number of pads or type of pads
    is not known beforehand, such as in the uridecodebin : encodebin
    scenario, for example. In this case, multiple links will be
    created if the encodebin has multiple profiles compatible with
    the output of uridecodebin.

    gst-device-monitor-1.0 now shows a gst-launch-1.0 snippet for
    each device that shows how to make use of it in a gst-launch-1.0
    pipeline string.

GStreamer RTSP server

    The RTSP server now also supports Digest authentication in
    addition to Basic authentication.

    The GstRTSPClient class has gained a pre-*-request signal and
    virtual method for each client request type, emitted in the
    beginning of each rtsp request. These signals or virtual methods
    let the application validate the requests, configure the
    media/stream in a certain way and also generate error status
    codes in case of an error or a bad request.

GStreamer VAAPI

    GstVaapiDisplay now inherits from GstObject, thus the VA display
    logging messages are better and tracing the context sharing is
    more readable.

    When uploading raw images into a VA surfaces now VADeriveImages
    are tried fist, improving the upload performance, if it is
    possible.

    The decoders and the post-processor now can push dmabuf-based
    buffers to downstream under certain conditions. For example:

    GST_GL_PLATFORM=egl gst-play-1.0 video-sample.mkv
    --videosink=glimagesink

    Refactored the wrapping of VA surface into gstreamer memory,
    adding lock when mapping and unmapping, and many other fixes.

    Now vaapidecodebin loads vaapipostproc dynamically. It is
    possible to avoid it usage with the environment variable
    GST_VAAPI_DISABLE_VPP=1.

    Regarding encoders: they have primary rank again, since they
    can discover, in run-time, the color formats they can use for
    upstream raw buffers and caps renegotiation is now possible.
    Also the encoders push encoding info downstream via tags.

    About specific encoders: added constant bit-rate encoding mode
    for VP8 and H265 encoder handles P010_10LE color format.

    Regarding decoders, flush operation has been improved, now the
    internal VA encoder is not recreated at each flush. Also there
    are several improvements in the handling of H264 and H265
    streams.

    VAAPI plugins try to create their on GstGL context (when
    available) if they cannot find it in the pipeline, to figure
    out what type of VA Display they should create.

    Regarding vaapisink for X11, if the backend reports that it is
    unable to render correctly the current color format, an internal
    VA post-processor, is instantiated (if available) and converts
    the color format.

GStreamer Editing Services and NLE

    Enhanced auto transition behaviour

    Fix some races in nlecomposition

    Allow building with msvc

    Added a UNIX manpage for ges-launch

    API changes:
        Added ges_deinit (allowing the leak tracer to work properly)
        Added ges_layer_get_clips_in_interval Finally hide internal
        symbols that should never have been exposed

GStreamer validate

    Port gst-validate-launcher to python 3

    gst-validate-launcher now checks if blacklisted bugs have been
    fixed on bugzilla and errors out if it is the case

    Allow building with msvc

    Add ability for the launcher to run GStreamer unit tests

    Added a way to activate the leaks tracer on our tests and fix
    leaks

    Make the http server multithreaded

    New testsuite for running various test scenarios on the DASH-IF
    test vectors

GStreamer Python Bindings

    Overrides has been added for IntRange, Int64Range, DoubleRange,
    FractionRange, Array and List. This finally enables Python
    programmers to fully read and write GstCaps objects.

Build and Dependencies

    Meson build files are now disted in tarballs, for jhbuild and
    so distro packagers can start using it. Note that the Meson-based
    build system is not 100% feature-equivalent with the autotools-based
    one yet.

    Some plugin filenames have been changed to match the plugin
    names: for example the file name of the encoding plugin in
    gst-plugins-base containing the encodebin element was
    libgstencodebin.so and has been changed to libgstencoding.so.
    This affects only a handful of plugins across modules.

    Developers who install GStreamer from source and just do make
    install after updating the source code, without doing make
    uninstall first, will have to manually remove the old installed
    plugin files from the installation prefix, or they will get
    'Cannot register existing type' critical warnings.

    Most of the docbook-based documentation (FAQ, Application
    Development Manual, Plugin Writer's Guide, design documents)
    has been converted to markdown and moved into a new gst-docs
    module. The gtk-doc library API references and the plugins
    documentation are still built as part of the source modules
    though.

    GStreamer core now optionally uses libunwind and libdw to
    generate backtraces. This is useful for tracer plugins used
    during debugging and development.

    There is a new libgstbadallocators-1.0 library in gst-plugins-bad
    (which may go away again in future releases once the
    GstPhysMemoryAllocator interface API has been validated by more
    users).

    gst-omx and gstreamer-vaapi modules can now also be built using
    the Meson build system.

    The qtkitvideosrc element for macOS was removed. The API is
    deprecated since 10.9 and it wasn't shipped in the binaries
    since a few releases.

Platform-specific improvements Android

    androidmedia: add support for VP9 video decoding/encoding and
    Opus audio decoding (where supported)

OS/X and iOS

    avfvideosrc, which represents an iPhone camera or, on a Mac, a
    screencapture session, so far allowed you to select an input
    device by device index only. New API adds the ability to select
    the position (front or back facing) and device-type (wide angle,
    telephoto, etc.). Furthermore, you can now also specify the
    orientation (portrait, landscape, etc.) of the videostream.

Bugs fixed in 1.12

More than 635 bugs have been fixed during the development of 1.12.

This list does not include issues that have been cherry-picked into
the stable 1.10 branch and fixed there as well, all fixes that ended
up in the 1.10 branch are also included in 1.12.

This list also does not include issues that have been fixed without
a bug report in bugzilla, so the actual number of fixes is much
higher.  Stable 1.12 branch

After the 1.12.0 release there will be several 1.12.x bug-fix
releases which will contain bug fixes which have been deemed suitable
for a stable branch, but no new features or intrusive changes will
be added to a bug-fix release usually. The 1.12.x bug-fix releases
will be made from the git 1.12 branch, which is a stable branch.

1.12.0

1.12.0 was released on 4th May 2017.

1.12.1

The first 1.12 bug-fix release (1.12.1) was released on 20 June
2017. This release only contains bugfixes and it should be safe to
update from 1.12.x.  Major bugfixes in 1.12.1

    Various fixes for crashes, assertions, deadlocks and memory
    leaks Fix for regression when seeking to the end of ASF files
    Fix for regression in (raw)videoparse that caused it to omit
    video metadata Fix for regression in discoverer that made it
    show more streams than actually available Numerous bugfixes to
    the adaptive demuxer base class and the DASH demuxer Various
    playbin3/urisourcebin related bugfixes Vivante DirectVIV (imx6)
    texture uploader works with single-plane (e.g. RGB) video formats
    now Intel Media SDK encoder now outputs valid PTS and keyframe
    flags OpenJPEG2000 plugin can be loaded again on MacOS and
    correctly displays 8 bit RGB images now Fixes to DirectSound
    source/sink for high CPU usage and wrong latency/buffer size
    calculations gst-libav was updated to ffmpeg n3.3.2 ... and
    many, many more!

1.12.2

The second 1.12 bug-fix release (1.12.2) was released on 14 July
2017. This release only contains bugfixes and it should be safe to
update from 1.12.x.  Major bugfixes in 1.12.2

    Various fixes for crashes, assertions, deadlocks and memory
    leaks Regression fix for playback of live HLS streams Regression
    fix for crash when playing back a tunneled RTSP stream Regression
    fix for playback of RLE animations in MOV containers Regression
    fix for RTP GSM payloading producing corrupted output Major
    bugfixes to the MXF demuxer, mostly related to seeking and fixes
    to the frame reordering handling in the MXF muxer and demuxer
    Fix for playback of mono streams on MacOS More fixes for index
    handling of ASF containers Various fixes to adaptivedemux, DASH
    and HLS demuxers Fix deadlock in gstreamer-editing-services
    during class initialization ... and many, many more!
2017-09-12 09:32:43 +00:00
wiz
1f6547d89a Allow python-3.6. 2017-01-03 17:10:12 +00:00
wiz
91a05100df Allow building with python-3.4 and 3.5. 2016-04-11 08:34:24 +00:00
wiz
9ec1a0fbb5 Update to 1.4.5. All pkgsrc patches were integrated :-)
GStreamer core:
      * 736969 : queue2: dead lock when buffering
      * 738092 : basesink: clamp reported position based on direction
      * 740001 : task: race condition when pausing and stopping

GStreamer Plugins Base:
      * 741420 : video pools: should update size in configuration after applying alignment
      * 715050 : add typefinder for audio/x-audible
      * 739544 : tcp: Add test and fix memory leak in tcp elements
      * 739840 : typefind should recognize Apple Core Audio Format (CAF)
      * 740556 : videodecoder: don't complain when DTS != PTS on keyframes
      * 740675 : playsink: continues playback, reset mute property
      * 740730 : rtspconnection: don't remove child source if parent source is already destroyed
      * 740853 : audiodecoder: Push pending events before sending EOS.
      * 740952 : alsa: NetBSD fixes
      * 741045 : audiorate can can lose timestamp precision in some cases
      * 741198 : playbin: leaks GstPads

GStreamer Plugins Good:
      * 711437 : apev2mux: should not put APEv2 tags at beginning of WavPack files
      * 726194 : v4l2src does not cope well when a capture card is sometimes interlaced, sometimes progressive at the same resolution
      * 736397 : flvdemux: Per-stream resyncing behavior causes A/V-desyncs
      * 737603 : v4l2bufferpool: set buffer interlace flags when field is V4L2_FIELD_INTERLACED
      * 739476 : vpx: fails to build against libvpx from git
      * 739722 : matroskamux: Thread safe register GstMatroskamuxPad
      * 739789 : v4l2allocator: fix error message if allocator is already active
      * 739791 : v4l2bufferpool: unref pool when v4l2_allocator_new() fails
      * 739792 : v4l2allocator: fix gst_v4l2_allocator_stop prototype
      * 739996 : videomixer: Drops a lot of frames, if one of the sources is live
      * 740040 : v4l2src: Fails in presence of V4L2_BUF_FLAG_ERROR
      * 740392 : rtspsrc: mikey base64 decoded key-mgmt leak
      * 740407 : qtmux limits capture to 4096x4096
      * 740633 : v4l2src: RW io-mode is broken
      * 740636 : v4l2src: framerate is not always set on driver
      * 740671 : aspectratiocrop: crop needs to be reset when video size changes
      * 740905 : v4l2: still has 1 include to linux/videodev.h
      * 741271 : rtph264pay: Buffer leak in H.264 payloader when using SPS/PPS
      * 741381 : rtph264pay: Race condition may cause crash when going from PAUSED- > READY
      * 741407 : deinterlace: in query_caps return only supported formats if filter is interlaced
      * 737579 : v4l2object: set colorspace for output devices
      * 739754 : v4l2bufferpool: Should validate that all memories are writeable before queueing back

GStreamer Plugins Bad:
      * 722764 : rawparse: fix SEEKING query handling
      * 729768 : mpegtsbase: Raise limit to read more bytes initially to find PCR
      * 739152 : gl/cocoa: build with GNUStep fails
      * 740191 : dvbbasesink: segfaults on 32-bit (rpi)
      * 740201 : gl/cocoa: Does not compile on OSX < 10.7 anymore
      * 740451 : srtpdec: leaks rtp/rtcp sink events
      * 740953 : configure.ac: unportable test(1) comparison operator
      * 741321 : opusparse: fix header parsing esp. of encoded output of libopus

GStreamer RTSP Server:
      * 739481 : rtsp-stream: leaks srtp decoder when leaving rtpbin
2015-01-03 18:09:30 +00:00
wiz
3517bed6b6 Add upstream bug report URL. 2014-12-01 08:13:04 +00:00
wiz
536b29bbe7 Update to 1.4.0:
This is GStreamer Base Plugins 1.4.0

Changes since 1.2:

New API:
 • GstMessageType has GST_MESSAGE_EXTENDED added. All types before
   that can be used together as a flags type as before, but from
   that message onwards the types are just counted incrementally.
   This was necessary to be able to add more message types.
   In 2.0 GstMessageType will just become an enum and not a flags
   type anymore.
 • GstDeviceMonitor for device probing, e.g. to list all available
   audio or video capture devices. This is the replacement for
   GstPropertyProbe from 0.10.
 • Events accumulate the running-time offset now when travelling
   through pads, as set by the gst_pad_set_offset() function. This
   allows to compensate for this in the QOS event for example.
 • GstBuffer has a new flag "tag-memory" that is set automatically
   when memory is added or removed to a buffer. This allows buffer
   pools to detect if they can recycle a buffer or need to reset
   it first.
 • GstToc has new API to mark GstTocEntries as loops.
 • A not-authorized resource error has been defined to notify
   applications that accessing the resource has failed because
   of missing authorization and to distinguish this case from others.
   This change is actually already in 1.2.4.
 • GstPad has a new flag "accept-intersect", that will let the default
   ACCEPT_CAPS query handler do an intersection instead of subset check.
   This is interesting for parser elements that can handle incomplete
   caps.
 • GstCollectPads has support for flushing and a default handler for
   SEEK events now.
 • New GstFlowAggregator helper object that simplifies handling of
   flow returns in elements with multiple source pads. Additionally
   GstPad now always stores the last flow return and provides an
   API to retrieve it.
 • GstSegment has new API to offset the running time by a specific
   value and this is used in GstPad to allow positive and negative
   offsets in gst_pad_set_offset() in all situations.
 • Support for h265/HEVC and VP8 has been added to the codec utils and codec
   parsers library, and was integrated into various elements.
 • API for adjusting the TLS validation of RTSP connection has been added.
 • The RTSP and SDP library has MIKEY (RFC 3830) support now, and
   there is API to distinguish between the different RTSP profiles.
 • API to access RTP time information and statistics.
 • Support for auxiliary streams was added to rtpbin.
 • Support for tiled, raw video formats has been added.
 • GstVideoDecoder and GstAudioDecoder have API to help aggregating tag
   events and merge custom tags into them consistently.
 • GstBufferPool has support for flushing now.
 • playbin/playsink has support for application provided audio and video
   filters.
 • GstDiscoverer has new and simplified API to get details about missing
   plugins and information to pass to the plugin installer.
 • The GL library was merged from gst-plugins-gl to gst-plugins-bad,
   providing a generic infrastructure for handling GL inside GStreamer
   pipelines and a plugin with some elements using these, especially
   a video sink. Supported platforms currently are Android, Cocoa (OS X),
   DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) and generic X11,
   Wayland and EGL platforms.
   This replaces eglglessink and also is supposed to replace osxvideosink.
 • New GstAggregator base class in gst-plugins-bad. This is supposed to
   replace GstCollectPads in the future and fix long-known shortcomings
   in its API. Together with the base class some elements are provided
   already, like a videomixer (compositor).


Major changes:
 • New plugins and elements:
   ∘ v4l2videodec element for accessing hardware codecs on
     platforms that make them accessible via V4L2, e.g.
     Samsung Exynos. This comes together with major refactoring
     of the existing V4L2 elements and the corresponding
     infrastructure.
     The v4l2videodec element replaces the mfcdec element.
   ∘ New downloadbuffer element that replaces the download
     buffering feature of queue2. Compared to queue2's code
     it is much simpler and only for this single use case.
     A noteworthy new feature is that it's downloading gaps
     in the already downloaded stream parts when nothing else
     is to be downloaded.
     This is now used by playbin when download buffering is
     enabled.
   ∘ rtpstreampay and rtpstreamdepay elements for transmitting
     RTP packets over a stream API (e.g. TCP) according to
     RFC 4571.
   ∘ rtprtx elements for standard compliant implementation of
     retransmissions, integrated into the rtpmanager plugin.
   ∘ audiomixer element that mixes multiple audio streams together
     into a single one while keeping synchronization. This is
     planned to become the replacement of the adder element.
   ∘ OpenNI2 plugin for 3D cameras like the Kinect camera.
   ∘ OpenEXR plugin for decoding high-dynamic-range EXR images.
   ∘ curlsshsink and curlsftpsink to write files via SSH/SFTP.
   ∘ videosignal, ivfparse and sndfile plugins ported from 0.10.
   ∘ avfvideosrc, vtdec and other elements were ported from 0.10 and
     are available on OS X and iOS now.

 • Other changes:
   ∘ gst-libav now uses libav 10.2, and gained support for H265/HEVC.
   ∘ Support for hardware codecs and special memory types has been
     improved with bugfixes and feature additions in various plugins
     and base classes.
   ∘ Various bugfixes and improvements to buffering in queue2 and
     multiqueue elements.
   ∘ dvbsrc supports more delivery mechanisms and other features
     now, including DVB S2 and T2 support.
   ∘ The MPEGTS library has support for many more descriptors.
   ∘ Major improvements to tsdemux and tsparse, especially time and
     seeking related.
   ∘ souphttpsrc now has support for keep-alive connections,
     compression, configurable number of retries and configuration
     for SSL certificate validation.
   ∘ hlsdemux has undergone major refactoring and works more
     reliable now and supports more HLS features like trick modes.
     Also fragments are pushed downstream while they're downloaded
     now instead of waiting for each fragment to finish.
   ∘ dashdemux and mssdemux are now also pushing fragments downstream
     while they're downloaded instead of waiting for each fragment to
     finish.
   ∘ videoflip can automatically flip based on the orientation tag.
   ∘ openjpeg supports the OpenJPEG2 API.
   ∘ waylandsink was refactored and should be more useful now. It also
     includes a small library which most likely is going to be removed
     in the future and will result in extensions to the GstVideoOverlay
     interface.
   ∘ gst-rtsp-server supports SRTP and MIKEY now.
   ∘ gst-libav encoders are now negotiating any profile/level settings
     with downstream via caps.
   ∘ Lots of fixes for coverity warnings all over the place.
   ∘ Negotiation related performance improvements.
   ∘ 800+ fixed bug reports, and many other bug fixes and other
     improvements everywhere that had no bug report.

Things to look out for:
 • The eglglessink element was removed and replaced by the glimagesink
   element.
 • The mfcdec element was removed and replaced by v4l2videodec.
 • osxvideosink is only available in OS X 10.6 or newer.
 • On Android the namespace of the automatically generated Java class
   for initialization of GStreamer has changed from com.gstreamer to
   org.freedesktop.gstreamer to prevent namespace pollution.
 • On iOS you have to update your gst_ios_init.h and gst_ios_init.m in
   your projects from the one included in the binaries if you used the
   GnuTLS GIO module before. The loading mechanism has slightly changed.
2014-08-08 21:25:41 +00:00
obache
0464e318b9 apply same patch as gst-plugin0.10-base to fix build on i386 without SSE/SSE2
support.
2013-05-06 06:08:43 +00:00
ryoon
caead1276f Import gst-plugins1-base-1.0.3 as multimedia/gst-plugins1-base.
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple Ogg/Vorbis playback to
complex audio (mixing) and video (non-linear editing) processing.

Applications can take advantage of advances in codec and filter technology
transparently.  Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.

GStreamer is released under the LGPL.

This package is part of the 'base' plugins for GStreamer.  It provides a
set of must-have plugins.
2012-11-29 08:22:29 +00:00