--- libavcodec/dirac.c | 10 ++++++++++ libavcodec/fraps.c | 4 ++++ libavcodec/h264.c | 12 ++++++++++++ libavcodec/hevc_ps.c | 2 ++ libavcodec/imgconvert.c | 8 +++++++- libavcodec/libx264.c | 8 ++++++++ libavcodec/ljpegenc.c | 17 ++++++++++++----- libavcodec/mdec.c | 4 ++++ libavcodec/mjpegdec.c | 16 ++++++++++++++++ libavcodec/mpegvideo_enc.c | 9 ++++++++- libavcodec/raw.c | 3 +++ libavcodec/svq3.c | 7 ++++++- libavcodec/utils.c | 2 ++ libavfilter/vf_boxblur.c | 2 ++ libavfilter/vf_crop.c | 2 ++ libavfilter/vf_cropdetect.c | 11 +++++++---- libavfilter/vf_drawbox.c | 6 ++++-- libavfilter/vf_fade.c | 6 ++++-- libavfilter/vf_framepack.c | 7 +++++-- libavfilter/vf_hflip.c | 2 ++ libavfilter/vf_hqdn3d.c | 2 ++ libavfilter/vf_interlace.c | 8 ++++++-- libavfilter/vf_lut.c | 7 +++++++ libavfilter/vf_pad.c | 2 ++ libavfilter/vf_transpose.c | 6 ++++-- libavfilter/vf_unsharp.c | 8 ++++++-- libavfilter/vf_yadif.c | 4 +++- libavfilter/vsrc_color.c | 2 ++ libavformat/rtpenc_jpeg.c | 12 +++++++++++- libavutil/pixdesc.c | 4 ++++ libavutil/pixfmt.h | 4 ++++ libavutil/version.h | 3 +++ libswscale/utils.c | 4 ++++ 33 files changed, 178 insertions(+), 26 deletions(-)
diff --git a/libavcodec/dirac.c b/libavcodec/dirac.c index 7330def..6248121 100644 --- a/libavcodec/dirac.c +++ b/libavcodec/dirac.c @@ -108,10 +108,16 @@ static const struct { }; /* [DIRAC_STD] Table 10.2 Supported chroma sampling formats + luma Offset */ +#if FF_API_FULLSCALE_PIXFMT static const enum AVPixelFormat dirac_pix_fmt[2][3] = { { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P }, { AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P }, }; +#else +static const enum AVPixelFormat dirac_pix_fmt[3] = { + { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P }, +}; +#endif /* FF_API_FULLSCALE_PIXFMT */ /* [DIRAC_STD] 10.3 Parse Source Parameters. * source_parameters(base_video_format) */ @@ -236,7 +242,11 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb, if (luma_depth > 8) av_log(avctx, AV_LOG_WARNING, "Bitdepth greater than 8"); +#if FF_API_FULLSCALE_PIXFMT avctx->pix_fmt = dirac_pix_fmt[!luma_offset][source->chroma_format]; +#else + avctx->pix_fmt = dirac_pix_fmt[source->chroma_format]; +#endif /* FF_API_FULLSCALE_PIXFMT */ avctx->color_range = luma_offset ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG; /* [DIRAC_STD] 10.3.9 Colour specification. colour_spec(video_params) */ diff --git a/libavcodec/fraps.c b/libavcodec/fraps.c index 1005a56..cb61ebe 100644 --- a/libavcodec/fraps.c +++ b/libavcodec/fraps.c @@ -170,7 +170,11 @@ static int decode_frame(AVCodecContext *avctx, if (header_size == 8) buf += 4; +#if FF_API_FULLSCALE_PIXFMT pix_fmt = version & 1 ? AV_PIX_FMT_BGR24 : AV_PIX_FMT_YUVJ420P; +#else + pix_fmt = version & 1 ? AV_PIX_FMT_BGR24 : AV_PIX_FMT_YUV420P; +#endif /* FF_API_FULLSCALE_PIXFMT */ if (avctx->pix_fmt != pix_fmt && f->data[0]) { av_frame_unref(f); } diff --git a/libavcodec/h264.c b/libavcodec/h264.c index c76abf7..4fdd199 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -166,6 +166,7 @@ static const enum AVPixelFormat h264_hwaccel_pixfmt_list_420[] = { AV_PIX_FMT_NONE }; +#if FF_API_FULLSCALE_PIXFMT static const enum AVPixelFormat h264_hwaccel_pixfmt_list_jpeg_420[] = { #if CONFIG_H264_DXVA2_HWACCEL AV_PIX_FMT_DXVA2_VLD, @@ -182,6 +183,7 @@ static const enum AVPixelFormat h264_hwaccel_pixfmt_list_jpeg_420[] = { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE }; +#endif /* FF_API_FULLSCALE_PIXFMT */ static void h264_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type, int (*mv)[2][4][2], @@ -3111,16 +3113,26 @@ static enum AVPixelFormat get_pixel_format(H264Context *h) if (h->avctx->colorspace == AVCOL_SPC_RGB) { return AV_PIX_FMT_GBRP; } else +#if FF_API_FULLSCALE_PIXFMT return h->avctx->color_range == AVCOL_RANGE_JPEG ? AV_PIX_FMT_YUVJ444P : AV_PIX_FMT_YUV444P; +#else + return AV_PIX_FMT_YUV444P; +#endif /* FF_API_FULLSCALE_PIXFMT */ } else if (CHROMA422(h)) { +#if FF_API_FULLSCALE_PIXFMT return h->avctx->color_range == AVCOL_RANGE_JPEG ? AV_PIX_FMT_YUVJ422P : AV_PIX_FMT_YUV422P; +#else + return AV_PIX_FMT_YUV422P; +#endif /* FF_API_FULLSCALE_PIXFMT */ } else { return h->avctx->get_format(h->avctx, h->avctx->codec->pix_fmts ? h->avctx->codec->pix_fmts : +#if FF_API_FULLSCALE_PIXFMT h->avctx->color_range == AVCOL_RANGE_JPEG ? h264_hwaccel_pixfmt_list_jpeg_420 : +#endif /* FF_API_FULLSCALE_PIXFMT */ h264_hwaccel_pixfmt_list_420); } break; diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index 5e5d4a7..85524e3 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -445,8 +445,10 @@ static void decode_vui(HEVCContext *s, HEVCSPS *sps) vui->video_format = get_bits(gb, 3); vui->video_full_range_flag = get_bits1(gb); vui->colour_description_present_flag = get_bits1(gb); +#if FF_API_FULLSCALE_PIXFMT if (vui->video_full_range_flag && sps->pix_fmt == AV_PIX_FMT_YUV420P) sps->pix_fmt = AV_PIX_FMT_YUVJ420P; +#endif /* FF_API_FULLSCALE_PIXFMT */ if (vui->colour_description_present_flag) { vui->colour_primaries = get_bits(gb, 8); vui->transfer_characteristic = get_bits(gb, 8); diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c index 4eb049f..c4e1848 100644 --- a/libavcodec/imgconvert.c +++ b/libavcodec/imgconvert.c @@ -464,9 +464,11 @@ int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, int i; if (pix_fmt != AV_PIX_FMT_YUV420P && - pix_fmt != AV_PIX_FMT_YUVJ420P && pix_fmt != AV_PIX_FMT_YUV422P && +#if FF_API_FULLSCALE_PIXFMT + pix_fmt != AV_PIX_FMT_YUVJ420P && pix_fmt != AV_PIX_FMT_YUVJ422P && +#endif /* FF_API_FULLSCALE_PIXFMT */ pix_fmt != AV_PIX_FMT_YUV444P && pix_fmt != AV_PIX_FMT_YUV411P && pix_fmt != AV_PIX_FMT_GRAY8) @@ -477,13 +479,17 @@ int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, for(i=0;i<3;i++) { if (i == 1) { switch(pix_fmt) { +#if FF_API_FULLSCALE_PIXFMT case AV_PIX_FMT_YUVJ420P: +#endif /* FF_API_FULLSCALE_PIXFMT */ case AV_PIX_FMT_YUV420P: width >>= 1; height >>= 1; break; case AV_PIX_FMT_YUV422P: +#if FF_API_FULLSCALE_PIXFMT case AV_PIX_FMT_YUVJ422P: +#endif /* FF_API_FULLSCALE_PIXFMT */ width >>= 1; break; case AV_PIX_FMT_YUV411P: diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 6233f1e..5528466 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -254,7 +254,9 @@ static int convert_pix_fmt(enum AVPixelFormat pix_fmt) { switch (pix_fmt) { case AV_PIX_FMT_YUV420P: +#if FF_API_FULLSCALE_PIXFMT case AV_PIX_FMT_YUVJ420P: +#endif /* FF_API_FULLSCALE_PIXFMT */ case AV_PIX_FMT_YUV420P9: case AV_PIX_FMT_YUV420P10: return X264_CSP_I420; case AV_PIX_FMT_YUV422P: @@ -454,8 +456,12 @@ static av_cold int X264_init(AVCodecContext *avctx) x4->params.i_slice_count = avctx->slices; +#if FF_API_FULLSCALE_PIXFMT x4->params.vui.b_fullrange = avctx->pix_fmt == AV_PIX_FMT_YUVJ420P || avctx->color_range == AVCOL_RANGE_JPEG; +#else + x4->params.vui.b_fullrange = avctx->color_range == AVCOL_RANGE_JPEG; +#endif /* FF_API_FULLSCALE_PIXFMT */ if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER) x4->params.b_repeat_headers = 0; @@ -520,7 +526,9 @@ static av_cold int X264_init(AVCodecContext *avctx) static const enum AVPixelFormat pix_fmts_8bit[] = { AV_PIX_FMT_YUV420P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ420P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_NV12, diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c index e111c8c..339007a 100644 --- a/libavcodec/ljpegenc.c +++ b/libavcodec/ljpegenc.c @@ -264,10 +264,15 @@ static av_cold int ljpeg_encode_init(AVCodecContext *avctx) LJpegEncContext *s = avctx->priv_data; int chroma_v_shift, chroma_h_shift; - if ((avctx->pix_fmt == AV_PIX_FMT_YUV420P || + if ( +#if FF_API_FULLSCALE_PIXFMT + (avctx->pix_fmt == AV_PIX_FMT_YUV420P || avctx->pix_fmt == AV_PIX_FMT_YUV422P || avctx->pix_fmt == AV_PIX_FMT_YUV444P || avctx->color_range == AVCOL_RANGE_MPEG) && +#else + avctx->color_range == AVCOL_RANGE_MPEG && +#endif /* FF_API_FULLSCALE_PIXFMT */ avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) { av_log(avctx, AV_LOG_ERROR, "Limited range YUV is non-standard, set strict_std_compliance to " @@ -324,12 +329,14 @@ AVCodec ff_ljpeg_encoder = { .init = ljpeg_encode_init, .encode2 = ljpeg_encode_frame, .close = ljpeg_encode_close, - .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_BGR24, + .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, +#if FF_API_FULLSCALE_PIXFMT + AV_PIX_FMT_YUVJ420P, + AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUVJ444P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_NONE }, }; diff --git a/libavcodec/mdec.c b/libavcodec/mdec.c index d6c6060..cc4a58d 100644 --- a/libavcodec/mdec.c +++ b/libavcodec/mdec.c @@ -218,7 +218,11 @@ static av_cold int decode_init(AVCodecContext *avctx) if (avctx->idct_algo == FF_IDCT_AUTO) avctx->idct_algo = FF_IDCT_SIMPLE; +#if FF_API_FULLSCALE_PIXFMT avctx->pix_fmt = AV_PIX_FMT_YUVJ420P; +#else + avctx->pix_fmt = AV_PIX_FMT_YUV420P; +#endif /* FF_API_FULLSCALE_PIXFMT */ avctx->color_range = AVCOL_RANGE_JPEG; return 0; diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index b1192c5..198f696 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -339,7 +339,11 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) if (s->rgb) s->avctx->pix_fmt = AV_PIX_FMT_BGRA; else { +#if FF_API_FULLSCALE_PIXFMT s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; +#else + s->avctx->pix_fmt = AV_PIX_FMT_YUV444P; +#endif s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; } assert(s->nb_components == 3); @@ -348,15 +352,27 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) s->avctx->pix_fmt = AV_PIX_FMT_GRAY8; break; case 0x12111100: +#if FF_API_FULLSCALE_PIXFMT s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV440P : AV_PIX_FMT_YUVJ440P; +#else + s->avctx->pix_fmt = AV_PIX_FMT_YUV440P; +#endif s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; break; case 0x21111100: +#if FF_API_FULLSCALE_PIXFMT s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV422P : AV_PIX_FMT_YUVJ422P; +#else + s->avctx->pix_fmt = AV_PIX_FMT_YUV422P; +#endif s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; break; case 0x22111100: +#if FF_API_FULLSCALE_PIXFMT s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV420P : AV_PIX_FMT_YUVJ420P; +#else + s->avctx->pix_fmt = AV_PIX_FMT_YUV420P; +#endif s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; break; default: diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index beb0067..3af5ebe 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -241,8 +241,11 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) } break; case AV_CODEC_ID_MJPEG: - if (avctx->pix_fmt != AV_PIX_FMT_YUVJ420P && + if ( +#if FF_API_FULLSCALE_PIXFMT + avctx->pix_fmt != AV_PIX_FMT_YUVJ420P && avctx->pix_fmt != AV_PIX_FMT_YUVJ422P && +#endif /* FF_API_FULLSCALE_PIXFMT */ ((avctx->pix_fmt == AV_PIX_FMT_YUV420P || avctx->pix_fmt == AV_PIX_FMT_YUV422P || avctx->color_range == AVCOL_RANGE_MPEG) || @@ -259,11 +262,15 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) } switch (avctx->pix_fmt) { +#if FF_API_FULLSCALE_PIXFMT case AV_PIX_FMT_YUVJ422P: +#endif /* FF_API_FULLSCALE_PIXFMT */ case AV_PIX_FMT_YUV422P: s->chroma_format = CHROMA_422; break; +#if FF_API_FULLSCALE_PIXFMT case AV_PIX_FMT_YUVJ420P: +#endif /* FF_API_FULLSCALE_PIXFMT */ case AV_PIX_FMT_YUV420P: default: s->chroma_format = CHROMA_420; diff --git a/libavcodec/raw.c b/libavcodec/raw.c index 4ccc6cc..93bcc9c 100644 --- a/libavcodec/raw.c +++ b/libavcodec/raw.c @@ -38,6 +38,7 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = { { AV_PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') }, { AV_PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') }, { AV_PIX_FMT_YUV422P, MKTAG('Y', 'V', '1', '6') }, +#if FF_API_FULLSCALE_PIXFMT /* yuvjXXX formats are deprecated hacks specific to libav*, they are identical to yuvXXX */ { AV_PIX_FMT_YUVJ420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */ @@ -45,6 +46,8 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = { { AV_PIX_FMT_YUVJ420P, MKTAG('Y', 'V', '1', '2') }, { AV_PIX_FMT_YUVJ422P, MKTAG('Y', '4', '2', 'B') }, { AV_PIX_FMT_YUVJ422P, MKTAG('P', '4', '2', '2') }, +#endif /* FF_API_FULLSCALE_PIXFMT */ + { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', '0', '0') }, { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', ' ', ' ') }, diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index fac95ee..b76b256 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -1324,6 +1324,11 @@ AVCodec ff_svq3_decoder = { .capabilities = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_DELAY, - .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, + .pix_fmts = (const enum AVPixelFormat[]) { +#if FF_API_FULLSCALE_PIXFMT + AV_PIX_FMT_YUVJ420P, +#else + AV_PIX_FMT_YUV420P, +#endif AV_PIX_FMT_NONE}, }; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index c88b346..df26776 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -197,10 +197,12 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, case AV_PIX_FMT_GRAY8: case AV_PIX_FMT_GRAY16BE: case AV_PIX_FMT_GRAY16LE: +#if FF_API_FULLSCALE_PIXFMT case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUVJ422P: case AV_PIX_FMT_YUVJ440P: case AV_PIX_FMT_YUVJ444P: +#endif /* FF_API_FULLSCALE_PIXFMT */ case AV_PIX_FMT_YUVA420P: case AV_PIX_FMT_YUVA422P: case AV_PIX_FMT_YUVA444P: diff --git a/libavfilter/vf_boxblur.c b/libavfilter/vf_boxblur.c index 1f26549..c59dfa6 100644 --- a/libavfilter/vf_boxblur.c +++ b/libavfilter/vf_boxblur.c @@ -119,8 +119,10 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_GRAY8, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c index 1aa8466..190ba88 100644 --- a/libavfilter/vf_crop.c +++ b/libavfilter/vf_crop.c @@ -101,8 +101,10 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_YUVA420P, AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE, diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c index ea9e47d..ed29cbd 100644 --- a/libavfilter/vf_cropdetect.c +++ b/libavfilter/vf_cropdetect.c @@ -47,10 +47,13 @@ typedef struct { static int query_formats(AVFilterContext *ctx) { static const enum AVPixelFormat pix_fmts[] = { - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8, + AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV411P, + AV_PIX_FMT_GRAY8, +#if FF_API_FULLSCALE_PIXFMT + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUVJ444P +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_NV12, AV_PIX_FMT_NV21, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c index 2241974..d7422bb 100644 --- a/libavfilter/vf_drawbox.c +++ b/libavfilter/vf_drawbox.c @@ -64,9 +64,11 @@ static int query_formats(AVFilterContext *ctx) { enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, + AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_fade.c b/libavfilter/vf_fade.c index b6bd775..713ebd2 100644 --- a/libavfilter/vf_fade.c +++ b/libavfilter/vf_fade.c @@ -69,9 +69,11 @@ static int query_formats(AVFilterContext *ctx) { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, + AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_framepack.c b/libavfilter/vf_framepack.c index f5c761a..13b6c6d 100644 --- a/libavfilter/vf_framepack.c +++ b/libavfilter/vf_framepack.c @@ -53,8 +53,11 @@ typedef struct FramepackContext { static const enum AVPixelFormat formats_supported[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, + AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUVA420P, +#if FF_API_FULLSCALE_PIXFMT + AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_hflip.c b/libavfilter/vf_hflip.c index 6034b68..25eb280 100644 --- a/libavfilter/vf_hflip.c +++ b/libavfilter/vf_hflip.c @@ -59,8 +59,10 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_YUVA420P, AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE, diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c index be6b761..83660c1 100644 --- a/libavfilter/vf_hqdn3d.c +++ b/libavfilter/vf_hqdn3d.c @@ -226,10 +226,12 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_NE( AV_PIX_FMT_YUV420P9BE, AV_PIX_FMT_YUV420P9LE ), AV_NE( AV_PIX_FMT_YUV422P9BE, AV_PIX_FMT_YUV422P9LE ), AV_NE( AV_PIX_FMT_YUV444P9BE, AV_PIX_FMT_YUV444P9LE ), diff --git a/libavfilter/vf_interlace.c b/libavfilter/vf_interlace.c index 8a16e19..7e93c37 100644 --- a/libavfilter/vf_interlace.c +++ b/libavfilter/vf_interlace.c @@ -79,8 +79,12 @@ static const AVClass class = { static const enum AVPixelFormat formats_supported[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUVA420P, - AV_PIX_FMT_GRAY8, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_NONE + AV_PIX_FMT_GRAY8, +#if FF_API_FULLSCALE_PIXFMT + AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ + AV_PIX_FMT_NONE }; static int query_formats(AVFilterContext *ctx) diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index c59dcd6..9792d9e 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -128,12 +128,19 @@ static av_cold void uninit(AVFilterContext *ctx) } } +#if FF_API_FULLSCALE_PIXFMT #define YUV_FORMATS \ AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, \ AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, \ AV_PIX_FMT_YUVA420P, \ AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, \ AV_PIX_FMT_YUVJ440P +#else +#define YUV_FORMATS \ + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, \ + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, \ + AV_PIX_FMT_YUVA420P +#endif /* FF_API_FULLSCALE_PIXFMT */ #define RGB_FORMATS \ AV_PIX_FMT_ARGB, AV_PIX_FMT_RGBA, \ diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 0609767..3e2a02c 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -83,8 +83,10 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE diff --git a/libavfilter/vf_transpose.c b/libavfilter/vf_transpose.c index 06a88c7..1988a14 100644 --- a/libavfilter/vf_transpose.c +++ b/libavfilter/vf_transpose.c @@ -70,10 +70,12 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, + AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_YUVA420P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c index 842ec7e..c93cbbb 100644 --- a/libavfilter/vf_unsharp.c +++ b/libavfilter/vf_unsharp.c @@ -150,8 +150,12 @@ static int query_formats(AVFilterContext *ctx) { enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_NONE + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT + AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ + AV_PIX_FMT_NONE }; ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index 53c567c..d17c00b 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -432,12 +432,14 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_NE( AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_GRAY16LE ), AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ440P, AV_NE( AV_PIX_FMT_YUV420P10BE, AV_PIX_FMT_YUV420P10LE ), AV_NE( AV_PIX_FMT_YUV422P10BE, AV_PIX_FMT_YUV422P10LE ), AV_NE( AV_PIX_FMT_YUV444P10BE, AV_PIX_FMT_YUV444P10LE ), diff --git a/libavfilter/vsrc_color.c b/libavfilter/vsrc_color.c index d72d072..21cdb3a 100644 --- a/libavfilter/vsrc_color.c +++ b/libavfilter/vsrc_color.c @@ -100,8 +100,10 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE diff --git a/libavformat/rtpenc_jpeg.c b/libavformat/rtpenc_jpeg.c index 04df658..f616f54 100644 --- a/libavformat/rtpenc_jpeg.c +++ b/libavformat/rtpenc_jpeg.c @@ -29,7 +29,7 @@ void ff_rtp_send_jpeg(AVFormatContext *s1, const uint8_t *buf, int size) RTPMuxContext *s = s1->priv_data; const uint8_t *qtables = NULL; int nb_qtables = 0; - uint8_t type = 1; /* default pixel format is AV_PIX_FMT_YUVJ420P */ + uint8_t type = 1; /* default pixel format is AV_PIX_FMT_YUV420P full range */ uint8_t w, h; uint8_t *p; int off = 0; /* fragment offset of the current JPEG frame */ @@ -44,9 +44,19 @@ void ff_rtp_send_jpeg(AVFormatContext *s1, const uint8_t *buf, int size) h = s1->streams[0]->codec->height >> 3; /* check if pixel format is not the normal 420 case */ +#if FF_API_FULLSCALE_PIXFMT if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ422P) { +#else + if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUV422P && + s1->streams[0]->codec->pix_fmt == AVCOL_RANGE_JPEG) { +#endif /* FF_API_FULLSCALE_PIXFMT */ type = 0; +#if FF_API_FULLSCALE_PIXFMT } else if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ420P) { +#else + } else if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUV420P && + s1->streams[0]->codec->pix_fmt == AVCOL_RANGE_JPEG) { +#endif /* FF_API_FULLSCALE_PIXFMT */ type = 1; } else { av_log(s1, AV_LOG_ERROR, "Unsupported pixel format\n"); diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 37ce173..df5762c 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -264,6 +264,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PAL, }, +#if FF_API_FULLSCALE_PIXFMT [AV_PIX_FMT_YUVJ420P] = { .name = "yuvj420p", .nb_components = 3, @@ -300,6 +301,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR, }, +#endif /* FF_API_FULLSCALE_PIXFMT */ #if FF_API_XVMC [AV_PIX_FMT_XVMC_MPEG2_MC] = { .name = "xvmcmc", @@ -511,6 +513,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR, }, +#if FF_API_FULLSCALE_PIXFMT [AV_PIX_FMT_YUVJ440P] = { .name = "yuvj440p", .nb_components = 3, @@ -523,6 +526,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR, }, +#endif /* FF_API_FULLSCALE_PIXFMT */ [AV_PIX_FMT_YUVA420P] = { .name = "yuva420p", .nb_components = 4, diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index 0d6e0a3..084e62a 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -74,9 +74,11 @@ enum AVPixelFormat { AV_PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb AV_PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb AV_PIX_FMT_PAL8, ///< 8 bit with PIX_FMT_RGB32 palette +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV420P and setting color_range AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV422P and setting color_range AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV444P and setting color_range +#endif /* FF_API_FULLSCALE_PIXFMT */ #if FF_API_XVMC AV_PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing AV_PIX_FMT_XVMC_MPEG2_IDCT, @@ -100,7 +102,9 @@ enum AVPixelFormat { AV_PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian AV_PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian AV_PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) +#if FF_API_FULLSCALE_PIXFMT AV_PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of PIX_FMT_YUV440P and setting color_range +#endif /* FF_API_FULLSCALE_PIXFMT */ AV_PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) #if FF_API_VDPAU AV_PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers diff --git a/libavutil/version.h b/libavutil/version.h index cd0981c..0122cce 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -111,6 +111,9 @@ #ifndef FF_API_OPT_TYPE_METADATA #define FF_API_OPT_TYPE_METADATA (LIBAVUTIL_VERSION_MAJOR < 54) #endif +#ifndef FF_API_FULLSCALE_PIXFMT +#define FF_API_FULLSCALE_PIXFMT (LIBAVUTIL_VERSION_MAJOR < 54) +#endif /** * @} diff --git a/libswscale/utils.c b/libswscale/utils.c index 2111fc2..e017f23 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -89,9 +89,11 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = { [AV_PIX_FMT_MONOWHITE] = { 1, 1 }, [AV_PIX_FMT_MONOBLACK] = { 1, 1 }, [AV_PIX_FMT_PAL8] = { 1, 0 }, +#if FF_API_FULLSCALE_PIXFMT [AV_PIX_FMT_YUVJ420P] = { 1, 1 }, [AV_PIX_FMT_YUVJ422P] = { 1, 1 }, [AV_PIX_FMT_YUVJ444P] = { 1, 1 }, +#endif /* FF_API_FULLSCALE_PIXFMT */ [AV_PIX_FMT_UYVY422] = { 1, 1 }, [AV_PIX_FMT_UYYVYY411] = { 0, 0 }, [AV_PIX_FMT_BGR8] = { 1, 1 }, @@ -109,7 +111,9 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = { [AV_PIX_FMT_GRAY16BE] = { 1, 1 }, [AV_PIX_FMT_GRAY16LE] = { 1, 1 }, [AV_PIX_FMT_YUV440P] = { 1, 1 }, +#if FF_API_FULLSCALE_PIXFMT [AV_PIX_FMT_YUVJ440P] = { 1, 1 }, +#endif /* FF_API_FULLSCALE_PIXFMT */ [AV_PIX_FMT_YUVA420P] = { 1, 1 }, [AV_PIX_FMT_YUVA422P] = { 1, 1 }, [AV_PIX_FMT_YUVA444P] = { 1, 1 }, -- 1.8.3.4 (Apple Git-47) _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel