Commit graph

101 commits

Author SHA1 Message Date
Mathieu Duponchelle
797c7e1bdf avcodecmap: use framerate instead of time_base when decoding
Documentation for AVCodecContext::time_base:

> decoding: the use of this field for decoding is deprecated.
> Use framerate instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/74>
2020-05-27 16:29:27 +02:00
Sebastian Dröge
63555e5cc7 avcodecmap: Add some more comments about the assumptions in the ffmpeg code about H264/H265/AAC 2020-01-24 16:14:28 +02:00
Sebastian Dröge
34b1eb117f avdemux: Only set stream-format for H264/H265/AAC when we have a context
Otherwise we don't know yet whether we'll have extradata/codec_data, so
can't decide on the stream-format yet.
2020-01-24 11:05:53 +00:00
Haihao Xiang
4f51000920 avivf_mux: support VP9 and AV1
Besides vp8, ff_ivf_muxer supports VP9 and AV1
2020-01-24 10:15:44 +00:00
Sebastian Dröge
c057fef347 avcodecmap: Set AAC/H264/H265 stream-format for demuxer/encoder situations if no codec_data is provided
This fixes output of the above formats from demuxers.
2020-01-24 08:50:53 +00:00
Seungha Yang
40f5953828 avviddec,avcodemap: Use new helper function for map color space information
... between GStreamer and FFmpeg. Note that FFmpeg follows ISO/IEC 23001-8
defined color{matrix,transfer,primaries} values.
2019-09-24 23:52:11 +09:00
Seungha Yang
2b50a0ce93 avcodecmap,avviddec: Map bt2020-10, PQ and HLG transfer functions
Map more transfer functions between Gstreamer and ffmpeg
2019-05-24 20:44:12 +09:00
Arun Raghavan
597578ca41 codecmap: Add caps for aptX and aptX-HD 2019-05-24 09:51:44 +00:00
Edward Hervey
9d41d2747b codecmap: Add mapping for Voxware metasound
Allows actually decoding such streams :)
2018-11-08 16:33:57 +01:00
Georg Ottinger
962d2a78fe avmux: Place pva case after generic case
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
2018-07-26 16:22:30 -04:00
George Kiagiadakis
4596249496 avauddec: add support for decoding in non-interleaved layout
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
2018-07-23 16:16:10 +03:00
Mathieu Duponchelle
1e4529ced2 Refactor avcfg / avvidenc
We were previously installing hardcoded properties for all
video encoders, refactor to instead use FFmpeg's AVOption API.

avvidenc still exposes a few properties related to the pass
mechanism: while the AVOption API allows specifying both passes
as flags at the same time, this is not practical in GStreamer's
context, where passes need to be run separately using a stats file.

https://bugzilla.gnome.org/show_bug.cgi?id=792900
2018-07-13 00:53:26 +02:00
Nicolas Dufresne
aa724e2f14 Use AV_ namespace for all CODEC_ macro
The remaining use of CODEC_ are codec flags that has been moved into the
new codec private properties or have been deperated. Will be fixed in
later patches.

https://bugzilla.gnome.org/show_bug.cgi?id=792900
2018-07-13 00:53:26 +02:00
Nicolas Dufresne
7b3e41e20b Use AV_ namespace for INPUT_BUFFER_PADDING_SIZE
https://bugzilla.gnome.org/show_bug.cgi?id=792900
2018-07-13 00:53:26 +02:00
Mathieu Duponchelle
a68dbb9c82 Expose support for DSD
DSD is usually wrapped in DSF, for which we now also expose the
demuxer.

https://bugzilla.gnome.org/show_bug.cgi?id=721186
2018-05-06 12:49:47 +02:00
Mathieu Duponchelle
d5b0305241 Enable gif format, and make it so avdemux_gif and avdec_gif can autoplug
https://bugzilla.gnome.org/show_bug.cgi?id=784684
2018-02-12 08:27:53 +01:00
Jan Alexander Steffens (heftig)
a771795005 avdemux: Whitelist the demuxers required for GC/Wii/WiiU ADPCM streams
Required to play .brstm (GameCube/Wii) and .bfstm (Wii U) files. Needs
at least avdec_adpcm_thp too, but that one is already accessible.

