| 1831 | } |
| 1832 | |
| 1833 | __ri static bool ipuPACK(tIPU_CMD_CSC csc) |
| 1834 | { |
| 1835 | csc.log_from_RGB32(); |
| 1836 | |
| 1837 | for (;ipu_cmd.index < (int)csc.MBC; ipu_cmd.index++) |
| 1838 | { |
| 1839 | for(;ipu_cmd.pos[0] < (int)sizeof(macroblock_rgb32) / 8; ipu_cmd.pos[0]++) |
| 1840 | { |
| 1841 | if (!getBits64((u8*)&decoder.rgb32 + 8 * ipu_cmd.pos[0], 1)) return false; |
| 1842 | } |
| 1843 | |
| 1844 | ipu_dither(decoder.rgb32, decoder.rgb16, csc.DTE); |
| 1845 | |
| 1846 | if (!csc.OFM) ipu_vq(decoder.rgb16, g_ipu_indx4); |
| 1847 | |
| 1848 | if (csc.OFM) |
| 1849 | { |
| 1850 | ipu_cmd.pos[1] += ipu_fifo.out.write(((u32*) & decoder.rgb16) + 4 * ipu_cmd.pos[1], 32 - ipu_cmd.pos[1]); |
| 1851 | if (ipu_cmd.pos[1] < 32) |
| 1852 | { |
| 1853 | IPUCoreStatus.WaitingOnIPUFrom = true; |
| 1854 | return false; |
| 1855 | } |
| 1856 | } |
| 1857 | else |
| 1858 | { |
| 1859 | ipu_cmd.pos[1] += ipu_fifo.out.write(((u32*)g_ipu_indx4) + 4 * ipu_cmd.pos[1], 8 - ipu_cmd.pos[1]); |
| 1860 | if (ipu_cmd.pos[1] < 8) |
| 1861 | { |
| 1862 | IPUCoreStatus.WaitingOnIPUFrom = true; |
| 1863 | return false; |
| 1864 | } |
| 1865 | } |
| 1866 | |
| 1867 | ipu_cmd.pos[0] = 0; |
| 1868 | ipu_cmd.pos[1] = 0; |
| 1869 | } |
| 1870 | |
| 1871 | return true; |
| 1872 | } |
| 1873 | |
| 1874 | // -------------------------------------------------------------------------------------- |
| 1875 | // CORE Functions (referenced from MPEG library) |
no test coverage detected