summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
...
* avvidenc: Fix error propagationEdward Hervey2019-11-291-1/+1
| | | | | Instead of returning the default return value (GST_FLOW_OK), actually return an error one (res vs ret).
* avdemux: Fix segmentation fault if long_name is NULLKevin JOLY2019-11-041-3/+8
| | | | | | Some plugins (like libcdio) registers empty long_name field. Calling strncmp on this field leads to a segmentation fault. Signed-off-by: Kevin Joly <joly.kevin25@gmail.com>
* avviddec: Fix huge leak caused by circular referenceSeungha Yang2019-10-291-11/+5
| | | | | | | | | AVBufferRef -> GstFFMpegVideoDecVideoFrame -> GstVideoCodecFrame -> AVBufferRef Instead of holding additional ref there, set read-only which would not be reused by ff_reget_buffer() Fixes: https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/63
* avvideenc,avvidedec: Filtering hardware en/decoder by flagSeungha Yang2019-10-252-32/+22
| | | | ... instead of filtering them by hardcoded string compare.
* avviddec: Enforce allocate new AVFrame per input frameSeungha Yang2019-10-241-0/+16
| | | | | | | | | | | ... if ffmpeg would reuse the allocated AVBuffer. Reused AVFrame by the ffmpeg seems to break our decoding flow since the reused AVFrame holds the initial opaque data (GstVideoCodecFrame in this case), so we couldn't trace the our in/out frames. To enforce get_buffer() call per output frame, hold another reference to the AVBuffer in order to mark the AVBuffer as not writable. Fixes: https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/62
* Remove autotools build systemTim-Philipp Müller2019-10-132-51/+0
|
* avviddec,avcodemap: Use new helper function for map color space informationSeungha Yang2019-09-242-172/+12
| | | | | ... between GStreamer and FFmpeg. Note that FFmpeg follows ISO/IEC 23001-8 defined color{matrix,transfer,primaries} values.
* avvidenc: timestamp output buffersMathieu Duponchelle2019-08-131-0/+11
| | | | Same approach as x264enc, with the one hour offset
* avauddec: Don't warn if drain is successfulDoug Nazar2019-08-011-0/+2
|
* avviddec: improve latency calculationMathieu Duponchelle2019-07-181-8/+22
| | | | | | | | | | | When thread_type is set to FF_THREAD_FRAME, per the documentation a latency of one frame per thread is introduced: <https://ffmpeg.org/ffmpeg-codecs.html>, search for thread_type. Additionally, we need in that case to calculate the automatic number of threads ourselves, so as to accurately calculate the latency.
* avviddec: Add thread-type propertySeungha Yang2019-07-182-9/+49
| | | | | | | | | The thread-type property allows specifying preferred multithreading methods by user. Note that FF_THREAD_FRAME may introduce additional latency especially on non-filesrc usecase, since it introduces a decoding delay of (number of threads) frames. https://bugzilla.gnome.org/show_bug.cgi?id=797254
* avvidenc: Close reference context before freeing itSebastian Dröge2019-07-151-0/+1
| | | | | | Otherwise we'll leak some memory. See https://gitlab.freedesktop.org/gstreamer/gst-libav/merge_requests/32
* avaudenc: fix memory leak of refcontext after finalize.Knut Andre Tidemann2019-07-121-0/+1
|
* avvidenc: Also set the repeat_pict flag correctly and take the TFF flag from ↵Sebastian Dröge2019-06-191-2/+5
| | | | caps if available
* avvidenc: Correctly signal interlaced input to ffmpeg when the input caps ↵Sebastian Dröge2019-06-191-2/+5
| | | | | | are interlaced Regression from 1e4529ced2dadbfed4ac10d639a45dbcb0660129
* avviddec: remove cdgraphics elementGuillaume Desmottes2019-05-291-1/+3
| | | | | It was never usable as we don't have a parser and we now have 'cdgdec' in gst-plugins-rs.
* avcodecmap,avviddec: Map bt2020-10, PQ and HLG transfer functionsSeungha Yang2019-05-242-1/+18
| | | | Map more transfer functions between Gstreamer and ffmpeg
* codecmap: Add caps for aptX and aptX-HDArun Raghavan2019-05-241-0/+10
|
* docs: Port to hotdocThibault Saunier2019-05-131-0/+1
|
* avviddec: Extract HDR information if anySeungha Yang2019-05-011-0/+112
| | | | | Convert mastering display information (a.k.a HDR static metadata) and content light level information provided by FFMPEG to Gstreamer.
* gstav: Use libavcodec util function for version checkYeongjin Jeong2019-04-291-1/+1
| | | | | | The version of libavutil is printed in the log instead of libavcodec because avutil_version() returns LIBAVUTIL_VERSION_INT. This can be confusing, so we should be replace it with avcodec_version().
* avauddec: Ensure drain even if codec has not delay capabilitiesYeongjin Jeong2019-04-291-19/+10
| | | | | There are decoders that need to be drained if they work on multi-threads, even if AV_CODEC_CAP_DELAY is not set.
* avviddec: Ensure drain even if codec has not delay capabilitiesYeongjin Jeong2019-04-291-17/+8
| | | | | There are decoders that need to be drained if they work on multi-threads, even if AV_CODEC_CAP_DELAY is not set.
* avcfg: Override type of bitrate property from int64 to intSebastian Dröge2019-04-091-5/+16
| | | | | | | | | | | See https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/41#note_142808 The switch to the new ffmpeg property system changed the type of the bitrate property from int to int64, which potentially breaks many existing applications at runtime as properties are usually set via g_object_set(). As such, override the type to int until GStreamer 2.0.
* avviddec: do not add 708 caption meta if already existsAaron Boxer2019-04-011-5/+28
| | | | | (this is only used for CEA 708 raw data). another element such as mpegvideoparse may have already added the meta.
* avvidenc: pass Closed Caption metadata to libavMathieu Duponchelle2019-03-231-0/+21
|
* avauddec: fix decoding of APE and Cook audioTim-Philipp Müller2019-03-042-20/+15
| | | | | | | | | | | | | | | | | | | .. and other formats where ffmpeg gives us multiple subframes per input frame. Since we now support non-interleaved audio, we can't just concat buffers any more. Also, audio metas won't be combined when buffers are merged, so when we push out the combined buffer we'll look at the meta describing only the first subframe and think it covers the whole frame leading to stutter/gaps in the output. We could fix this by copying the output data into a new buffer when we merge buffers, but that's suboptimal, so let's add some API to GstAudioDecoder to push out subframes and use that instead. https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/49
* avdemux: fix negative pts if start_time is bigger than the tsGuillaume Desmottes2019-02-211-2/+8
| | | | | | | | | | The start time is supposed to be the ts of the first frame. FFmpeg uses fractions to represent timestamps and the start time may use a different base than the frame pts. So we may end up having the start time bigger than the pts because of rounding when converting to gst ts. See https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/51 for details.
* avcfg: Fix AVOptionRanges leakSeungha Yang2019-01-131-4/+6
| | | | It must be freed with av_opt_freep_ranges as documented.
* codecmap: Add mapping for Voxware metasoundEdward Hervey2018-11-081-0/+6
| | | | Allows actually decoding such streams :)
* avcfg: Ensure that ternary operator always evaluates to int64Nirbheek Chauhan2018-10-161-2/+2
| | | | | | | | | | | When building with MSVC, if the 3rd operator is a double, the entire expression always promoted double, and is then cast to int64. When TRUE, this evaluates to (gint64) (gdouble) (INT64_MAX) which overflows to INT64_MIN on MSVC, but not on C99 compilers. This causes us to fail the g_return_if_fail inside g_param_spec_int64 when built with MSVC.
* avdemux: Expose IFF container supportArun Raghavan2018-10-121-1/+2
| | | | | | | | | | This exposes support for the "iff" demuxer. This is a general purpose format, and the reason to expose this now is to allow reading DSD data (which is supported via a variant called DSDIFF). More information at: https://wiki.multimedia.cx/index.php?title=IFF https://www.loc.gov/preservation/digital/formats/fdd/fdd000245.shtml
* meson: Generate a pkgconfig file for gstlibavNirbheek Chauhan2018-10-091-1/+2
| | | | | | This matches all other plugins in the other gstreamer repos. This is also necessary for generating the correct libtool archive (.la) files in Cerbero which are needed for static linking on Android and iOS.
* avviddec: Remove unneeded checkEdward Hervey2018-09-211-7/+5
| | | | | | | frame is always valid in this function (but wasn't before the refactoring from a few months ago). CID #1439540
* avcfg: Simplify codeEdward Hervey2018-09-211-75/+70
| | | | | | | The existence of 'opt' is checked, the remainder of the code can therefore rely on it being valid. CID #1439537
* decoders: fix drainingMathieu Duponchelle2018-07-312-6/+19
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796900
* avmux: Place pva case after generic caseGeorg Ottinger2018-07-261-11/+11
| | | | | | | | | | | | | In the function gst_ffmpeg_formatid_get_codecids() in the if / else if construct the special case !strcmp (format_name, "pva") should be handled before the generic case (plugin->audio_codec != AV_CODEC_ID_NONE) || (plugin->video_codec != AV_CODEC_ID_NONE) This patch fixes the ordering. I stumbled accorss this issue while adding a new format to gst_ffmpeg_formatid_get_codecids() https://bugzilla.gnome.org/show_bug.cgi?id=796738
* avauddec: add support for decoding in non-interleaved layoutGeorge Kiagiadakis2018-07-233-93/+122
| | | | | | | | | | | | This removes the internal interleave loop and always negotiates the native output layout of the libav decoder. Users can use audioconvert to interleave if necessary. Special care has been taken to leave the encoder unaffected by the changes in avcodecmap, since GstAudioEncoder doesn't support the non-interleaved layout yet. https://bugzilla.gnome.org/show_bug.cgi?id=705977
* libav: Fix symbol redefine build errorSeungha Yang2018-07-194-6/+10
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796827
* Remove obsolete #if 0-ed codeTim-Philipp Müller2018-07-182-10/+0
|
* Remove swscale plugin codeTim-Philipp Müller2018-07-173-767/+1
| | | | This has been disabled for 5.5 years, time to remove it.
* avcfg: Properly initalize GValueEdward Hervey2018-07-161-1/+3
| | | | .. to the expected property value type.
* avcfg: actually remove call to g_object_getvMathieu Duponchelle2018-07-131-1/+0
| | | | (Sorry about that)
* av*dec: Ignore decoding errorsMathieu Duponchelle2018-07-132-6/+4
| | | | | | | | We were ignoring these before the port to 4.0, interpreting them as GST_FLOW_ERROR / GST_ELEMENT_ERROR causes check failures. We should start using GST_*_DECODER_ERROR in latter commits, for now simply restore the previous behaviour.
* avcfg: use g_object_get_property, not g_object_getvMathieu Duponchelle2018-07-131-0/+1
| | | | | I simply confused those two, we didn't need g_object_getv here anyway.
* avcfg: ignore some generic propertiesMathieu Duponchelle2018-07-131-0/+15
| | | | | | | We expose profile, level and colorimetry / colorspaces through caps. https://bugzilla.gnome.org/show_bug.cgi?id=792900
* avcfg: add skip support to overrides systemMathieu Duponchelle2018-07-131-2/+8
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=792900
* auddec: fix luck-based sinkpad accessMathieu Duponchelle2018-07-131-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=792900
* Remove obsolete scale and resample sourcesMathieu Duponchelle2018-07-132-708/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=792900
* avvidenc: port to send_frame / receive_packetMathieu Duponchelle2018-07-131-99/+115
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=792900