Commit 5fefa7b5 authored by Arttu Ylä-Outinen's avatar Arttu Ylä-Outinen

libkvazaar: Use av_image_copy for copying pixels

Replaces a for loop for copying pixels by a call to av_image_copy.
Signed-off-by: 's avatarArttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
parent 8db62f04
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <string.h> #include <string.h>
#include "libavutil/avassert.h" #include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/dict.h" #include "libavutil/dict.h"
#include "libavutil/opt.h" #include "libavutil/opt.h"
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
...@@ -149,8 +150,6 @@ static int libkvazaar_encode(AVCodecContext *avctx, ...@@ -149,8 +150,6 @@ static int libkvazaar_encode(AVCodecContext *avctx,
*got_packet_ptr = 0; *got_packet_ptr = 0;
if (frame) { if (frame) {
int i = 0;
if (frame->width != ctx->config->width || if (frame->width != ctx->config->width ||
frame->height != ctx->config->height) { frame->height != ctx->config->height) {
av_log(avctx, AV_LOG_ERROR, av_log(avctx, AV_LOG_ERROR,
...@@ -181,17 +180,16 @@ static int libkvazaar_encode(AVCodecContext *avctx, ...@@ -181,17 +180,16 @@ static int libkvazaar_encode(AVCodecContext *avctx,
} }
// Copy pixels from frame to img_in. // Copy pixels from frame to img_in.
for (i = 0; i < 3; ++i) { {
uint8_t *dst = img_in->data[i]; int dst_linesizes[4] = {
uint8_t *src = frame->data[i]; frame->width,
int width = (i == 0) ? frame->width : (frame->width / 2); frame->width / 2,
int height = (i == 0) ? frame->height : (frame->height / 2); frame->width / 2,
int y = 0; 0
for (y = 0; y < height; ++y) { };
memcpy(dst, src, width); av_image_copy(img_in->data, dst_linesizes,
src += frame->linesize[i]; frame->data, frame->linesize,
dst += width; frame->format, frame->width, frame->height);
}
} }
img_in->pts = frame->pts; img_in->pts = frame->pts;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment