summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2021-12-16 17:19:33 -0600
committerrcombs <rcombs@rcombs.me>2021-12-22 18:38:40 -0600
commit028a6ed1a1cb125bf1b228eca4fead08a6d89334 (patch)
tree281160e63d1e40827f4fb431bc1ea68187a8c939
parent131dbb9a7a2dd645c36a85190e2fe0ab987c45cf (diff)
lavc/videotoolboxenc: use common routine for pixfmt conversion
-rw-r--r--libavcodec/videotoolboxenc.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
index ebaa3ebdc8..1e7c164a97 100644
--- a/libavcodec/videotoolboxenc.c
+++ b/libavcodec/videotoolboxenc.c
@@ -29,6 +29,7 @@
#include "libavutil/avstring.h"
#include "libavcodec/avcodec.h"
#include "libavutil/pixdesc.h"
+#include "libavutil/hwcontext_videotoolbox.h"
#include "internal.h"
#include <pthread.h>
#include "atsc_a53.h"
@@ -797,25 +798,9 @@ static int get_cv_pixel_format(AVCodecContext* avctx,
range != AVCOL_RANGE_JPEG;
//MPEG range is used when no range is set
- if (fmt == AV_PIX_FMT_NV12) {
- *av_pixel_format = range == AVCOL_RANGE_JPEG ?
- kCVPixelFormatType_420YpCbCr8BiPlanarFullRange :
- kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange;
- } else if (fmt == AV_PIX_FMT_YUV420P) {
- *av_pixel_format = range == AVCOL_RANGE_JPEG ?
- kCVPixelFormatType_420YpCbCr8PlanarFullRange :
- kCVPixelFormatType_420YpCbCr8Planar;
- } else if (fmt == AV_PIX_FMT_BGRA) {
- *av_pixel_format = kCVPixelFormatType_32BGRA;
- } else if (fmt == AV_PIX_FMT_P010LE) {
- *av_pixel_format = range == AVCOL_RANGE_JPEG ?
- kCVPixelFormatType_420YpCbCr10BiPlanarFullRange :
- kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange;
- } else {
- return AVERROR(EINVAL);
- }
+ *av_pixel_format = av_map_videotoolbox_format_from_pixfmt2(fmt, range == AVCOL_RANGE_JPEG);
- return 0;
+ return *av_pixel_format ? 0 : AVERROR(EINVAL);
}
static void add_color_attr(AVCodecContext *avctx, CFMutableDictionaryRef dict) {