aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2014-06-26 15:29:52 -0400
committerVittorio Giovara <vittorio.giovara@gmail.com>2014-06-28 01:51:14 -0400
commit39975acc699c83af0a87a7318c0f41e189142938 (patch)
treee152ca7dd3d5599014b9a05e3b68d35b280bc3b5
parentf134b5ec53b4cb51cb69bf0c64de87687ea72b12 (diff)
downloadffmpeg-39975acc699c83af0a87a7318c0f41e189142938.tar.gz
rtpenc_jpeg: check for color_range too
-rw-r--r--libavformat/rtpenc_jpeg.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libavformat/rtpenc_jpeg.c b/libavformat/rtpenc_jpeg.c
index 04df6583df..9d0915b04b 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");