Commit Graph

70 Commits

Author SHA1 Message Date
Hendrik Leppkes
151aa2ebff Merge commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba'
* commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba':
  lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 16:35:28 +02:00
Vittorio Giovara
2268db2cd0 lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields
The new fields can be accessed directly and are more intelligible.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-07 12:37:47 +02:00
Michael Niedermayer
29d147c94d Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
  lavc: Consistently prefix input buffer defines

Conflicts:
	doc/examples/decoding_encoding.c
	libavcodec/4xm.c
	libavcodec/aac_adtstoasc_bsf.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.h
	libavcodec/asvenc.c
	libavcodec/avcodec.h
	libavcodec/avpacket.c
	libavcodec/dvdec.c
	libavcodec/ffv1enc.c
	libavcodec/g2meet.c
	libavcodec/gif.c
	libavcodec/h264.c
	libavcodec/h264_mp4toannexb_bsf.c
	libavcodec/huffyuvdec.c
	libavcodec/huffyuvenc.c
	libavcodec/jpeglsenc.c
	libavcodec/libxvid.c
	libavcodec/mdec.c
	libavcodec/motionpixels.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/noise_bsf.c
	libavcodec/nuv.c
	libavcodec/nvenc.c
	libavcodec/options.c
	libavcodec/parser.c
	libavcodec/pngenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/qsvdec.c
	libavcodec/svq1enc.c
	libavcodec/tiffenc.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavcodec/utvideoenc.c
	libavcodec/vc1dec.c
	libavcodec/wmalosslessdec.c
	libavformat/adxdec.c
	libavformat/aiffdec.c
	libavformat/apc.c
	libavformat/apetag.c
	libavformat/avidec.c
	libavformat/bink.c
	libavformat/cafdec.c
	libavformat/flvdec.c
	libavformat/id3v2.c
	libavformat/isom.c
	libavformat/matroskadec.c
	libavformat/mov.c
	libavformat/mpc.c
	libavformat/mpc8.c
	libavformat/mpegts.c
	libavformat/mvi.c
	libavformat/mxfdec.c
	libavformat/mxg.c
	libavformat/nutdec.c
	libavformat/oggdec.c
	libavformat/oggparsecelt.c
	libavformat/oggparseflac.c
	libavformat/oggparseopus.c
	libavformat/oggparsespeex.c
	libavformat/omadec.c
	libavformat/rawdec.c
	libavformat/riffdec.c
	libavformat/rl2.c
	libavformat/rmdec.c
	libavformat/rtpdec_latm.c
	libavformat/rtpdec_mpeg4.c
	libavformat/rtpdec_qdm2.c
	libavformat/rtpdec_svq3.c
	libavformat/sierravmd.c
	libavformat/smacker.c
	libavformat/smush.c
	libavformat/spdifenc.c
	libavformat/takdec.c
	libavformat/tta.c
	libavformat/utils.c
	libavformat/vqf.c
	libavformat/westwood_vqa.c
	libavformat/xmv.c
	libavformat/xwma.c
	libavformat/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Michael Niedermayer
444e9874a7 Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
  lavc: AV-prefix all codec capabilities

Conflicts:
	cmdutils.c
	ffmpeg.c
	ffplay.c
	libavcodec/8svx.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/adpcm.c
	libavcodec/alac.c
	libavcodec/atrac3plusdec.c
	libavcodec/bink.c
	libavcodec/dnxhddec.c
	libavcodec/dvdec.c
	libavcodec/dvenc.c
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c
	libavcodec/fic.c
	libavcodec/flacdec.c
	libavcodec/flacenc.c
	libavcodec/flvdec.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/gifdec.c
	libavcodec/h261dec.c
	libavcodec/hevc.c
	libavcodec/iff.c
	libavcodec/imc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libvo-aacenc.c
	libavcodec/libvorbisenc.c
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpegaudiodec_float.c
	libavcodec/msmpeg4dec.c
	libavcodec/mxpegdec.c
	libavcodec/nvenc_h264.c
	libavcodec/nvenc_hevc.c
	libavcodec/pngdec.c
	libavcodec/qpeg.c
	libavcodec/ra288.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/sp5xdec.c
	libavcodec/takdec.c
	libavcodec/tiff.c
	libavcodec/tta.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/vp6.c
	libavcodec/vp9.c
	libavcodec/wavpack.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Michael Niedermayer
