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