diff options
Diffstat (limited to 'gst/videomixer/videomixerorc.orc')
-rw-r--r-- | gst/videomixer/videomixerorc.orc | 864 |
1 files changed, 150 insertions, 714 deletions
diff --git a/gst/videomixer/videomixerorc.orc b/gst/videomixer/videomixerorc.orc index 7ee7fef4a..45e0f565a 100644 --- a/gst/videomixer/videomixerorc.orc +++ b/gst/videomixer/videomixerorc.orc @@ -674,8 +674,11 @@ mergewl ayuv, ay, uv .flags 2d .dest 4 argb guint8 .source 4 ayuv guint8 -.temp 2 t1 -.temp 2 t2 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.param 2 p5 .temp 1 a .temp 1 y .temp 1 u @@ -690,57 +693,48 @@ mergewl ayuv, ay, uv .temp 1 g .temp 1 b .temp 4 x -.const 1 c8 8 +.const 1 c128 128 -x4 subb x, ayuv, 128 -splitlw t1, t2, x -splitwb y, a, t2 -splitwb v, u, t1 -convsbw wy, y -convsbw wu, u -convsbw wv, v - -mullw t1, wy, 42 -shrsw t1, t1, c8 -addssw wy, wy, t1 - -addssw wr, wy, wv -mullw t1, wv, 103 -shrsw t1, t1, c8 -subssw wr, wr, t1 -addssw wr, wr, wv - -addssw wb, wy, wu -addssw wb, wb, wu -mullw t1, wu, 4 -shrsw t1, t1, c8 -addssw wb, wb, t1 - -mullw t1, wu, 100 -shrsw t1, t1, c8 -subssw wg, wy, t1 -mullw t1, wv, 104 -shrsw t1, t1, c8 -subssw wg, wg, t1 -subssw wg, wg, t1 +x4 subb x, ayuv, c128 +splitlw wv, wy, x +splitwb y, a, wy +splitwb v, u, wv + +splatbw wy, y +splatbw wu, u +splatbw wv, v + +mulhsw wy, wy, p1 + +mulhsw wr, wv, p2 +addssw wr, wy, wr + +mulhsw wb, wu, p3 +addssw wb, wy, wb + +mulhsw wg, wu, p4 +addssw wg, wy, wg +mulhsw wy, wv, p5 +addssw wg, wg, wy convssswb r, wr convssswb g, wg convssswb b, wb -mergebw t1, a, r -mergebw t2, g, b -mergewl x, t1, t2 -x4 addb argb, x, 128 - - +mergebw wr, a, r +mergebw wb, g, b +mergewl x, wr, wb +x4 addb argb, x, c128 .function videomixer_video_convert_orc_convert_AYUV_BGRA .flags 2d -.dest 4 argb guint8 +.dest 4 bgra guint8 .source 4 ayuv guint8 -.temp 2 t1 -.temp 2 t2 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.param 2 p5 .temp 1 a .temp 1 y .temp 1 u @@ -755,58 +749,49 @@ x4 addb argb, x, 128 .temp 1 g .temp 1 b .temp 4 x -.const 1 c8 8 +.const 1 c128 128 -x4 subb x, ayuv, 128 -splitlw t1, t2, x -splitwb y, a, t2 -splitwb v, u, t1 -convsbw wy, y -convsbw wu, u -convsbw wv, v - -mullw t1, wy, 42 -shrsw t1, t1, c8 -addssw wy, wy, t1 - -addssw wr, wy, wv -mullw t1, wv, 103 -shrsw t1, t1, c8 -subssw wr, wr, t1 -addssw wr, wr, wv - -addssw wb, wy, wu -addssw wb, wb, wu -mullw t1, wu, 4 -shrsw t1, t1, c8 -addssw wb, wb, t1 - -mullw t1, wu, 100 -shrsw t1, t1, c8 -subssw wg, wy, t1 -mullw t1, wv, 104 -shrsw t1, t1, c8 -subssw wg, wg, t1 -subssw wg, wg, t1 +x4 subb x, ayuv, c128 +splitlw wv, wy, x +splitwb y, a, wy +splitwb v, u, wv + +splatbw wy, y +splatbw wu, u +splatbw wv, v + +mulhsw wy, wy, p1 + +mulhsw wr, wv, p2 +addssw wr, wy, wr + +mulhsw wb, wu, p3 +addssw wb, wy, wb + +mulhsw wg, wu, p4 +addssw wg, wy, wg +mulhsw wy, wv, p5 +addssw wg, wg, wy convssswb r, wr convssswb g, wg convssswb b, wb -mergebw t1, b, g -mergebw t2, r, a -mergewl x, t1, t2 -x4 addb argb, x, 128 - - +mergebw wb, b, g +mergebw wr, r, a +mergewl x, wb, wr +x4 addb bgra, x, c128 .function videomixer_video_convert_orc_convert_AYUV_ABGR .flags 2d .dest 4 argb guint8 .source 4 ayuv guint8 -.temp 2 t1 -.temp 2 t2 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.param 2 p5 .temp 1 a .temp 1 y .temp 1 u @@ -821,57 +806,48 @@ x4 addb argb, x, 128 .temp 1 g .temp 1 b .temp 4 x -.const 1 c8 8 +.const 1 c128 128 -x4 subb x, ayuv, 128 -splitlw t1, t2, x -splitwb y, a, t2 -splitwb v, u, t1 -convsbw wy, y -convsbw wu, u -convsbw wv, v - -mullw t1, wy, 42 -shrsw t1, t1, c8 -addssw wy, wy, t1 - -addssw wr, wy, wv -mullw t1, wv, 103 -shrsw t1, t1, c8 -subssw wr, wr, t1 -addssw wr, wr, wv - -addssw wb, wy, wu -addssw wb, wb, wu -mullw t1, wu, 4 -shrsw t1, t1, c8 -addssw wb, wb, t1 - -mullw t1, wu, 100 -shrsw t1, t1, c8 -subssw wg, wy, t1 -mullw t1, wv, 104 -shrsw t1, t1, c8 -subssw wg, wg, t1 -subssw wg, wg, t1 +x4 subb x, ayuv, c128 +splitlw wv, wy, x +splitwb y, a, wy +splitwb v, u, wv + +splatbw wy, y +splatbw wu, u +splatbw wv, v + +mulhsw wy, wy, p1 + +mulhsw wr, wv, p2 +addssw wr, wy, wr + +mulhsw wb, wu, p3 +addssw wb, wy, wb + +mulhsw wg, wu, p4 +addssw wg, wy, wg +mulhsw wy, wv, p5 +addssw wg, wg, wy convssswb r, wr convssswb g, wg convssswb b, wb -mergebw t1, a, b -mergebw t2, g, r -mergewl x, t1, t2 -x4 addb argb, x, 128 - - +mergebw wb, a, b +mergebw wr, g, r +mergewl x, wb, wr +x4 addb argb, x, c128 .function videomixer_video_convert_orc_convert_AYUV_RGBA .flags 2d .dest 4 argb guint8 .source 4 ayuv guint8 -.temp 2 t1 -.temp 2 t2 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.param 2 p5 .temp 1 a .temp 1 y .temp 1 u @@ -886,48 +862,38 @@ x4 addb argb, x, 128 .temp 1 g .temp 1 b .temp 4 x -.const 1 c8 8 +.const 1 c128 128 -x4 subb x, ayuv, 128 -splitlw t1, t2, x -splitwb y, a, t2 -splitwb v, u, t1 -convsbw wy, y -convsbw wu, u -convsbw wv, v - -mullw t1, wy, 42 -shrsw t1, t1, c8 -addssw wy, wy, t1 - -addssw wr, wy, wv -mullw t1, wv, 103 -shrsw t1, t1, c8 -subssw wr, wr, t1 -addssw wr, wr, wv - -addssw wb, wy, wu -addssw wb, wb, wu -mullw t1, wu, 4 -shrsw t1, t1, c8 -addssw wb, wb, t1 - -mullw t1, wu, 100 -shrsw t1, t1, c8 -subssw wg, wy, t1 -mullw t1, wv, 104 -shrsw t1, t1, c8 -subssw wg, wg, t1 -subssw wg, wg, t1 +x4 subb x, ayuv, c128 +splitlw wv, wy, x +splitwb y, a, wy +splitwb v, u, wv + +splatbw wy, y +splatbw wu, u +splatbw wv, v + +mulhsw wy, wy, p1 + +mulhsw wr, wv, p2 +addssw wr, wy, wr + +mulhsw wb, wu, p3 +addssw wb, wy, wb + +mulhsw wg, wu, p4 +addssw wg, wy, wg +mulhsw wy, wv, p5 +addssw wg, wg, wy convssswb r, wr convssswb g, wg convssswb b, wb -mergebw t1, r, g -mergebw t2, b, a -mergewl x, t1, t2 -x4 addb argb, x, 128 +mergebw wr, r, g +mergebw wb, b, a +mergewl x, wr, wb +x4 addb argb, x, c128 @@ -936,9 +902,11 @@ x4 addb argb, x, 128 .source 1 y guint8 .source 1 u guint8 .source 1 v guint8 -.temp 2 t1 -.temp 2 t2 -.temp 1 t3 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.param 2 p5 .temp 2 wy .temp 2 wu .temp 2 wv @@ -949,568 +917,36 @@ x4 addb argb, x, 128 .temp 1 g .temp 1 b .temp 4 x -.const 1 c8 8 .const 1 c128 128 -subb t3, y, c128 -convsbw wy, t3 -loadupib t3, u -subb t3, t3, c128 -convsbw wu, t3 -loadupib t3, v -subb t3, t3, c128 -convsbw wv, t3 - -mullw t1, wy, 42 -shrsw t1, t1, c8 -addssw wy, wy, t1 - -addssw wr, wy, wv -mullw t1, wv, 103 -shrsw t1, t1, c8 -subssw wr, wr, t1 -addssw wr, wr, wv - -addssw wb, wy, wu -addssw wb, wb, wu -mullw t1, wu, 4 -shrsw t1, t1, c8 -addssw wb, wb, t1 - -mullw t1, wu, 100 -shrsw t1, t1, c8 -subssw wg, wy, t1 -mullw t1, wv, 104 -shrsw t1, t1, c8 -subssw wg, wg, t1 -subssw wg, wg, t1 +subb r, y, c128 +splatbw wy, r +loadupdb r, u +subb r, r, c128 +splatbw wu, r +loadupdb r, v +subb r, r, c128 +splatbw wv, r -convssswb r, wr -convssswb g, wg -convssswb b, wb - -mergebw t1, b, g -mergebw t2, r, 255 -mergewl x, t1, t2 -x4 addb argb, x, c128 +mulhsw wy, wy, p1 +mulhsw wr, wv, p2 +addssw wr, wy, wr +mulhsw wb, wu, p3 +addssw wb, wy, wb -.function videomixer_video_convert_orc_convert_I420_BGRA_avg -.dest 4 argb guint8 -.source 1 y guint8 -.source 1 u1 guint8 -.source 1 u2 guint8 -.source 1 v1 guint8 -.source 1 v2 guint8 -.temp 2 t1 -.temp 2 t2 -.temp 1 t3 -.temp 1 t4 -.temp 2 wy -.temp 2 wu -.temp 2 wv -.temp 2 wr -.temp 2 wg -.temp 2 wb -.temp 1 r -.temp 1 g -.temp 1 b -.temp 4 x -.const 1 c8 8 -.const 1 c128 128 - -subb t3, y, c128 -convsbw wy, t3 -loadupib t3, u1 -loadupib t4, u2 -avgub t3, t3, t4 -subb t3, t3, c128 -convsbw wu, t3 -loadupib t3, v1 -loadupib t4, v2 -avgub t3, t3, t4 -subb t3, t3, c128 -convsbw wv, t3 - -mullw t1, wy, 42 -shrsw t1, t1, c8 -addssw wy, wy, t1 - -addssw wr, wy, wv -mullw t1, wv, 103 -shrsw t1, t1, c8 -subssw wr, wr, t1 -addssw wr, wr, wv - -addssw wb, wy, wu -addssw wb, wb, wu -mullw t1, wu, 4 -shrsw t1, t1, c8 -addssw wb, wb, t1 - -mullw t1, wu, 100 -shrsw t1, t1, c8 -subssw wg, wy, t1 -mullw t1, wv, 104 -shrsw t1, t1, c8 -subssw wg, wg, t1 -subssw wg, wg, t1 +mulhsw wg, wu, p4 +addssw wg, wy, wg +mulhsw wy, wv, p5 +addssw wg, wg, wy convssswb r, wr convssswb g, wg convssswb b, wb -mergebw t1, b, g -mergebw t2, r, 255 -mergewl x, t1, t2 +mergebw wb, b, g +mergebw wr, r, 127 +mergewl x, wb, wr x4 addb argb, x, c128 - - -.function videomixer_video_convert_orc_getline_I420 -.dest 4 d guint8 -.source 1 y guint8 -.source 1 u guint8 -.source 1 v guint8 -.const 1 c255 255 -.temp 2 uv -.temp 2 ay -.temp 1 tu -.temp 1 tv - -loadupdb tu, u -loadupdb tv, v -mergebw uv, tu, tv -mergebw ay, c255, y -mergewl d, ay, uv - -.function videomixer_video_convert_orc_getline_YUV9 -.dest 8 d guint8 -.source 2 y guint8 -.source 1 u guint8 -.source 1 v guint8 -.const 1 c255 255 -.temp 2 tuv -.temp 4 ay -.temp 4 uv -.temp 1 tu -.temp 1 tv - -loadupdb tu, u -loadupdb tv, v -mergebw tuv, tu, tv -mergewl uv, tuv, tuv -x2 mergebw ay, c255, y -x2 mergewl d, ay, uv - -.function videomixer_video_convert_orc_getline_YUY2 -.dest 8 ayuv guint8 -.source 4 yuy2 guint8 -.const 2 c255 0xff -.temp 2 yy -.temp 2 uv -.temp 4 ayay -.temp 4 uvuv - -x2 splitwb uv, yy, yuy2 -x2 mergebw ayay, c255, yy -mergewl uvuv, uv, uv -x2 mergewl ayuv, ayay, uvuv - - -.function videomixer_video_convert_orc_getline_UYVY -.dest 8 ayuv guint8 -.source 4 uyvy guint8 -.const 2 c255 0xff -.temp 2 yy -.temp 2 uv -.temp 4 ayay -.temp 4 uvuv - -x2 splitwb yy, uv, uyvy -x2 mergebw ayay, c255, yy -mergewl uvuv, uv, uv -x2 mergewl ayuv, ayay, uvuv - - -.function videomixer_video_convert_orc_getline_YVYU -.dest 8 ayuv guint8 -.source 4 uyvy guint8 -.const 2 c255 0xff -.temp 2 yy -.temp 2 uv -.temp 4 ayay -.temp 4 uvuv - -x2 splitwb uv, yy, uyvy -swapw uv, uv -x2 mergebw ayay, c255, yy -mergewl uvuv, uv, uv -x2 mergewl ayuv, ayay, uvuv - - -.function videomixer_video_convert_orc_getline_Y42B -.dest 8 ayuv guint8 -.source 2 yy guint8 -.source 1 u guint8 -.source 1 v guint8 -.const 1 c255 255 -.temp 2 uv -.temp 2 ay -.temp 4 uvuv -.temp 4 ayay - -mergebw uv, u, v -x2 mergebw ayay, c255, yy -mergewl uvuv, uv, uv -x2 mergewl ayuv, ayay, uvuv - - -.function videomixer_video_convert_orc_getline_Y444 -.dest 4 ayuv guint8 -.source 1 y guint8 -.source 1 u guint8 -.source 1 v guint8 -.const 1 c255 255 -.temp 2 uv -.temp 2 ay - -mergebw uv, u, v -mergebw ay, c255, y -mergewl ayuv, ay, uv - - -.function videomixer_video_convert_orc_getline_Y800 -.dest 4 ayuv guint8 -.source 1 y guint8 -.const 1 c255 255 -.const 2 c0x8080 0x8080 -.temp 2 ay - -mergebw ay, c255, y -mergewl ayuv, ay, c0x8080 - -.function videomixer_video_convert_orc_getline_Y16 -.dest 4 ayuv guint8 -.source 2 y guint8 -.const 1 c255 255 -.const 2 c0x8080 0x8080 -.temp 2 ay -.temp 1 yb - -convhwb yb, y -mergebw ay, c255, yb -mergewl ayuv, ay, c0x8080 - -.function videomixer_video_convert_orc_getline_BGRA -.dest 4 argb guint8 -.source 4 bgra guint8 - -swapl argb, bgra - - -.function videomixer_video_convert_orc_getline_ABGR -.dest 4 argb guint8 -.source 4 abgr guint8 -.temp 1 a -.temp 1 r -.temp 1 g -.temp 1 b -.temp 2 gr -.temp 2 ab -.temp 2 ar -.temp 2 gb - -splitlw gr, ab, abgr -splitwb r, g, gr -splitwb b, a, ab -mergebw ar, a, r -mergebw gb, g, b -mergewl argb, ar, gb - - -.function videomixer_video_convert_orc_getline_RGBA -.dest 4 argb guint8 -.source 4 rgba guint8 -.temp 1 a -.temp 1 r -.temp 1 g -.temp 1 b -.temp 2 rg -.temp 2 ba -.temp 2 ar -.temp 2 gb - -splitlw ba, rg, rgba -splitwb g, r, rg -splitwb a, b, ba -mergebw ar, a, r -mergebw gb, g, b -mergewl argb, ar, gb - - -.function videomixer_video_convert_orc_getline_NV12 -.dest 8 d guint8 -.source 2 y guint8 -.source 2 uv guint8 -.const 1 c255 255 -.temp 4 ay -.temp 4 uvuv - -mergewl uvuv, uv, uv -x2 mergebw ay, c255, y -x2 mergewl d, ay, uvuv - - -.function videomixer_video_convert_orc_getline_NV21 -.dest 8 d guint8 -.source 2 y guint8 -.source 2 vu guint8 -.const 1 c255 255 -.temp 2 uv -.temp 4 ay -.temp 4 uvuv - -swapw uv, vu -mergewl uvuv, uv, uv -x2 mergebw ay, c255, y -x2 mergewl d, ay, uvuv - -.function videomixer_video_convert_orc_getline_A420 -.dest 4 d guint8 -.source 1 y guint8 -.source 1 u guint8 -.source 1 v guint8 -.source 1 a guint8 -.temp 2 uv -.temp 2 ay -.temp 1 tu -.temp 1 tv - -loadupdb tu, u -loadupdb tv, v -mergebw uv, tu, tv -mergebw ay, a, y -mergewl d, ay, uv - -.function videomixer_video_convert_orc_putline_I420 -.dest 2 y guint8 -.dest 1 u guint8 -.dest 1 v guint8 -.source 8 ayuv guint8 -.temp 4 ay -.temp 4 uv -.temp 2 uu -.temp 2 vv -.temp 1 t1 -.temp 1 t2 - -x2 splitlw uv, ay, ayuv -x2 select1wb y, ay -x2 splitwb vv, uu, uv -splitwb t1, t2, uu -avgub u, t1, t2 -splitwb t1, t2, vv -avgub v, t1, t2 - - - -.function videomixer_video_convert_orc_putline_YUY2 -.dest 4 yuy2 guint8 -.source 8 ayuv guint8 -.temp 2 yy -.temp 2 uv1 -.temp 2 uv2 -.temp 4 ayay -.temp 4 uvuv - -x2 splitlw uvuv, ayay, ayuv -splitlw uv1, uv2, uvuv -x2 avgub uv1, uv1, uv2 -x2 select1wb yy, ayay -x2 mergebw yuy2, yy, uv1 - - -.function videomixer_video_convert_orc_putline_YVYU -.dest 4 yuy2 guint8 -.source 8 ayuv guint8 -.temp 2 yy -.temp 2 uv1 -.temp 2 uv2 -.temp 4 ayay -.temp 4 uvuv - -x2 splitlw uvuv, ayay, ayuv -splitlw uv1, uv2, uvuv -x2 avgub uv1, uv1, uv2 -x2 select1wb yy, ayay -swapw uv1, uv1 -x2 mergebw yuy2, yy, uv1 - - -.function videomixer_video_convert_orc_putline_UYVY -.dest 4 yuy2 guint8 -.source 8 ayuv guint8 -.temp 2 yy -.temp 2 uv1 -.temp 2 uv2 -.temp 4 ayay -.temp 4 uvuv - -x2 splitlw uvuv, ayay, ayuv -splitlw uv1, uv2, uvuv -x2 avgub uv1, uv1, uv2 -x2 select1wb yy, ayay -x2 mergebw yuy2, uv1, yy - - - -.function videomixer_video_convert_orc_putline_Y42B -.dest 2 y guint8 -.dest 1 u guint8 -.dest 1 v guint8 -.source 8 ayuv guint8 -.temp 4 ayay -.temp 4 uvuv -.temp 2 uv1 -.temp 2 uv2 - -x2 splitlw uvuv, ayay, ayuv -splitlw uv1, uv2, uvuv -x2 avgub uv1, uv1, uv2 -splitwb v, u, uv1 -x2 select1wb y, ayay - - -.function videomixer_video_convert_orc_putline_Y444 -.dest 1 y guint8 -.dest 1 u guint8 -.dest 1 v guint8 -.source 4 ayuv guint8 -.temp 2 ay -.temp 2 uv - -splitlw uv, ay, ayuv -splitwb v, u, uv -select1wb y, ay - - -.function videomixer_video_convert_orc_putline_Y800 -.dest 1 y guint8 -.source 4 ayuv guint8 -.temp 2 ay - -select0lw ay, ayuv -select1wb y, ay - -.function videomixer_video_convert_orc_putline_Y16 -.dest 2 y guint8 -.source 4 ayuv guint8 -.temp 2 ay -.temp 1 yb - -select0lw ay, ayuv -select1wb yb, ay -convubw ay, yb -shlw y, ay, 8 - -.function videomixer_video_convert_orc_putline_BGRA -.dest 4 bgra guint8 -.source 4 argb guint8 - -swapl bgra, argb - - -.function videomixer_video_convert_orc_putline_ABGR -.dest 4 abgr guint8 -.source 4 argb guint8 -.temp 1 a -.temp 1 r -.temp 1 g -.temp 1 b -.temp 2 gr -.temp 2 ab -.temp 2 ar -.temp 2 gb - -splitlw gb, ar, argb -splitwb b, g, gb -splitwb r, a, ar -mergebw ab, a, b -mergebw gr, g, r -mergewl abgr, ab, gr - - -.function videomixer_video_convert_orc_putline_RGBA -.dest 4 rgba guint8 -.source 4 argb guint8 -.temp 1 a -.temp 1 r -.temp 1 g -.temp 1 b -.temp 2 rg -.temp 2 ba -.temp 2 ar -.temp 2 gb - -splitlw gb, ar, argb -splitwb b, g, gb -splitwb r, a, ar -mergebw ba, b, a -mergebw rg, r, g -mergewl rgba, rg, ba - - -.function videomixer_video_convert_orc_putline_NV12 -.dest 2 y guint8 -.dest 2 uv guint8 -.source 8 ayuv guint8 -.temp 4 ay -.temp 4 uvuv -.temp 2 uv1 -.temp 2 uv2 - -x2 splitlw uvuv, ay, ayuv -x2 select1wb y, ay -splitlw uv1, uv2, uvuv -x2 avgub uv, uv1, uv2 - - -.function videomixer_video_convert_orc_putline_NV21 -.dest 2 y guint8 -.dest 2 vu guint8 -.source 8 ayuv guint8 -.temp 4 ay -.temp 4 uvuv -.temp 2 uv1 -.temp 2 uv2 -.temp 2 uv - -x2 splitlw uvuv, ay, ayuv -x2 select1wb y, ay -splitlw uv1, uv2, uvuv -x2 avgub uv, uv1, uv2 -swapw vu, uv - -.function videomixer_video_convert_orc_putline_A420 -.dest 2 y guint8 -.dest 1 u guint8 -.dest 1 v guint8 -.dest 2 a guint8 -.source 8 ayuv guint8 -.temp 4 ay -.temp 4 uv -.temp 2 uu -.temp 2 vv -.temp 1 t1 -.temp 1 t2 - -x2 splitlw uv, ay, ayuv -x2 select1wb y, ay -x2 select0wb a, ay -x2 splitwb vv, uu, uv -splitwb t1, t2, uu -avgub u, t1, t2 -splitwb t1, t2, vv -avgub v, t1, t2 |