lavc: deprecate CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width().

pull/54/head
Anton Khirnov 11 years ago
parent 024db24912
commit 93c553c71e
  1. 5
      doc/APIchanges
  2. 21
      libavcodec/avcodec.h
  3. 7
      libavcodec/utils.c
  4. 5
      libavcodec/version.h

@ -13,6 +13,11 @@ libavutil: 2013-12-xx
API changes, most recent first: API changes, most recent first:
2014-01-xx - xxxxxxx - 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().
2013-12-xx - xxxxxxx - lavu 53.2.0 - frame.h 2013-12-xx - xxxxxxx - lavu 53.2.0 - frame.h
Add AV_FRAME_DATA_MATRIXENCODING value to the AVFrameSideDataType enum, which Add AV_FRAME_DATA_MATRIXENCODING value to the AVFrameSideDataType enum, which
identifies AVMatrixEncoding data. identifies AVMatrixEncoding data.

@ -667,7 +667,13 @@ typedef struct RcOverride{
#define CODEC_FLAG_PASS1 0x0200 ///< Use internal 2pass ratecontrol in first pass mode. #define CODEC_FLAG_PASS1 0x0200 ///< Use internal 2pass ratecontrol in first pass mode.
#define CODEC_FLAG_PASS2 0x0400 ///< Use internal 2pass ratecontrol in second pass mode. #define CODEC_FLAG_PASS2 0x0400 ///< Use internal 2pass ratecontrol in second pass mode.
#define CODEC_FLAG_GRAY 0x2000 ///< Only decode/encode grayscale. #define CODEC_FLAG_GRAY 0x2000 ///< Only decode/encode grayscale.
#define CODEC_FLAG_EMU_EDGE 0x4000 ///< Don't draw edges. #if FF_API_EMU_EDGE
/**
* @deprecated edges are not used/required anymore. I.e. this flag is now always
* set.
*/
#define CODEC_FLAG_EMU_EDGE 0x4000
#endif
#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding. #define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding.
#define CODEC_FLAG_TRUNCATED 0x00010000 /** Input bitstream might be truncated at a random #define CODEC_FLAG_TRUNCATED 0x00010000 /** Input bitstream might be truncated at a random
location instead of only at frame boundaries. */ location instead of only at frame boundaries. */
@ -2000,9 +2006,6 @@ typedef struct AVCodecContext {
* If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused
* (read and/or written to if it is writable) later by libavcodec. * (read and/or written to if it is writable) later by libavcodec.
* *
* If CODEC_FLAG_EMU_EDGE is not set in s->flags, the buffer must contain an
* edge of the size returned by avcodec_get_edge_width() on all sides.
*
* avcodec_align_dimensions2() should be used to find the required width and * avcodec_align_dimensions2() should be used to find the required width and
* height, as they normally need to be rounded up to the next multiple of 16. * height, as they normally need to be rounded up to the next multiple of 16.
* *
@ -3404,14 +3407,20 @@ attribute_deprecated int avcodec_default_reget_buffer(AVCodecContext *s, AVFrame
*/ */
int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int flags); int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int flags);
#if FF_API_EMU_EDGE
/** /**
* Return the amount of padding in pixels which the get_buffer callback must * Return the amount of padding in pixels which the get_buffer callback must
* provide around the edge of the image for codecs which do not have the * provide around the edge of the image for codecs which do not have the
* CODEC_FLAG_EMU_EDGE flag. * CODEC_FLAG_EMU_EDGE flag.
* *
* @return Required padding in pixels. * @return Required padding in pixels.
*
* @deprecated CODEC_FLAG_EMU_EDGE is deprecated, so this function is no longer
* needed
*/ */
attribute_deprecated
unsigned avcodec_get_edge_width(void); unsigned avcodec_get_edge_width(void);
#endif
/** /**
* Modify width and height values so that they will result in a memory * Modify width and height values so that they will result in a memory
@ -3419,8 +3428,6 @@ unsigned avcodec_get_edge_width(void);
* padding. * padding.
* *
* May only be used if a codec with CODEC_CAP_DR1 has been opened. * May only be used if a codec with CODEC_CAP_DR1 has been opened.
* If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased
* according to avcodec_get_edge_width() before.
*/ */
void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height); void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
@ -3430,8 +3437,6 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
* line sizes are a multiple of the respective linesize_align[i]. * line sizes are a multiple of the respective linesize_align[i].
* *
* May only be used if a codec with CODEC_CAP_DR1 has been opened. * May only be used if a codec with CODEC_CAP_DR1 has been opened.
* If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased
* according to avcodec_get_edge_width() before.
*/ */
void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
int linesize_align[AV_NUM_DATA_POINTERS]); int linesize_align[AV_NUM_DATA_POINTERS]);

@ -127,10 +127,12 @@ av_cold void avcodec_register(AVCodec *codec)
codec->init_static_data(codec); codec->init_static_data(codec);
} }
#if FF_API_EMU_EDGE
unsigned avcodec_get_edge_width(void) unsigned avcodec_get_edge_width(void)
{ {
return EDGE_WIDTH; return EDGE_WIDTH;
} }
#endif
#if FF_API_SET_DIMENSIONS #if FF_API_SET_DIMENSIONS
void avcodec_set_dimensions(AVCodecContext *s, int width, int height) void avcodec_set_dimensions(AVCodecContext *s, int width, int height)
@ -1089,6 +1091,11 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
ret = AVERROR(EINVAL); ret = AVERROR(EINVAL);
goto free_and_end; goto free_and_end;
} }
#if FF_API_EMU_EDGE
/* force the emu edge flag on, since it's now always active */
avctx->flags |= CODEC_FLAG_EMU_EDGE;
#endif
} }
end: end:
entangled_thread_counter--; entangled_thread_counter--;

@ -30,7 +30,7 @@
#define LIBAVCODEC_VERSION_MAJOR 55 #define LIBAVCODEC_VERSION_MAJOR 55
#define LIBAVCODEC_VERSION_MINOR 32 #define LIBAVCODEC_VERSION_MINOR 32
#define LIBAVCODEC_VERSION_MICRO 0 #define LIBAVCODEC_VERSION_MICRO 1
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \
@ -120,5 +120,8 @@
#ifndef FF_API_NEG_LINESIZES #ifndef FF_API_NEG_LINESIZES
#define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 56) #define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 56)
#endif #endif
#ifndef FF_API_EMU_EDGE
#define FF_API_EMU_EDGE (LIBAVCODEC_VERSION_MAJOR < 56)
#endif
#endif /* AVCODEC_VERSION_H */ #endif /* AVCODEC_VERSION_H */

Loading…
Cancel
Save