https://bugzilla.gnome.org/show_bug.cgi?id=789139
2017-10-19 16:50:38 +02:00
Mathieu Duponchelle
2bb0dc16d6 gstavcodecmap: Do not require a channel-mask
.. for mono or stereo input.

https://bugzilla.gnome.org/show_bug.cgi?id=786401
2017-08-17 14:49:12 +02:00
Arun Raghavan
2e25f166fc avvidenc: Classify image encoders with "Image" instead of "Video"
This allows gst_video_convert_sample*() to work with codecs for which we
have libav encoders (such as BMP).

https://bugzilla.gnome.org/show_bug.cgi?id=780317
2017-03-21 09:49:45 +05:30
Sebastian Dröge
fecf973bc9 avcodecmap: Add mappings for I420/I422/Y444_12LE/BE and GBRA
https://bugzilla.gnome.org/show_bug.cgi?id=780100
2017-03-16 17:22:51 +02:00
Emeric Grange
d666041a51 avcodecmap: Add GBR_12LE/BE and GBRA_12LE/BE pixel format mapping for CineForm decoder 2017-03-16 16:10:23 +02:00
Sebastian Dröge
887e45e6cc avcodecmap: Add mapping for CineForm HD / CFHD codec
https://bugzilla.gnome.org/show_bug.cgi?id=780024
2017-03-14 18:02:23 +02:00
Sebastian Dröge
cfd7503959 avcodecmap: Add mapping for Flash Screen2 codec 2016-12-04 23:39:00 +02:00
Edward Hervey
9258b8ba53 avcodecmap: Add support for packed 32bit RGBx variants
We can support those, so just add the mapping
2016-11-24 17:15:14 +01:00
Sebastian Dröge
ac4a47bacb av: Enable IVF demuxer (and muxer)
It works and is a quite unimportant format, we should get rid of our
parser to reduce the amount of code to maintain.
2016-11-16 17:06:54 +02:00
Sebastian Dröge
2c38c99a86 avcodecmap: It's interlace-mode, not interlaced-mode 2016-11-04 16:22:07 +02:00
Sebastian Dröge
7f39f69c7c avcodecmap: Add variant to the ProRes caps
https://bugzilla.gnome.org/show_bug.cgi?id=769048
2016-11-01 20:42:52 +02:00
Sebastian Dröge
d2e65754b3 avcodecmap: Configure field order in the context if we can
https://bugzilla.gnome.org/show_bug.cgi?id=771376
2016-11-01 20:42:52 +02:00
Sebastian Dröge
fb9fea0223 avvidenc: Set colorimetry information in the context if known
https://bugzilla.gnome.org/show_bug.cgi?id=750882
2016-11-01 20:42:52 +02:00
Tim-Philipp Müller
efe5797041 avcodecmap: Add mapping for Opus audio decoder
Make avdec_opus work.

https://bugzilla.gnome.org/show_bug.cgi?id=773672
2016-11-01 19:05:37 +02:00
Sebastian Dröge
8443af343e av: Cast AVContext::bit_rate to a guint before passing to varargs functions
We expect it to be a int or uint, however it changed the type to a
int64_t in later versions of ffmpeg. As such it would be passed as a 64
bit value to varargs functions, while the consumer of the arguments
assumes only 32 bits. This causes crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=771092
2016-09-14 11:20:48 +02:00
Tim-Philipp Müller
e5ceb287d3 libav: fix confusing 'insane framerate' debug log message
Usually means no framerate / variable framerate. Also the
fraction arguments were swapped.
2016-08-20 10:54:07 +01:00
Sebastian Dröge
445a301844 avcodecmap: Add mapping for G729 caps
https://bugzilla.gnome.org/show_bug.cgi?id=766333
2016-05-13 10:27:38 +03:00
Sebastian Dröge
34fe6af6da avcodecmap: Only set the bitrate if we actually got it from the caps
Otherwise we set a random value from the stack as bitrate. The default (0)
is a better choice and doesn't upset valgrind.
2016-03-11 15:44:16 +02:00
Sebastian Dröge
46fb2e9f11 libav: Bitrate field changed from int to int64_t, fix compiler warnings
Cast it to a gint64 for now though, as otherwise we will fail compilation
with ffmpeg 2.8.