94d68a41fa Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
  lavc: AV-prefix all codec flags

Conflicts:
	doc/examples/muxing.c
	ffmpeg.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/ac3enc_float.c
	libavcodec/atrac1.c
	libavcodec/atrac3.c
	libavcodec/atrac3plusdec.c
	libavcodec/dcadec.c
	libavcodec/ffv1enc.c
	libavcodec/h264.c
	libavcodec/h264_loopfilter.c
	libavcodec/h264_mb.c
	libavcodec/imc.c
	libavcodec/libmp3lame.c
	libavcodec/libtheoraenc.c
	libavcodec/libtwolame.c
	libavcodec/libvpxenc.c
	libavcodec/libxavs.c
	libavcodec/libxvid.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegaudiodec_template.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/nellymoserdec.c
	libavcodec/nellymoserenc.c
	libavcodec/nvenc.c
	libavcodec/on2avc.c
	libavcodec/options_table.h
	libavcodec/opus_celt.c
	libavcodec/pngenc.c
	libavcodec/ra288.c
	libavcodec/ratecontrol.c
	libavcodec/twinvq.c
	libavcodec/vc1_block.c
	libavcodec/vc1_loopfilter.c
	libavcodec/vc1_mc.c
	libavcodec/vc1dec.c
	libavcodec/vorbisdec.c
	libavcodec/vp3.c
	libavcodec/wma.c
	libavcodec/wmaprodec.c
	libavcodec/x86/hpeldsp_init.c
	libavcodec/x86/me_cmp_init.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Vittorio Giovara
059a934806 lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Vittorio Giovara
def97856de lavc: AV-prefix all codec capabilities
Express bitfields more simply.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
7c6eb0a1b7 lavc: AV-prefix all codec flags
Convert doxygen to multiline and express bitfields more simply.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Michael Niedermayer
495eee0123 Merge commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370'
* commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370':
  Deprecate avctx.coded_frame

Conflicts:
	ffmpeg.c
	libavcodec/a64multienc.c
	libavcodec/asvenc.c
	libavcodec/cljrenc.c
	libavcodec/dpxenc.c
	libavcodec/gif.c
	libavcodec/mpegvideo_enc.c
	libavcodec/nvenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/pthread_frame.c
	libavcodec/rawenc.c
	libavcodec/sunrastenc.c
	libavcodec/tiffenc.c
	libavcodec/version.h
	libavcodec/xbmenc.c
	libavcodec/xwdenc.c
	libavdevice/v4l2.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-21 01:17:15 +02:00
Michael Niedermayer
b1fad7ac20 Merge commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534'
* commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534':
  Gather all coded_frame allocations and free functions to a single place

Conflicts:
	libavcodec/a64multienc.c
	libavcodec/asvenc.c
	libavcodec/cljrenc.c
	libavcodec/dpxenc.c
	libavcodec/dvenc.c
	libavcodec/gif.c
	libavcodec/huffyuvenc.c
	libavcodec/jpeglsenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/libtheoraenc.c
	libavcodec/libvpxenc.c
	libavcodec/mpegvideo_enc.c
	libavcodec/nvenc.c
	libavcodec/pngenc.c
	libavcodec/proresenc_kostya.c
	libavcodec/sunrastenc.c
	libavcodec/tiffenc.c
	libavcodec/utils.c
	libavcodec/utvideoenc.c
	libavcodec/v210enc.c
	libavcodec/v410enc.c
	libavcodec/xbmenc.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20 23:43:05 +02:00
Vittorio Giovara
40cf1bbacc Deprecate avctx.coded_frame
The rationale is that coded_frame was only used to communicate key_frame,
pict_type and quality to the caller, as well as a few other random fields,
in a non predictable, let alone consistent way.

There was agreement that there was no use case for coded_frame, as it is
a full-sized AVFrame container used for just 2-3 int-sized properties,
which shouldn't even belong into the AVCodecContext in the first place.

