Mercurial > libavcodec.hg
comparison libpostproc/postprocess.c @ 957:8a95bda80fdc libavcodec
YUV 411/422/444 support for pp
| author | michael |
|---|---|
| date | Sun, 05 Jan 2003 19:10:42 +0000 |
| parents | 04fd733c5e4b |
| children | 804cc05a3f61 |
comparison
equal
deleted
inserted
replaced
| 956:45bd748e305f | 957:8a95bda80fdc |
|---|---|
| 751 int i; | 751 int i; |
| 752 int stride= (width+15)&(~15); //assumed / will realloc if needed | 752 int stride= (width+15)&(~15); //assumed / will realloc if needed |
| 753 | 753 |
| 754 memset(c, 0, sizeof(PPContext)); | 754 memset(c, 0, sizeof(PPContext)); |
| 755 c->cpuCaps= cpuCaps; | 755 c->cpuCaps= cpuCaps; |
| 756 if(cpuCaps&PP_FORMAT){ | |
| 757 c->hChromaSubSample= cpuCaps&0x3; | |
| 758 c->vChromaSubSample= (cpuCaps>>4)&0x3; | |
| 759 }else{ | |
| 760 c->hChromaSubSample= 1; | |
| 761 c->vChromaSubSample= 1; | |
| 762 } | |
| 756 | 763 |
| 757 reallocBuffers(c, width, height, stride); | 764 reallocBuffers(c, width, height, stride); |
| 758 | 765 |
| 759 c->frameNum=-1; | 766 c->frameNum=-1; |
| 760 | 767 |
| 793 PPContext *c = (PPContext*)vc; | 800 PPContext *c = (PPContext*)vc; |
| 794 int minStride= MAX(srcStride[0], dstStride[0]); | 801 int minStride= MAX(srcStride[0], dstStride[0]); |
| 795 | 802 |
| 796 if(c->stride < minStride) | 803 if(c->stride < minStride) |
| 797 reallocBuffers(c, width, height, minStride); | 804 reallocBuffers(c, width, height, minStride); |
| 798 | |
| 799 | 805 |
| 800 if(QP_store==NULL || (mode->lumMode & FORCE_QUANT)) | 806 if(QP_store==NULL || (mode->lumMode & FORCE_QUANT)) |
| 801 { | 807 { |
| 802 int i; | 808 int i; |
| 803 QP_store= c->forcedQPTable; | 809 QP_store= c->forcedQPTable; |
| 838 } | 844 } |
| 839 | 845 |
| 840 postProcess(src[0], srcStride[0], dst[0], dstStride[0], | 846 postProcess(src[0], srcStride[0], dst[0], dstStride[0], |
| 841 width, height, QP_store, QPStride, 0, mode, c); | 847 width, height, QP_store, QPStride, 0, mode, c); |
| 842 | 848 |
| 843 width = (width +1)>>1; | 849 width = (width )>>c->hChromaSubSample; |
| 844 height = (height+1)>>1; | 850 height = (height)>>c->vChromaSubSample; |
| 845 | 851 |
| 846 if(mode->chromMode) | 852 if(mode->chromMode) |
| 847 { | 853 { |
| 848 postProcess(src[1], srcStride[1], dst[1], dstStride[1], | 854 postProcess(src[1], srcStride[1], dst[1], dstStride[1], |
| 849 width, height, QP_store, QPStride, 1, mode, c); | 855 width, height, QP_store, QPStride, 1, mode, c); |
