diff mbox

[FFmpeg-devel,12/24] avcodec/mjpegenc: add support for non-YUVJ formats

Message ID 20171213105940.32103-12-onemda@gmail.com
State Superseded
Headers show

Commit Message

Paul B Mahol Dec. 13, 2017, 10:59 a.m. UTC
Signed-off-by: Paul B Mahol <onemda@gmail.com>
---
 libavcodec/mjpegenc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Michael Niedermayer Dec. 13, 2017, 7:31 p.m. UTC | #1
On Wed, Dec 13, 2017 at 11:59:28AM +0100, Paul B Mahol wrote:
> Signed-off-by: Paul B Mahol <onemda@gmail.com>
> ---
>  libavcodec/mjpegenc.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)

this breaks:

./ffmpeg -i matrixbench_mpeg2.mpg -vcodec mjpeg -strict -2 -t 0.5  mjpeg.avi

[...]
Michael Niedermayer Dec. 13, 2017, 7:48 p.m. UTC | #2
On Wed, Dec 13, 2017 at 08:31:22PM +0100, Michael Niedermayer wrote:
> On Wed, Dec 13, 2017 at 11:59:28AM +0100, Paul B Mahol wrote:
> > Signed-off-by: Paul B Mahol <onemda@gmail.com>
> > ---
> >  libavcodec/mjpegenc.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> this breaks:
> 
> ./ffmpeg -i matrixbench_mpeg2.mpg -vcodec mjpeg -strict -2 -t 0.5  mjpeg.avi

heres another case which breaks: (errors out)
./ffmpeg -y -i fate-suite/lena.pnm -pix_fmt +yuv420p -vf scale -strict -1 test.jpg

[...]
diff mbox

Patch

diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index d2fcb8e191..3ae0a0a70d 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -415,8 +415,10 @@  AVCodec ff_mjpeg_encoder = {
     .close          = ff_mpv_encode_end,
     .capabilities   = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_INTRA_ONLY,
     .pix_fmts       = (const enum AVPixelFormat[]) {
+        AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P,
         AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE
     },
+    .color_ranges   = (const enum AVColorRange[]){AVCOL_RANGE_JPEG, AVCOL_RANGE_UNSPECIFIED},
     .priv_class     = &mjpeg_class,
 };
 #endif
@@ -439,8 +441,9 @@  AVCodec ff_amv_encoder = {
     .encode2        = amv_encode_picture,
     .close          = ff_mpv_encode_end,
     .pix_fmts       = (const enum AVPixelFormat[]) {
-        AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE
+        AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE
     },
+    .color_ranges   = (const enum AVColorRange[]){AVCOL_RANGE_JPEG, AVCOL_RANGE_UNSPECIFIED},
     .priv_class     = &amv_class,
 };
 #endif