Skip to content
Snippets Groups Projects
utils.c 76.5 KiB
Newer Older
  • Learn to ignore specific revisions
  •         for (i = 0; i < c->vLumBufSize; i++)
    
                av_freep(&c->lumPixBuf[i]);
            av_freep(&c->lumPixBuf);
        }
    
    
            for (i = 0; i < c->vChrBufSize; i++)
    
                av_freep(&c->chrUPixBuf[i]);
            av_freep(&c->chrUPixBuf);
            av_freep(&c->chrVPixBuf);
    
        }
    
        if (CONFIG_SWSCALE_ALPHA && c->alpPixBuf) {
    
            for (i = 0; i < c->vLumBufSize; i++)
    
                av_freep(&c->alpPixBuf[i]);
            av_freep(&c->alpPixBuf);
        }
    
    
        for (i = 0; i < 4; i++)
            av_freep(&c->dither_error[i]);
    
    
        av_freep(&c->vLumFilter);
        av_freep(&c->vChrFilter);
        av_freep(&c->hLumFilter);
        av_freep(&c->hChrFilter);
    
        av_freep(&c->vYCoeffsBank);
        av_freep(&c->vCCoeffsBank);
    #endif
    
        av_freep(&c->vLumFilterPos);
        av_freep(&c->vChrFilterPos);
        av_freep(&c->hLumFilterPos);
        av_freep(&c->hChrFilterPos);
    
    
    #if HAVE_MMX_INLINE
    
        if (c->lumMmxextFilterCode)
            munmap(c->lumMmxextFilterCode, c->lumMmxextFilterCodeSize);
        if (c->chrMmxextFilterCode)
            munmap(c->chrMmxextFilterCode, c->chrMmxextFilterCodeSize);
    
        if (c->lumMmxextFilterCode)
            VirtualFree(c->lumMmxextFilterCode, 0, MEM_RELEASE);
        if (c->chrMmxextFilterCode)
            VirtualFree(c->chrMmxextFilterCode, 0, MEM_RELEASE);
    
        av_free(c->lumMmxextFilterCode);
        av_free(c->chrMmxextFilterCode);
    
        c->lumMmxextFilterCode = NULL;
        c->chrMmxextFilterCode = NULL;
    
    #endif /* HAVE_MMX_INLINE */
    
        av_freep(&c->formatConvBuffer);
    
    struct SwsContext *sws_getCachedContext(struct SwsContext *context, int srcW,
    
                                            int srcH, enum AVPixelFormat srcFormat,
    
                                            int dstW, int dstH,
    
                                            enum AVPixelFormat dstFormat, int flags,
    
                                            SwsFilter *srcFilter,
                                            SwsFilter *dstFilter,
                                            const double *param)
    
        static const double default_param[2] = { SWS_PARAM_DEFAULT,
                                                 SWS_PARAM_DEFAULT };
    
            (context->srcW      != srcW      ||
             context->srcH      != srcH      ||
             context->srcFormat != srcFormat ||
             context->dstW      != dstW      ||
             context->dstH      != dstH      ||
             context->dstFormat != dstFormat ||
             context->flags     != flags     ||
             context->param[0]  != param[0]  ||
    
             context->param[1]  != param[1])) {
            sws_freeContext(context);
            context = NULL;
        }
    
            if (!(context = sws_alloc_context()))
                return NULL;
            context->srcW      = srcW;
            context->srcH      = srcH;
            context->srcFormat = srcFormat;
    
            context->dstW      = dstW;
            context->dstH      = dstH;
    
            context->dstFormat = dstFormat;
            context->flags     = flags;
            context->param[0]  = param[0];
            context->param[1]  = param[1];
            if (sws_init_context(context, srcFilter, dstFilter) < 0) {
                sws_freeContext(context);
                return NULL;
            }