Unified · Split
| @@ -392,6 +392,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) · 391 unmodified lines | ||
| 392 | 392 | AVFrame *out; |
| 393 | 393 | const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); |
| 394 | 394 | char buf[32]; |
| 395 | + int in_range; | |
| 395 | 396 | |
| 396 | 397 | if( in->width != link->w |
| 397 | 398 | || in->height != link->h |
| @@ -429,9 +430,12 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) · 31 unmodified lines | ||
| 429 | 430 | if(scale->output_is_pal) |
| 430 | 431 | avpriv_set_systematic_pal2((uint32_t*)out->data[1], outlink->format == AV_PIX_FMT_PAL8 ? AV_PIX_FMT_BGR8 : outlink->format); |
| 431 | 432 | |
| 433 | + in_range = av_frame_get_color_range(in); | |
| 434 | + | |
| 432 | 435 | if ( scale->in_color_matrix |
| 433 | 436 | || scale->out_color_matrix |
| 434 | 437 | || scale-> in_range != AVCOL_RANGE_UNSPECIFIED |
| 438 | + || in_range != AVCOL_RANGE_UNSPECIFIED | |
| 435 | 439 | || scale->out_range != AVCOL_RANGE_UNSPECIFIED) { |
| 436 | 440 | int in_full, out_full, brightness, contrast, saturation; |
| 437 | 441 | const int *inv_table, *table; |
| @@ -447,6 +451,8 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) · 9 unmodified lines | ||
| 447 | 451 | |
| 448 | 452 | if (scale-> in_range != AVCOL_RANGE_UNSPECIFIED) |
| 449 | 453 | in_full = (scale-> in_range == AVCOL_RANGE_JPEG); |
| 454 | + else if (in_range != AVCOL_RANGE_UNSPECIFIED) | |
| 455 | + in_full = (in_range == AVCOL_RANGE_JPEG); | |
| 450 | 456 | if (scale->out_range != AVCOL_RANGE_UNSPECIFIED) |
| 451 | 457 | out_full = (scale->out_range == AVCOL_RANGE_JPEG); |
| 452 | 458 | |