lavf: add AVFMT_FLAG_BITEXACT.
[ffmpeg.git] / doc / APIchanges
index 24defe4..57ef04f 100644 (file)
@@ -2,33 +2,322 @@ Never assume the API of libav* to be stable unless at least 1 month has passed
 since the last major version increase.
 
 The last version increases were:
 since the last major version increase.
 
 The last version increases were:
-libavcodec:    2012-01-27
-libavdevice:   2011-04-18
-libavfilter:   2012-06-22
-libavformat:   2012-01-27
+libavcodec:    2013-03-xx
+libavdevice:   2013-03-xx
+libavfilter:   2013-12-xx
+libavformat:   2013-03-xx
 libavresample: 2012-10-05
 libswscale:    2011-06-20
 libavresample: 2012-10-05
 libswscale:    2011-06-20
-libavutil:     2012-10-22
+libavutil:     2013-12-xx
 
 
 API changes, most recent first:
 
 
 
 API changes, most recent first:
 
-2012-10-18 - xxxxxxx - lavu 51.45.0 - error.h
+2014-05-xx - xxxxxxx - lavf 55.17.0 - avformat.h
+  Add AVMFT_FLAG_BITEXACT flag. Muxers now use it instead of checking
+  CODEC_FLAG_BITEXACT on the first stream.
+
+2014-xx-xx - xxxxxxx - lavu 53.14.0 - pixfmt.h
+  Add AV_PIX_FMT_VDA for new-style VDA acceleration.
+
+2014-04-xx - xxxxxxx - lavc 55.50.3 - avcodec.h
+  Deprecate CODEC_FLAG_MV0. It is replaced by the flag "mv0" in the
+  "mpv_flags" private option of the mpegvideo encoders.
+
+2014-04-xx - xxxxxxx - lavc 55.50.2 - avcodec.h
+  Deprecate CODEC_FLAG_GMC. It is replaced by the "gmc" private option of the
+  libxvid encoder.
+
+2014-04-xx - xxxxxxx - lavc 55.50.1 - avcodec.h
+  Deprecate CODEC_FLAG_NORMALIZE_AQP. It is replaced by the flag "naq" in the
+  "mpv_flags" private option of the mpegvideo encoders.
+
+2014-04-xx - xxxxxxx - avcodec.h
+  Deprecate CODEC_FLAG_INPUT_PRESERVED. Its functionality is replaced by passing
+  reference-counted frames to encoders.
+
+2014-04-xx - xxxxxxx - lavc 55.50.0 - dxva2.h
+  Add FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO for old Intel GPUs.
+
+2014-04-xx - xxxxxxx - lavu 53.13.0 - avutil.h
+  Add av_get_time_base_q().
+
+2014-04-xx - xxxxxxx - lavu 53.12.0 - crc.h
+  Add AV_CRC_16_ANSI_LE crc variant.
+
+2014-04-xx - xxxxxxx - lavu 53.11.0 - pixfmt.h
+  Add AV_PIX_FMT_YVYU422 pixel format.
+
+2014-04-xx - xxxxxxx - lavu 53.10.0 - replaygain.h
+  Full scale for peak values is now 100000 (instead of UINT32_MAX) and values
+  may overflow.
+
+2014-04-xx - xxxxxxx - lavu 53.09.0 - log.h
+  Add AV_LOG(c) macro to have 256 color debug messages.
+
+2014-02-xx - xxxxxxx - lavu 53.08.0 - frame.h
+  Add av_frame_remove_side_data() for removing a single side data
+  instance from a frame.
+
+2014-02-xx - xxxxxxx - lavu 53.07.0 - frame.h, replaygain.h
+  Add AV_FRAME_DATA_REPLAYGAIN for exporting replaygain tags.
+  Add a new header replaygain.h with the AVReplayGain struct.
+
+2014-02-xx - xxxxxxx - lavc 55.36.0 - avcodec.h
+  Add AV_PKT_DATA_REPLAYGAIN for exporting replaygain tags.
+
+2014-02-xx - xxxxxxx - lavf 55.13.0 - avformat.h
+  Add AVStream.side_data and AVStream.nb_side_data for exporting stream-global
+  side data (e.g. replaygain tags, video rotation)
+
+2014-02-xx - xxxxxxx - lavc 55.35.0 - avcodec.h
+  Give the name AVPacketSideData to the previously anonymous struct used for
+  AVPacket.side_data.
+
+2014-xx-xx - xxxxxxx - lavu 53.06.0 - pixfmt.h
+  Add RGBA64 pixel format and variants.
+
+2014-xx-xx - xxxxxxx - lavu 53.05.0 - frame.h
+  Add av_frame_copy() for copying the frame data.
+
+2014-02-xx - xxxxxxx - lavr 1.2.0 - avresample.h
+  Add avresample_is_open() for checking whether a resample context is open.
+
+2014-xx-xx - xxxxxxx - lavu 53.04.0  - opt.h
+  Add AV_OPT_FLAG_EXPORT and AV_OPT_FLAG_READONLY to mark options meant (only)
+  for reading.
+
+2014-xx-xx - xxxxxxx - lavu 53.03.01 - opt.h
+  Deprecate unused AV_OPT_FLAG_METADATA.
+
+2014-02-xx - xxxxxxx - lavu 53.3.0 - frame.h
+  Add AV_FRAME_DATA_DOWNMIX_INFO value to the AVFrameSideDataType enum and
+  downmix_info.h API, which identify downmix-related metadata.
+
+2014-02-04 - d9ae103 - lavf 55.11.0 - avformat.h
+  Add AVFormatContext.max_interleave_delta for controlling amount of buffering
+  when interleaving.
+
+2014-01-20 - 93c553c - lavc 55.32.1 - avcodec.h
+  Edges are not required anymore on video buffers allocated by get_buffer2()
+  (i.e. as if the CODEC_FLAG_EMU_EDGE flag was always on). Deprecate
+  CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width().
+
+2014-01-05 - 5b4797a - lavu 53.2.0 - frame.h
+  Add AV_FRAME_DATA_MATRIXENCODING value to the AVFrameSideDataType enum, which
+  identifies AVMatrixEncoding data.
+
+2014-01-05 - 5c437fb - lavu 53.1.0 - channel_layout.h
+  Add values for various Dolby flags to the AVMatrixEncoding enum.
+
+2013-12-20 - 2a41826 - lavc 55.30.0 - avcodec.h
+  Add HEVC profiles
+
+2013-12-11 - b9fb59d,9431356,d7b3ee9 - lavc 55.28.1 - avcodec.h
+  av_frame_alloc(), av_frame_unref() and av_frame_free() now can and should be
+  used instead of avcodec_alloc_frame(), avcodec_get_frame_defaults() and
+  avcodec_free_frame() respectively. The latter three functions are deprecated.
+
+2013-12-09 - 7e244c6- - lavu 52.20.0 - frame.h
+  Add AV_FRAME_DATA_STEREO3D value to the AVFrameSideDataType enum and
+  stereo3d.h API, that identify codec-independent stereo3d information.
+
+2013-11-26 - 1eaac1d- - lavu 52.19.0 - frame.h
+  Add AV_FRAME_DATA_A53_CC value to the AVFrameSideDataType enum, which
+  identifies ATSC A53 Part 4 Closed Captions data.
+
+2013-11-14 - cce3e0a - lavu 52.18.0 - mem.h
+  Move av_fast_malloc() and av_fast_realloc() for libavcodec to libavutil.
+
+2013-11-14 - 8941971 - lavc 55.27.0 - avcodec.h
+  Deprecate AVCodecContext.error_rate, it is replaced by the 'error_rate'
+  private option of the mpegvideo encoder family.
+
+2013-11-14 - 728c465 - lavc 55.26.0 - vdpau.h
+  Add av_vdpau_get_profile().
+  Add av_vdpau_alloc_context(). This function must from now on be
+  used for allocating AVVDPAUContext.
+
+2013-11-04 - cd8f772 - lavc 55.25.0 - avcodec.h
+  Add ITU-R BT.2020 and other not yet included values to color primaries,
+  transfer characteristics and colorspaces.
+
+2013-10-31 - 28096e0 - lavu 52.17.0 - frame.h
+  Add AVFrame.flags and AV_FRAME_FLAG_CORRUPT.
+
+2013-09-28 - 0767bfd - lavfi 3.11.0 - avfilter.h
+  Add AVFilterGraph.execute and AVFilterGraph.opaque for custom slice threading
+  implementations.
+
+2013-09-21 - e208e6d - lavu 52.16.0 - pixfmt.h
+  Add interleaved 4:2:2 8/10-bit formats AV_PIX_FMT_NV16 and
+  AV_PIX_FMT_NV20.
+
+2013-09-16 - 3feb3d6 - lavu 52.15.0 - mem.h
+  Add av_reallocp.
+
+2013-08-10 - 5a9a9d4 - lavc 55.16.0 - avcodec.h
+  Extend AVPacket API with av_packet_unref, av_packet_ref,
+  av_packet_move_ref, av_packet_copy_props, av_packet_free_side_data.
+
+2013-08-05 - f824535 - lavc 55.13.0 - avcodec.h
+  Deprecate the bitstream-related members from struct AVVDPAUContext.
+  The bistream buffers no longer need to be explicitly freed.
+
+2013-08-05 - 549294f - lavc 55.12.0 - avcodec.h
+  Deprecate the CODEC_CAP_HWACCEL_VDPAU codec capability. Use CODEC_CAP_HWACCEL
+  and select the AV_PIX_FMT_VDPAU format with get_format() instead.
+
+2013-08-05 - a0ad5d0 - lavu 52.14.0 - pixfmt.h
+  Deprecate AV_PIX_FMT_VDPAU_*. Use AV_PIX_FMT_VDPAU instead.
+
+2013-08-02 - a8b1927 - lavc 55.11.0 - avcodec.h
+  Add output_picture_number to AVCodecParserContext.
+
+2013-06-24 - 95d5246 - lavc 55.10.0 - avcodec.h
+  Add MPEG-2 AAC profiles
+
+2013-06-04 - fc962d4 - lavu 52.13.0 - mem.h
+  Add av_realloc_array and av_reallocp_array
+
+2013-05-24 - 129bb23 - lavfi 3.10.0 - avfilter.h
+  Add support for slice multithreading to lavfi. Filters supporting threading
+  are marked with AVFILTER_FLAG_SLICE_THREADS.
+  New fields AVFilterContext.thread_type, AVFilterGraph.thread_type and
+  AVFilterGraph.nb_threads (accessible directly or through AVOptions) may be
+  used to configure multithreading.
+
+2013-05-24 - 2a6eaea - lavu 52.12.0 - cpu.h
+  Add av_cpu_count() function for getting the number of logical CPUs.
+
+2013-05-24 - b493847 - lavc 55.7.0 - avcodec.h
+  Add picture_structure to AVCodecParserContext.
+
+2013-05-15 - e6c4ac7 - lavu 52.11.0 - pixdesc.h
+  Replace PIX_FMT_* flags with AV_PIX_FMT_FLAG_*.
+
+2013-04-03 - 507b1e4 - lavc 55.4.0 - avcodec.h
+  Add field_order to AVCodecParserContext.
+
+2013-04-19 - 5e83d9a - lavc 55.2.0 - avcodec.h
+  Add CODEC_FLAG_UNALIGNED to allow decoders to produce unaligned output.
+
+2013-04-11 - lavfi 3.8.0
+  38f0c07 - Move all content from avfiltergraph.h to avfilter.h. Deprecate
+            avfilterhraph.h, user applications should include just avfilter.h
+  bc1a985 - Add avfilter_graph_alloc_filter(), deprecate avfilter_open() and
+            avfilter_graph_add_filter().
+  1113672 - Add AVFilterContext.graph pointing to the AVFilterGraph that contains the
+            filter.
+  48a5ada - Add avfilter_init_str(), deprecate avfilter_init_filter().
+  1ba95a9 - Add avfilter_init_dict().
+  7cdd737 - Add AVFilter.flags field and AVFILTER_FLAG_DYNAMIC_{INPUTS,OUTPUTS} flags.
+  7e8fe4b - Add avfilter_pad_count() for counting filter inputs/outputs.
+  fa2a34c - Add avfilter_next(), deprecate av_filter_next().
+            Deprecate avfilter_uninit().
+
+2013-04-09 - lavfi 3.7.0 - avfilter.h
+  b439c99 - Add AVFilter.priv_class for exporting filter options through the
+            AVOptions API in the similar way private options work in lavc and lavf.
+  8114c10 - Add avfilter_get_class().
+  Switch all filters to use AVOptions.
+
+2013-03-19 - 2c328a9 - lavu 52.9.0 - pixdesc.h
+  Add av_pix_fmt_count_planes() function for counting planes in a pixel format.
+
+2013-03-16 - 42c7c61 - lavfi 3.6.0
+  Add AVFilterGraph.nb_filters, deprecate AVFilterGraph.filter_count.
+
+2013-03-08 - Reference counted buffers - lavu 52.8.0, lavc 55.0.0, lavf 55.0.0,
+lavd 54.0.0, lavfi 3.5.0
+  8e401db, 1cec062 - add a new API for reference counted buffers and buffer
+                     pools (new header libavutil/buffer.h).
+  1afddbe - add AVPacket.buf to allow reference counting for the AVPacket data.
+            Add av_packet_from_data() function for constructing packets from
+            av_malloc()ed data.
+  7ecc2d4 - move AVFrame from lavc to lavu (new header libavutil/frame.h), add
+            AVFrame.buf/extended_buf to allow reference counting for the AVFrame
+            data. Add new API for working with reference-counted AVFrames.
+  759001c - add the refcounted_frames field to AVCodecContext to make audio and
+            video decoders return reference-counted frames. Add get_buffer2()
+            callback to AVCodecContext which allocates reference-counted frames.
+            Add avcodec_default_get_buffer2() as the default get_buffer2()
+            implementation.
+            Deprecate AVCodecContext.get_buffer() / release_buffer() /
+            reget_buffer(), avcodec_default_get_buffer(),
+            avcodec_default_reget_buffer(), avcodec_default_release_buffer().
+            Remove avcodec_default_free_buffers(), which should not have ever
+            been called from outside of lavc.
+            Deprecate the following AVFrame fields:
+                * base -- is now stored in AVBufferRef
+                * reference, type, buffer_hints -- are unnecessary in the new API
+                * hwaccel_picture_private, owner, thread_opaque -- should not
+                  have been acessed from outside of lavc
+                * qscale_table, qstride, qscale_type, mbskip_table, motion_val,
+                  mb_type, dct_coeff, ref_index -- mpegvideo-specific tables,
+                  which are not exported anymore.
+  7e35037 - switch libavfilter to use AVFrame instead of AVFilterBufferRef. Add
+            av_buffersrc_add_frame(), deprecate av_buffersrc_buffer().
+            Add av_buffersink_get_frame() and av_buffersink_get_samples(),
+            deprecate av_buffersink_read() and av_buffersink_read_samples().
+            Deprecate AVFilterBufferRef and all functions for working with it.
+
+2013-03-17 - 12c5c1d - lavu 52.8.0 - avstring.h
+  Add av_isdigit, av_isgraph, av_isspace, av_isxdigit.
+
+2013-02-23 - 9f12235 - lavfi 3.4.0 - avfiltergraph.h
+  Add resample_lavr_opts to AVFilterGraph for setting libavresample options
+  for auto-inserted resample filters.
+
+2013-01-25 - 38c1466 - lavu 52.7.0 - dict.h
+  Add av_dict_parse_string() to set multiple key/value pairs at once from a
+  string.
+
+2013-01-25 - b85a5e8 - lavu 52.6.0 - avstring.h
+  Add av_strnstr()
+
+2013-01-15 - 8ee288d - lavu 52.5.0 - hmac.h
+  Add AVHMAC.
+
+2013-01-13 - 44e065d - lavc 54.36.0 - vdpau.h
+  Add AVVDPAUContext struct for VDPAU hardware-accelerated decoding.
+
+2013-01-12 - 169fb94 - lavu 52.4.0 - pixdesc.h
+  Add AV_PIX_FMT_VDPAU flag.
+
+2013-01-07 - 074a00d - lavr 1.1.0
+  Add avresample_set_channel_mapping() for input channel reordering,
+  duplication, and silencing.
+
+------------------------------8<-------------------------------------
+                   9 branch was cut here
+----------------------------->8--------------------------------------
+
+2012-12-29 - d8fd06c - lavu 52.3.0 - avstring.h
+  Add av_basename() and av_dirname().
+
+2012-11-11 - 5980f5d - lavu 52.2.0 - audioconvert.h
+  Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated.
+
+2012-11-05 - dfde8a3 - lavu 52.1.0 - intmath.h
+  Add av_ctz() for trailing zero bit count
+
+2012-10-21 - a893655 - lavu 51.45.0 - error.h
   Add AVERROR_EXPERIMENTAL
 
   Add AVERROR_EXPERIMENTAL
 
