|
|
@ -29,7 +29,7 @@ void ff_rtp_send_jpeg(AVFormatContext *s1, const uint8_t *buf, int size) |
|
|
|
RTPMuxContext *s = s1->priv_data; |
|
|
|
RTPMuxContext *s = s1->priv_data; |
|
|
|
const uint8_t *qtables = NULL; |
|
|
|
const uint8_t *qtables = NULL; |
|
|
|
int nb_qtables = 0; |
|
|
|
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 w, h; |
|
|
|
uint8_t *p; |
|
|
|
uint8_t *p; |
|
|
|
int off = 0; /* fragment offset of the current JPEG frame */ |
|
|
|
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; |
|
|
|
w = s1->streams[0]->codec->width >> 3; |
|
|
|
h = s1->streams[0]->codec->height >> 3; |
|
|
|
h = s1->streams[0]->codec->height >> 3; |
|
|
|
|
|
|
|
|
|
|
|
/* check if pixel format is not the normal 420 case */ |
|
|
|
/* get the pixel format type or fail */ |
|
|
|
if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ422P) { |
|
|
|
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; |
|
|
|
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; |
|
|
|
type = 1; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
av_log(s1, AV_LOG_ERROR, "Unsupported pixel format\n"); |
|
|
|
av_log(s1, AV_LOG_ERROR, "Unsupported pixel format\n"); |
|
|
|