diff options
author | Mateusz <mateuszb@poczta.onet.pl> | 2017-10-07 19:05:53 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2017-10-26 18:32:28 +0200 |
commit | a4743d2574254aa0c494b337947e8c9880c7ead7 (patch) | |
tree | b5474dad4e1d31befaa8108054be7da3c1d21cec /libavformat/yuv4mpegenc.c | |
parent | f2c867051c8fb2eb06c1b43a4b08d60a1eafd987 (diff) |
avformat/yuv4mpeg: add gray9/10/12 support
Signed-off-by: Mateusz Brzostek <mateuszb@poczta.onet.pl>
Diffstat (limited to 'libavformat/yuv4mpegenc.c')
-rw-r--r-- | libavformat/yuv4mpegenc.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/libavformat/yuv4mpegenc.c b/libavformat/yuv4mpegenc.c index b4dc6e9ef6..44f40bbad9 100644 --- a/libavformat/yuv4mpegenc.c +++ b/libavformat/yuv4mpegenc.c @@ -69,6 +69,15 @@ static int yuv4_generate_header(AVFormatContext *s, char* buf) case AV_PIX_FMT_GRAY8: colorspace = " Cmono"; break; + case AV_PIX_FMT_GRAY9: + colorspace = " Cmono9"; + break; + case AV_PIX_FMT_GRAY10: + colorspace = " Cmono10"; + break; + case AV_PIX_FMT_GRAY12: + colorspace = " Cmono12"; + break; case AV_PIX_FMT_GRAY16: colorspace = " Cmono16"; break; @@ -184,6 +193,9 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt) case AV_PIX_FMT_YUV422P: case AV_PIX_FMT_YUV444P: break; + case AV_PIX_FMT_GRAY9: + case AV_PIX_FMT_GRAY10: + case AV_PIX_FMT_GRAY12: case AV_PIX_FMT_GRAY16: case AV_PIX_FMT_YUV420P9: case AV_PIX_FMT_YUV422P9: @@ -213,7 +225,8 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt) ptr += frame->linesize[0]; } - if (st->codecpar->format != AV_PIX_FMT_GRAY8 && + if (st->codecpar->format != AV_PIX_FMT_GRAY8 && st->codecpar->format != AV_PIX_FMT_GRAY9 && + st->codecpar->format != AV_PIX_FMT_GRAY10 && st->codecpar->format != AV_PIX_FMT_GRAY12 && st->codecpar->format != AV_PIX_FMT_GRAY16) { // Adjust for smaller Cb and Cr planes av_pix_fmt_get_chroma_sub_sample(st->codecpar->format, &h_chroma_shift, @@ -255,11 +268,14 @@ static int yuv4_write_header(AVFormatContext *s) "stream, some mjpegtools might not work.\n"); break; case AV_PIX_FMT_GRAY8: - case AV_PIX_FMT_GRAY16: case AV_PIX_FMT_YUV420P: case AV_PIX_FMT_YUV422P: case AV_PIX_FMT_YUV444P: break; + case AV_PIX_FMT_GRAY9: + case AV_PIX_FMT_GRAY10: + case AV_PIX_FMT_GRAY12: + case AV_PIX_FMT_GRAY16: case AV_PIX_FMT_YUV420P9: case AV_PIX_FMT_YUV422P9: case AV_PIX_FMT_YUV444P9: @@ -291,7 +307,8 @@ static int yuv4_write_header(AVFormatContext *s) "yuv444p10, yuv422p10, yuv420p10, " "yuv444p12, yuv422p12, yuv420p12, " "yuv444p14, yuv422p14, yuv420p14, " - "yuv444p16, yuv422p16, yuv420p16 " + "yuv444p16, yuv422p16, yuv420p16, " + "gray9, gray10, gray12 " "and gray16 pixel formats. " "Use -pix_fmt to select one.\n"); return AVERROR(EIO); |