-2012-10-12 - xxxxxxx - lavu 51.44.0 - pixdesc.h
+2012-10-12 - d2fcb35 - lavu 51.44.0 - pixdesc.h
   Add functions for accessing pixel format descriptors.
   Accessing the av_pix_fmt_descriptors array directly is now
   deprecated.
 
   Add functions for accessing pixel format descriptors.
   Accessing the av_pix_fmt_descriptors array directly is now
   deprecated.
 
-2012-10-xx - xxxxxxx - lavu 51.43.0 - aes.h, md5.h, sha.h, tree.h
+2012-10-11 - 9a92aea - lavu 51.43.0 - aes.h, md5.h, sha.h, tree.h
   Add functions for allocating the opaque contexts for the algorithms,
   deprecate the context size variables.
 
   Add functions for allocating the opaque contexts for the algorithms,
   deprecate the context size variables.
 
-2012-10-xx - xxxxxxx - lavf 54.18.0 - avio.h
+2012-10-10 - b522000 - lavf 54.18.0 - avio.h
   Add avio_closep to complement avio_close.
 
   Add avio_closep to complement avio_close.
 
-2012-10-xx - xxxxxxx - lavu 51.42.0 - pixfmt.h
+2012-10-08 - 78071a1 - lavu 51.42.0 - pixfmt.h
   Rename PixelFormat to AVPixelFormat and all PIX_FMT_* to AV_PIX_FMT_*.
   To provide backwards compatibility, PixelFormat is now #defined as
   AVPixelFormat.
   Rename PixelFormat to AVPixelFormat and all PIX_FMT_* to AV_PIX_FMT_*.
   To provide backwards compatibility, PixelFormat is now #defined as
   AVPixelFormat.
@@ -176,6 +465,10 @@ API changes, most recent first:
 2012-04-05 - 5cc51a5 - lavu 51.26.0 - audioconvert.h
   Add av_get_default_channel_layout()
 
 2012-04-05 - 5cc51a5 - lavu 51.26.0 - audioconvert.h
   Add av_get_default_channel_layout()
 
+2012-03-20 - 3c90cc2 - lavfo 54.2.0
+  Deprecate av_read_packet(), use av_read_frame() with
+  AVFMT_FLAG_NOPARSE | AVFMT_FLAG_NOFILLIN in AVFormatContext.flags
+
 2012-03-06 - 4d851f8 - lavu 51.25.0 - cpu.h
   Add av_set_cpu_flags_mask().
 
 2012-03-06 - 4d851f8 - lavu 51.25.0 - cpu.h
   Add av_set_cpu_flags_mask().