https://bugzilla.gnome.org/show_bug.cgi?id=757498
2016-01-16 17:23:37 +02:00
Andreas Cadhalpun
6235a04ef3 libav: Remove usage of deprecated API
https://bugzilla.gnome.org/show_bug.cgi?id=757498
2016-01-16 16:47:40 +02:00
Sebastian Dröge
8e466b73d8 avcodecmap: Add special mapping for mono channel layouts
In ffmpeg this is the same as FRONT_CENTER, but we distinguish between
FRONT_CENTER and MONO in GStreamer. Add an explicit mapping for this special
case in the translations functions.

https://bugzilla.gnome.org/show_bug.cgi?id=759846
2015-12-24 13:10:55 +01:00
Thiago Santos
1356ff84b3 avcodecmap: add jpeg2000 decoder mapping
Map the 3 possible jpeg2000 caps to JPEG2000 codec id
2015-10-11 05:27:57 -03:00
Sebastian Dröge
eedefc9f6b avcodecmap: Don't allocate dummy codec data anymore, it causes crashes nowadays
Multithreaded encoders are going to free this dummy codec data twice, e.g.
with this pipeline
  gst-launch-1.0 videotestsrc num-buffers=40 ! \
    videoconvert ! avenc_mjpeg ! fakesink
2015-10-03 18:25:35 +01:00
James Smith
f92bf2618c Add support for musepack (mpc) sv8 audio
https://bugzilla.gnome.org/show_bug.cgi?id=732682
2015-07-22 09:44:27 +01:00
Wim Taymans
8da0a61dc0 codecmap: add vp9 mapping 2015-06-26 17:30:25 +02:00
Nicolas Dufresne
a33a1bf6e4 avcodec: Check against codec format list
There exist few formats (deprecated though) used by mjpeg decoder
and encoder that maps to the same GStreamer format. To properly
pick the right format, also lookup each Codec list before accepting
the format. This fixes error when trying to use mjpeg encoder.

Note that this may results in faded colors. In fact, these special
format are meant to specify that this is full range YUV. Colorimetry
in gst-libav is not yet implemented, hence is ignored in general. So
I think it's fine to first fix the issue before addressing the missing
feature.

https://bugzilla.gnome.org/show_bug.cgi?id=750398
2015-06-11 10:23:33 -04:00
Aurélien Zanelli
00ff477f29 avcodecmap: Use video/x-cavs mime type instead of video/x-gst-av-cavs
More generic mime-type which can be used by other decoders than libav.

https://bugzilla.gnome.org/show_bug.cgi?id=727731
2015-06-02 08:54:46 +01:00
Sebastian Dröge
4f7d873c4c libav: Add support for 10 bit planar AYUV formats 2015-03-10 10:18:53 +01:00
Sebastian Dröge
d3a2a9a951 libav: Change from deprecated PIX_FMT_* to AV_PIX_FMT_* 2015-03-10 10:17:45 +01:00
Wim Taymans
57b1970395 avcodecmap: place supported profiles in mpeg4 caps
Place the supported profiles in the srcpad caps of the mpeg4 encoder.
2014-06-06 16:54:06 +02:00
Wim Taymans
9d0e1ecedc avcodecmap: remove deprecated media types
Remove x-xvid and x-3ivx. The last place where they were used are
in the srcpad caps of the decoder but since the decoder will never
actually output those caps we can safely remove them.
2014-06-06 16:54:06 +02:00
Wim Taymans
df8674f6c3 codecmap: don't expose more deprecated media types
x-xvid is deprecated, we don't want to expose it on the encoder, just
leave it only exposed on the decoder.
2014-06-06 16:54:06 +02:00
Wim Taymans
fd7ba73304 Revert "avcodecmap: do more reverse mapping of MPEG4"
This reverts commit e066785ad0.

x-xvid and x-3ivx are removed, we don't want to expose them again.
2014-06-06 16:54:06 +02:00
Wim Taymans
2ef3c94b82 avcodecmap: handle simple and advanced-simple profile in MPEG4
Always enable 4MV flag for MPEG4
Pare the profile property and enable more features for advanced-simple
profile.
video/x-xvid is advanced-simple profile so enable more features.
We now also support encoding of video/x-xvid so add this to the caps.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=651320
2014-05-29 18:24:20 +02:00