mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
frame: allow align=0 (meaning automatic) for av_frame_get_buffer()
This will avoid every caller from hardcoding some specific alignment, which may break in the future with new instruction sets.
This commit is contained in:
parent
f44ec22e09
commit
4de220d2e3
@ -13,6 +13,10 @@ libavutil: 2015-08-28
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2017-02-xx - xxxxxxx - lavu 55.31.1 - frame.h
|
||||||
|
Allow passing the value of 0 (meaning "automatic") as the required alignment
|
||||||
|
to av_frame_get_buffer().
|
||||||
|
|
||||||
2017-02-xx - xxxxxxx - lavu 55.31.0 - cpu.h
|
2017-02-xx - xxxxxxx - lavu 55.31.0 - cpu.h
|
||||||
Add av_cpu_max_align() for querying maximum required data alignment.
|
Add av_cpu_max_align() for querying maximum required data alignment.
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "channel_layout.h"
|
#include "channel_layout.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "cpu.h"
|
||||||
#include "dict.h"
|
#include "dict.h"
|
||||||
#include "frame.h"
|
#include "frame.h"
|
||||||
#include "imgutils.h"
|
#include "imgutils.h"
|
||||||
@ -103,6 +104,9 @@ static int get_video_buffer(AVFrame *frame, int align)
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
if (align <= 0)
|
||||||
|
align = av_cpu_max_align();
|
||||||
|
|
||||||
for (i = 0; i < 4 && frame->linesize[i]; i++)
|
for (i = 0; i < 4 && frame->linesize[i]; i++)
|
||||||
frame->linesize[i] = FFALIGN(frame->linesize[i], align);
|
frame->linesize[i] = FFALIGN(frame->linesize[i], align);
|
||||||
}
|
}
|
||||||
|
@ -475,7 +475,9 @@ void av_frame_move_ref(AVFrame *dst, AVFrame *src);
|
|||||||
* cases.
|
* cases.
|
||||||
*
|
*
|
||||||
* @param frame frame in which to store the new buffers.
|
* @param frame frame in which to store the new buffers.
|
||||||
* @param align required buffer size alignment
|
* @param align Required buffer size alignment. If equal to 0, alignment will be
|
||||||
|
* chosen automatically for the current CPU. It is highly
|
||||||
|
* recommended to pass 0 here unless you know what you are doing.
|
||||||
*
|
*
|
||||||
* @return 0 on success, a negative AVERROR on error.
|
* @return 0 on success, a negative AVERROR on error.
|
||||||
*/
|
*/
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 55
|
#define LIBAVUTIL_VERSION_MAJOR 55
|
||||||
#define LIBAVUTIL_VERSION_MINOR 31
|
#define LIBAVUTIL_VERSION_MINOR 31
|
||||||
#define LIBAVUTIL_VERSION_MICRO 0
|
#define LIBAVUTIL_VERSION_MICRO 1
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
LIBAVUTIL_VERSION_MINOR, \
|
LIBAVUTIL_VERSION_MINOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user