The appropriate AVPacket flag can be used instead of key_frame, while
quality is exported with the new AVPacketSideData quality factor.
There is no replacement for the other fields as they were unreliable,
mishandled or just not used at all.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 15:06:50 +01:00
Vittorio Giovara
d6604b29ef Gather all coded_frame allocations and free functions to a single place
Allocating coded_frame is what most encoders do anyway, so it makes
sense to always allocate and free it in a single place. Moreover a lot
of encoders freed the frame with av_freep() instead of the correct API
av_frame_free().

This bring uniformity to encoder behaviour and prevents applications
from erroneusly accessing this field when not allocated. Additionally
this helps isolating encoders that export information with coded_frame,
and heavily simplifies its deprecation.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 14:16:15 +01:00
Steve Borho
b012bd5068 libavcodec/x265: detect csps in libx265_encode_init_csp()
Without this change, if you link with an 8bit libx265 and try to specify
a 10bit input color space via:

  ffmpeg -i in.mov -c:v libx265 -pix_fmt yuv420p10le out.mp4

It will error with:

  Incompatible pixel format 'yuv420p10le' for codec 'libx265',
  auto-selecting format 'yuv420p'

With this fix, it will learn if a 10bit libx265 is available at startup,
and thus allow 10bit input color spaces.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-05-18 15:27:51 -03:00
Gopu Govindaswamy
3b5e5e6a29 libx265: Use the Multi-library Interface
Use the Multi-library interface to load at runtime x265 libraries
supporting alternative bit depths (e.g. 8bit and 16bit).

The linked library will try to load the library supporting the
pixel format if it is not supported by itself.

Fallback requesting the native library (passing 0 to x265_api_get) if
a library supporting the requested bit depth is not available.

Signed-off-by: Gopu Govindaswamy <gopu@multicorewareinc.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-13 17:14:50 +02:00
Gopu Govindaswamy
94c20de429 avcodec/libx265: use x265 Multi-library Interface to query the API
ffmpeg can now use the x265 multi-library interface to make a runtime
selection between a number of libx265 libraries (perhaps 8bpp and 16bpp).

ffmpeg will link to one build of libx265 (statically or
dynamically) and this linked version of libx265 will support one
bit-depth (8 or 10 bits). At runtime, ffmpeg now has the option to request the
encoder to use a different bit depth(8 or 10). If the requested bitdepth
is zero, or if it matches the bitdepth of the system default libx265 (the
currently linked library), then this library will be used for encode.
If ffmpeg requests a different bit-depth, the linked libx265 will attempt
to dynamically bind a shared library with the requested bit-depth from the install
location (default or user-specified).

new x265 API:
     const x265_api* api = x265_api_get(int bitDepth);
     x265_api - holds the libx265 public API functions
     bitDepth - requested API for 8bpp or 16bpp

     note: Use 0 to indicate native bit depth of the linked libx265 and
           x265_api_get(0) is guaranteed to return a non-null pointer

Signed-off-by: Gopu Govindaswamy <gopu@multicorewareinc.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-05-11 16:15:23 +01:00
Michael Niedermayer
1caff5731d Merge commit '04070dbca0688ab1e24528ce5c135254a9a79c47'
* commit '04070dbca0688ab1e24528ce5c135254a9a79c47':
  libx265: Fix 'braces around scalar initializer' warning

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-06 21:46:52 +02:00
Vittorio Giovara
04070dbca0 libx265: Fix 'braces around scalar initializer' warning
x265 Reordered the x265_picture fields in the commit

51b1518de2 (diff-945b5354d8767dfac13334f2d22cf58fR107)

Now the first field is an integer and not an array.
2015-05-06 14:53:29 +01:00
Michael Niedermayer
0842df2619 Merge commit 'ec89f35e3e5eb9ec5221266e801efeee7ecab4df'
* commit 'ec89f35e3e5eb9ec5221266e801efeee7ecab4df':
  x265: Map color parameters

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-15 11:57:38 +02:00
Luca Barbato
ec89f35e3e x265: Map color parameters 2015-04-15 09:48:48 +02:00
James Almer
bbdb50d7a8 libx265: print supported presets and tunes on error
Based on code from libavcodec/libx264.c

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-04-11 11:13:28 -04:00
James Almer
61090db29a avcodec/libx265: print supported presets and tunes on error
Based on code from libavcodec/libx264.c

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-10 16:47:29 -03:00
Michael Niedermayer
31048d48b0 avcodec/libx265: export chosen picture types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-04-05 12:32:07 -04:00
Michael Niedermayer
2ddedfd39c avcodec/libx265: export choosen picture types
Fixes part of ticket 4285

