Skip to content

Commit

Permalink
swscale: Forward colorspace updates to the 2nd cascaded context in ca…
Browse files Browse the repository at this point in the history
…se of alphablend

The first just does the blending and wouldnt do anything with the colorspace values

Signed-off-by: Michael Niedermayer <[email protected]>
  • Loading branch information
michaelni committed Sep 10, 2015
1 parent 21c7272 commit d730dd8
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
1 change: 1 addition & 0 deletions libswscale/swscale_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,7 @@ typedef struct SwsContext {
uint8_t *cascaded_tmp[4];
int cascaded1_tmpStride[4];
uint8_t *cascaded1_tmp[4];
int cascaded_mainindex;

double gamma_value;
int gamma_flag;
Expand Down
5 changes: 3 additions & 2 deletions libswscale/utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -858,8 +858,8 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
c->dstFormatBpp = av_get_bits_per_pixel(desc_dst);
c->srcFormatBpp = av_get_bits_per_pixel(desc_src);

if (c->cascaded_context[0])
return sws_setColorspaceDetails(c->cascaded_context[0],inv_table, srcRange,table, dstRange, brightness, contrast, saturation);
if (c->cascaded_context[c->cascaded_mainindex])
return sws_setColorspaceDetails(c->cascaded_context[c->cascaded_mainindex],inv_table, srcRange,table, dstRange, brightness, contrast, saturation);

if ((isYUV(c->dstFormat) || isGray(c->dstFormat)) && (isYUV(c->srcFormat) || isGray(c->srcFormat))) {
if (!c->cascaded_context[0] &&
Expand Down Expand Up @@ -1485,6 +1485,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
usesHFilter || usesVFilter ||
c->srcRange != c->dstRange
) {
c->cascaded_mainindex = 1;
ret = av_image_alloc(c->cascaded_tmp, c->cascaded_tmpStride,
srcW, srcH, tmpFormat, 64);
if (ret < 0)
Expand Down

0 comments on commit d730dd8

Please sign in to comment.