On 26/06/14 21:30, Vittorio Giovara wrote:
> ---
>  libavformat/rtpenc_jpeg.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/libavformat/rtpenc_jpeg.c b/libavformat/rtpenc_jpeg.c
> index 04df658..9d0915b 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;
>      uint8_t w, h;
>      uint8_t *p;
>      int off = 0; /* fragment offset of the current JPEG frame */
> @@ -43,10 +43,14 @@ void ff_rtp_send_jpeg(AVFormatContext *s1, const uint8_t 
> *buf, int size)
>      w = s1->streams[0]->codec->width  >> 3;
>      h = s1->streams[0]->codec->height >> 3;
>  
> -    /* check if pixel format is not the normal 420 case */
> -    if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ422P) {
> +    /* get the pixel format type or fail */
> +    if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ422P ||
> +        (s1->streams[0]->codec->color_range == AVCOL_RANGE_JPEG &&
> +         s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUV422P)) {
>          type = 0;
> -    } else if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ420P) {
> +    } else if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ420P ||
> +               (s1->streams[0]->codec->color_range == AVCOL_RANGE_JPEG &&
> +                s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUV420P)) {
>          type = 1;
>      } else {
>          av_log(s1, AV_LOG_ERROR, "Unsupported pixel format\n");

While at it are you willing to print the unsupported pixel format? (or
remind me later).

The patch seems fine.

lu




_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to