Reviewed-by Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-31 20:21:10 +02:00
Derek Buitenhuis
8b96e8dd28 libx265: Add crf private option
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-02-18 10:21:56 -05:00
Derek Buitenhuis
b920db6731 libx265: Reduce the scope of some variables
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-02-18 10:21:54 -05:00
Derek Buitenhuis
d617e77cec libx265: Add crf private option
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-02-18 10:18:12 -05:00
Derek Buitenhuis
2de887e45b libx265: Reduce the scope of some variables
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-02-18 10:16:50 -05:00
Derek Buitenhuis
41e983f1a6 libx265: Pass through user-set frame type
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-01-22 16:30:27 +00:00
Derek Buitenhuis
6341ab0ad3 libx265: Pass through user-set frame type
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-01-22 16:29:30 +00:00
Michael Niedermayer
d10d1b8655 libx265: enable psnr reporting when requested by the user
This is similar to what is done in libx264.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-10-01 14:31:48 +01:00
Michael Niedermayer
3956b12fde avcodec/libx265: enable psnr reporting when requested by the user
This is similar to what is done in libx264.c

Fixes Ticket3567

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-28 04:14:43 +02:00
Michael Niedermayer
eacf42dd50 Merge commit '4912b634b517c8acfc476c5d47f10be83fe7e18b'
* commit '4912b634b517c8acfc476c5d47f10be83fe7e18b':
  x265: Use the encoder defaults

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 12:10:09 +02:00
Luca Barbato
4912b634b5 x265: Use the encoder defaults
Reset the settings as it is done for x264.
2014-09-03 02:14:17 +02:00
Derek Buitenhuis
ceada893be libx265: Remove unneeded bit depth check
This is no longer needed since the version bump.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
61a344916d libx265: Add 4:2:2 support
It is also not final yet, so require -strict experimental.

Requires a bump to version 17.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
180e6b4806 libx265: Actually use X265_API_IMPORTS
It obvously needs to be above the include statement.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
7ed89addb7 libx265: Remove unneeded bit depth check
This is no longer needed since the version bump.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:43:31 +01:00
Derek Buitenhuis
6ee95af8a1 libx265: Add 4:2:2 support
It is also not final yet, so require -strict experimental.

Requires a bump to version 17.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 13:53:34 +01:00
Derek Buitenhuis
4e9b46b056 libx265: Actually use X265_API_IMPORTS
It obvously needs to be above the include statement.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 13:53:34 +01:00
Derek Buitenhuis
cdd21f1f03 libx265: Only set the SAR if it is valid
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 16:49:03 +01:00
Derek Buitenhuis
fcc43e02d3 libx265: Use 16-bit SAR
The spec says it is 16 bits.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 16:49:03 +01:00
Derek Buitenhuis
25fbfeed98 libx265: Only set the SAR if it is valid
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:28:59 +01:00
Derek Buitenhuis
cd0ac6f6e5 libx265: Use 16-bit SAR
The spec says it is 16 bits.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:28:55 +01:00
Derek Buitenhuis
8945dcbb52 libx265: Use x265_param_parse to set the SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:08:01 +01:00
Derek Buitenhuis
4a2226451e libx265: Use x265_param_parse to set the SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:06:45 +01:00
Marcus Gustafsson
c042cbc3a6 libx265: Use the repeat headers flag when not using global headers
This allows proper muxing and seeking in things like MPEG-TS, by
placing headers by random access points.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 16:24:05 +01:00
Marcus Gustafsson
1b28d9b357 libx265: Use the repeat headers flag when not using global headers
This allows proper muxing and seeking in things like MPEG-TS, by
placing headers by random access points.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 13:13:46 +01:00
Derek Buitenhuis
ecb5b9c098 libx265: Only use one memcpy for headers
They're guaranteed by the x265 API to be contiguous in memory.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:28:20 +00:00
Derek Buitenhuis
206d5330f6 libx265: Simple cosmetic fix
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:28:11 +00:00
Derek Buitenhuis
21a561176e libx265: Only use one memcpy for headers
They're guaranteed by the x265 API to be contiguous in memory.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:27:41 +00:00