Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: source/convert_from_argb.cc

Issue 1398633002: change all pix parameters to width for consistency (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/convert_from.cc ('k') | source/row_common.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 10 matching lines...) Expand all
21 #endif 21 #endif
22 22
23 // ARGB little endian (bgra in memory) to I444 23 // ARGB little endian (bgra in memory) to I444
24 LIBYUV_API 24 LIBYUV_API
25 int ARGBToI444(const uint8* src_argb, int src_stride_argb, 25 int ARGBToI444(const uint8* src_argb, int src_stride_argb,
26 uint8* dst_y, int dst_stride_y, 26 uint8* dst_y, int dst_stride_y,
27 uint8* dst_u, int dst_stride_u, 27 uint8* dst_u, int dst_stride_u,
28 uint8* dst_v, int dst_stride_v, 28 uint8* dst_v, int dst_stride_v,
29 int width, int height) { 29 int width, int height) {
30 int y; 30 int y;
31 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 31 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
32 ARGBToYRow_C; 32 ARGBToYRow_C;
33 void (*ARGBToUV444Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v, 33 void (*ARGBToUV444Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
34 int pix) = ARGBToUV444Row_C; 34 int width) = ARGBToUV444Row_C;
35 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) { 35 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) {
36 return -1; 36 return -1;
37 } 37 }
38 if (height < 0) { 38 if (height < 0) {
39 height = -height; 39 height = -height;
40 src_argb = src_argb + (height - 1) * src_stride_argb; 40 src_argb = src_argb + (height - 1) * src_stride_argb;
41 src_stride_argb = -src_stride_argb; 41 src_stride_argb = -src_stride_argb;
42 } 42 }
43 // Coalesce rows. 43 // Coalesce rows.
44 if (src_stride_argb == width * 4 && 44 if (src_stride_argb == width * 4 &&
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 103
104 // ARGB little endian (bgra in memory) to I422 104 // ARGB little endian (bgra in memory) to I422
105 LIBYUV_API 105 LIBYUV_API
106 int ARGBToI422(const uint8* src_argb, int src_stride_argb, 106 int ARGBToI422(const uint8* src_argb, int src_stride_argb,
107 uint8* dst_y, int dst_stride_y, 107 uint8* dst_y, int dst_stride_y,
108 uint8* dst_u, int dst_stride_u, 108 uint8* dst_u, int dst_stride_u,
109 uint8* dst_v, int dst_stride_v, 109 uint8* dst_v, int dst_stride_v,
110 int width, int height) { 110 int width, int height) {
111 int y; 111 int y;
112 void (*ARGBToUV422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v, 112 void (*ARGBToUV422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
113 int pix) = ARGBToUV422Row_C; 113 int width) = ARGBToUV422Row_C;
114 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 114 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
115 ARGBToYRow_C; 115 ARGBToYRow_C;
116 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) { 116 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) {
117 return -1; 117 return -1;
118 } 118 }
119 if (height < 0) { 119 if (height < 0) {
120 height = -height; 120 height = -height;
121 src_argb = src_argb + (height - 1) * src_stride_argb; 121 src_argb = src_argb + (height - 1) * src_stride_argb;
122 src_stride_argb = -src_stride_argb; 122 src_stride_argb = -src_stride_argb;
123 } 123 }
124 // Coalesce rows. 124 // Coalesce rows.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 184
185 // ARGB little endian (bgra in memory) to I411 185 // ARGB little endian (bgra in memory) to I411
186 LIBYUV_API 186 LIBYUV_API
187 int ARGBToI411(const uint8* src_argb, int src_stride_argb, 187 int ARGBToI411(const uint8* src_argb, int src_stride_argb,
188 uint8* dst_y, int dst_stride_y, 188 uint8* dst_y, int dst_stride_y,
189 uint8* dst_u, int dst_stride_u, 189 uint8* dst_u, int dst_stride_u,
190 uint8* dst_v, int dst_stride_v, 190 uint8* dst_v, int dst_stride_v,
191 int width, int height) { 191 int width, int height) {
192 int y; 192 int y;
193 void (*ARGBToUV411Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v, 193 void (*ARGBToUV411Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
194 int pix) = ARGBToUV411Row_C; 194 int width) = ARGBToUV411Row_C;
195 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 195 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
196 ARGBToYRow_C; 196 ARGBToYRow_C;
197 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) { 197 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) {
198 return -1; 198 return -1;
199 } 199 }
200 if (height < 0) { 200 if (height < 0) {
201 height = -height; 201 height = -height;
202 src_argb = src_argb + (height - 1) * src_stride_argb; 202 src_argb = src_argb + (height - 1) * src_stride_argb;
203 src_stride_argb = -src_stride_argb; 203 src_stride_argb = -src_stride_argb;
204 } 204 }
205 // Coalesce rows. 205 // Coalesce rows.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 257
258 LIBYUV_API 258 LIBYUV_API
259 int ARGBToNV12(const uint8* src_argb, int src_stride_argb, 259 int ARGBToNV12(const uint8* src_argb, int src_stride_argb,
260 uint8* dst_y, int dst_stride_y, 260 uint8* dst_y, int dst_stride_y,
261 uint8* dst_uv, int dst_stride_uv, 261 uint8* dst_uv, int dst_stride_uv,
262 int width, int height) { 262 int width, int height) {
263 int y; 263 int y;
264 int halfwidth = (width + 1) >> 1; 264 int halfwidth = (width + 1) >> 1;
265 void (*ARGBToUVRow)(const uint8* src_argb0, int src_stride_argb, 265 void (*ARGBToUVRow)(const uint8* src_argb0, int src_stride_argb,
266 uint8* dst_u, uint8* dst_v, int width) = ARGBToUVRow_C; 266 uint8* dst_u, uint8* dst_v, int width) = ARGBToUVRow_C;
267 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 267 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
268 ARGBToYRow_C; 268 ARGBToYRow_C;
269 void (*MergeUVRow_)(const uint8* src_u, const uint8* src_v, uint8* dst_uv, 269 void (*MergeUVRow_)(const uint8* src_u, const uint8* src_v, uint8* dst_uv,
270 int width) = MergeUVRow_C; 270 int width) = MergeUVRow_C;
271 if (!src_argb || 271 if (!src_argb ||
272 !dst_y || !dst_uv || 272 !dst_y || !dst_uv ||
273 width <= 0 || height == 0) { 273 width <= 0 || height == 0) {
274 return -1; 274 return -1;
275 } 275 }
276 // Negative height means invert the image. 276 // Negative height means invert the image.
277 if (height < 0) { 277 if (height < 0) {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 // Same as NV12 but U and V swapped. 366 // Same as NV12 but U and V swapped.
367 LIBYUV_API 367 LIBYUV_API
368 int ARGBToNV21(const uint8* src_argb, int src_stride_argb, 368 int ARGBToNV21(const uint8* src_argb, int src_stride_argb,
369 uint8* dst_y, int dst_stride_y, 369 uint8* dst_y, int dst_stride_y,
370 uint8* dst_uv, int dst_stride_uv, 370 uint8* dst_uv, int dst_stride_uv,
371 int width, int height) { 371 int width, int height) {
372 int y; 372 int y;
373 int halfwidth = (width + 1) >> 1; 373 int halfwidth = (width + 1) >> 1;
374 void (*ARGBToUVRow)(const uint8* src_argb0, int src_stride_argb, 374 void (*ARGBToUVRow)(const uint8* src_argb0, int src_stride_argb,
375 uint8* dst_u, uint8* dst_v, int width) = ARGBToUVRow_C; 375 uint8* dst_u, uint8* dst_v, int width) = ARGBToUVRow_C;
376 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 376 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
377 ARGBToYRow_C; 377 ARGBToYRow_C;
378 void (*MergeUVRow_)(const uint8* src_u, const uint8* src_v, uint8* dst_uv, 378 void (*MergeUVRow_)(const uint8* src_u, const uint8* src_v, uint8* dst_uv,
379 int width) = MergeUVRow_C; 379 int width) = MergeUVRow_C;
380 if (!src_argb || 380 if (!src_argb ||
381 !dst_y || !dst_uv || 381 !dst_y || !dst_uv ||
382 width <= 0 || height == 0) { 382 width <= 0 || height == 0) {
383 return -1; 383 return -1;
384 } 384 }
385 // Negative height means invert the image. 385 // Negative height means invert the image.
386 if (height < 0) { 386 if (height < 0) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 return 0; 472 return 0;
473 } 473 }
474 474
475 // Convert ARGB to YUY2. 475 // Convert ARGB to YUY2.
476 LIBYUV_API 476 LIBYUV_API
477 int ARGBToYUY2(const uint8* src_argb, int src_stride_argb, 477 int ARGBToYUY2(const uint8* src_argb, int src_stride_argb,
478 uint8* dst_yuy2, int dst_stride_yuy2, 478 uint8* dst_yuy2, int dst_stride_yuy2,
479 int width, int height) { 479 int width, int height) {
480 int y; 480 int y;
481 void (*ARGBToUV422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v, 481 void (*ARGBToUV422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
482 int pix) = ARGBToUV422Row_C; 482 int width) = ARGBToUV422Row_C;
483 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 483 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
484 ARGBToYRow_C; 484 ARGBToYRow_C;
485 void (*I422ToYUY2Row)(const uint8* src_y, const uint8* src_u, 485 void (*I422ToYUY2Row)(const uint8* src_y, const uint8* src_u,
486 const uint8* src_v, uint8* dst_yuy2, int width) = I422ToYUY2Row_C; 486 const uint8* src_v, uint8* dst_yuy2, int width) = I422ToYUY2Row_C;
487 487
488 if (!src_argb || !dst_yuy2 || 488 if (!src_argb || !dst_yuy2 ||
489 width <= 0 || height == 0) { 489 width <= 0 || height == 0) {
490 return -1; 490 return -1;
491 } 491 }
492 // Negative height means invert the image. 492 // Negative height means invert the image.
493 if (height < 0) { 493 if (height < 0) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 return 0; 579 return 0;
580 } 580 }
581 581
582 // Convert ARGB to UYVY. 582 // Convert ARGB to UYVY.
583 LIBYUV_API 583 LIBYUV_API
584 int ARGBToUYVY(const uint8* src_argb, int src_stride_argb, 584 int ARGBToUYVY(const uint8* src_argb, int src_stride_argb,
585 uint8* dst_uyvy, int dst_stride_uyvy, 585 uint8* dst_uyvy, int dst_stride_uyvy,
586 int width, int height) { 586 int width, int height) {
587 int y; 587 int y;
588 void (*ARGBToUV422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v, 588 void (*ARGBToUV422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
589 int pix) = ARGBToUV422Row_C; 589 int width) = ARGBToUV422Row_C;
590 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 590 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
591 ARGBToYRow_C; 591 ARGBToYRow_C;
592 void (*I422ToUYVYRow)(const uint8* src_y, const uint8* src_u, 592 void (*I422ToUYVYRow)(const uint8* src_y, const uint8* src_u,
593 const uint8* src_v, uint8* dst_uyvy, int width) = I422ToUYVYRow_C; 593 const uint8* src_v, uint8* dst_uyvy, int width) = I422ToUYVYRow_C;
594 594
595 if (!src_argb || !dst_uyvy || 595 if (!src_argb || !dst_uyvy ||
596 width <= 0 || height == 0) { 596 width <= 0 || height == 0) {
597 return -1; 597 return -1;
598 } 598 }
599 // Negative height means invert the image. 599 // Negative height means invert the image.
600 if (height < 0) { 600 if (height < 0) {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 } 685 }
686 return 0; 686 return 0;
687 } 687 }
688 688
689 // Convert ARGB to I400. 689 // Convert ARGB to I400.
690 LIBYUV_API 690 LIBYUV_API
691 int ARGBToI400(const uint8* src_argb, int src_stride_argb, 691 int ARGBToI400(const uint8* src_argb, int src_stride_argb,
692 uint8* dst_y, int dst_stride_y, 692 uint8* dst_y, int dst_stride_y,
693 int width, int height) { 693 int width, int height) {
694 int y; 694 int y;
695 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int pix) = 695 void (*ARGBToYRow)(const uint8* src_argb, uint8* dst_y, int width) =
696 ARGBToYRow_C; 696 ARGBToYRow_C;
697 if (!src_argb || !dst_y || width <= 0 || height == 0) { 697 if (!src_argb || !dst_y || width <= 0 || height == 0) {
698 return -1; 698 return -1;
699 } 699 }
700 if (height < 0) { 700 if (height < 0) {
701 height = -height; 701 height = -height;
702 src_argb = src_argb + (height - 1) * src_stride_argb; 702 src_argb = src_argb + (height - 1) * src_stride_argb;
703 src_stride_argb = -src_stride_argb; 703 src_stride_argb = -src_stride_argb;
704 } 704 }
705 // Coalesce rows. 705 // Coalesce rows.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 (const uint8*)(&kShuffleMaskARGBToRGBA), 757 (const uint8*)(&kShuffleMaskARGBToRGBA),
758 width, height); 758 width, height);
759 } 759 }
760 760
761 // Convert ARGB To RGB24. 761 // Convert ARGB To RGB24.
762 LIBYUV_API 762 LIBYUV_API
763 int ARGBToRGB24(const uint8* src_argb, int src_stride_argb, 763 int ARGBToRGB24(const uint8* src_argb, int src_stride_argb,
764 uint8* dst_rgb24, int dst_stride_rgb24, 764 uint8* dst_rgb24, int dst_stride_rgb24,
765 int width, int height) { 765 int width, int height) {
766 int y; 766 int y;
767 void (*ARGBToRGB24Row)(const uint8* src_argb, uint8* dst_rgb, int pix) = 767 void (*ARGBToRGB24Row)(const uint8* src_argb, uint8* dst_rgb, int width) =
768 ARGBToRGB24Row_C; 768 ARGBToRGB24Row_C;
769 if (!src_argb || !dst_rgb24 || width <= 0 || height == 0) { 769 if (!src_argb || !dst_rgb24 || width <= 0 || height == 0) {
770 return -1; 770 return -1;
771 } 771 }
772 if (height < 0) { 772 if (height < 0) {
773 height = -height; 773 height = -height;
774 src_argb = src_argb + (height - 1) * src_stride_argb; 774 src_argb = src_argb + (height - 1) * src_stride_argb;
775 src_stride_argb = -src_stride_argb; 775 src_stride_argb = -src_stride_argb;
776 } 776 }
777 // Coalesce rows. 777 // Coalesce rows.
(...skipping 27 matching lines...) Expand all
805 } 805 }
806 return 0; 806 return 0;
807 } 807 }
808 808
809 // Convert ARGB To RAW. 809 // Convert ARGB To RAW.
810 LIBYUV_API 810 LIBYUV_API
811 int ARGBToRAW(const uint8* src_argb, int src_stride_argb, 811 int ARGBToRAW(const uint8* src_argb, int src_stride_argb,
812 uint8* dst_raw, int dst_stride_raw, 812 uint8* dst_raw, int dst_stride_raw,
813 int width, int height) { 813 int width, int height) {
814 int y; 814 int y;
815 void (*ARGBToRAWRow)(const uint8* src_argb, uint8* dst_rgb, int pix) = 815 void (*ARGBToRAWRow)(const uint8* src_argb, uint8* dst_rgb, int width) =
816 ARGBToRAWRow_C; 816 ARGBToRAWRow_C;
817 if (!src_argb || !dst_raw || width <= 0 || height == 0) { 817 if (!src_argb || !dst_raw || width <= 0 || height == 0) {
818 return -1; 818 return -1;
819 } 819 }
820 if (height < 0) { 820 if (height < 0) {
821 height = -height; 821 height = -height;
822 src_argb = src_argb + (height - 1) * src_stride_argb; 822 src_argb = src_argb + (height - 1) * src_stride_argb;
823 src_stride_argb = -src_stride_argb; 823 src_stride_argb = -src_stride_argb;
824 } 824 }
825 // Coalesce rows. 825 // Coalesce rows.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 7, 3, 6, 2, 862 7, 3, 6, 2,
863 }; 863 };
864 864
865 // Convert ARGB To RGB565 with 4x4 dither matrix (16 bytes). 865 // Convert ARGB To RGB565 with 4x4 dither matrix (16 bytes).
866 LIBYUV_API 866 LIBYUV_API
867 int ARGBToRGB565Dither(const uint8* src_argb, int src_stride_argb, 867 int ARGBToRGB565Dither(const uint8* src_argb, int src_stride_argb,
868 uint8* dst_rgb565, int dst_stride_rgb565, 868 uint8* dst_rgb565, int dst_stride_rgb565,
869 const uint8* dither4x4, int width, int height) { 869 const uint8* dither4x4, int width, int height) {
870 int y; 870 int y;
871 void (*ARGBToRGB565DitherRow)(const uint8* src_argb, uint8* dst_rgb, 871 void (*ARGBToRGB565DitherRow)(const uint8* src_argb, uint8* dst_rgb,
872 const uint32 dither4, int pix) = ARGBToRGB565DitherRow_C; 872 const uint32 dither4, int width) = ARGBToRGB565DitherRow_C;
873 if (!src_argb || !dst_rgb565 || width <= 0 || height == 0) { 873 if (!src_argb || !dst_rgb565 || width <= 0 || height == 0) {
874 return -1; 874 return -1;
875 } 875 }
876 if (height < 0) { 876 if (height < 0) {
877 height = -height; 877 height = -height;
878 src_argb = src_argb + (height - 1) * src_stride_argb; 878 src_argb = src_argb + (height - 1) * src_stride_argb;
879 src_stride_argb = -src_stride_argb; 879 src_stride_argb = -src_stride_argb;
880 } 880 }
881 if (!dither4x4) { 881 if (!dither4x4) {
882 dither4x4 = kDither565_4x4; 882 dither4x4 = kDither565_4x4;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 return 0; 914 return 0;
915 } 915 }
916 916
917 // Convert ARGB To RGB565. 917 // Convert ARGB To RGB565.
918 // TODO(fbarchard): Consider using dither function low level with zeros. 918 // TODO(fbarchard): Consider using dither function low level with zeros.
919 LIBYUV_API 919 LIBYUV_API
920 int ARGBToRGB565(const uint8* src_argb, int src_stride_argb, 920 int ARGBToRGB565(const uint8* src_argb, int src_stride_argb,
921 uint8* dst_rgb565, int dst_stride_rgb565, 921 uint8* dst_rgb565, int dst_stride_rgb565,
922 int width, int height) { 922 int width, int height) {
923 int y; 923 int y;
924 void (*ARGBToRGB565Row)(const uint8* src_argb, uint8* dst_rgb, int pix) = 924 void (*ARGBToRGB565Row)(const uint8* src_argb, uint8* dst_rgb, int width) =
925 ARGBToRGB565Row_C; 925 ARGBToRGB565Row_C;
926 if (!src_argb || !dst_rgb565 || width <= 0 || height == 0) { 926 if (!src_argb || !dst_rgb565 || width <= 0 || height == 0) {
927 return -1; 927 return -1;
928 } 928 }
929 if (height < 0) { 929 if (height < 0) {
930 height = -height; 930 height = -height;
931 src_argb = src_argb + (height - 1) * src_stride_argb; 931 src_argb = src_argb + (height - 1) * src_stride_argb;
932 src_stride_argb = -src_stride_argb; 932 src_stride_argb = -src_stride_argb;
933 } 933 }
934 // Coalesce rows. 934 // Coalesce rows.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 } 970 }
971 return 0; 971 return 0;
972 } 972 }
973 973
974 // Convert ARGB To ARGB1555. 974 // Convert ARGB To ARGB1555.
975 LIBYUV_API 975 LIBYUV_API
976 int ARGBToARGB1555(const uint8* src_argb, int src_stride_argb, 976 int ARGBToARGB1555(const uint8* src_argb, int src_stride_argb,
977 uint8* dst_argb1555, int dst_stride_argb1555, 977 uint8* dst_argb1555, int dst_stride_argb1555,
978 int width, int height) { 978 int width, int height) {
979 int y; 979 int y;
980 void (*ARGBToARGB1555Row)(const uint8* src_argb, uint8* dst_rgb, int pix) = 980 void (*ARGBToARGB1555Row)(const uint8* src_argb, uint8* dst_rgb, int width) =
981 ARGBToARGB1555Row_C; 981 ARGBToARGB1555Row_C;
982 if (!src_argb || !dst_argb1555 || width <= 0 || height == 0) { 982 if (!src_argb || !dst_argb1555 || width <= 0 || height == 0) {
983 return -1; 983 return -1;
984 } 984 }
985 if (height < 0) { 985 if (height < 0) {
986 height = -height; 986 height = -height;
987 src_argb = src_argb + (height - 1) * src_stride_argb; 987 src_argb = src_argb + (height - 1) * src_stride_argb;
988 src_stride_argb = -src_stride_argb; 988 src_stride_argb = -src_stride_argb;
989 } 989 }
990 // Coalesce rows. 990 // Coalesce rows.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 } 1026 }
1027 return 0; 1027 return 0;
1028 } 1028 }
1029 1029
1030 // Convert ARGB To ARGB4444. 1030 // Convert ARGB To ARGB4444.
1031 LIBYUV_API 1031 LIBYUV_API
1032 int ARGBToARGB4444(const uint8* src_argb, int src_stride_argb, 1032 int ARGBToARGB4444(const uint8* src_argb, int src_stride_argb,
1033 uint8* dst_argb4444, int dst_stride_argb4444, 1033 uint8* dst_argb4444, int dst_stride_argb4444,
1034 int width, int height) { 1034 int width, int height) {
1035 int y; 1035 int y;
1036 void (*ARGBToARGB4444Row)(const uint8* src_argb, uint8* dst_rgb, int pix) = 1036 void (*ARGBToARGB4444Row)(const uint8* src_argb, uint8* dst_rgb, int width) =
1037 ARGBToARGB4444Row_C; 1037 ARGBToARGB4444Row_C;
1038 if (!src_argb || !dst_argb4444 || width <= 0 || height == 0) { 1038 if (!src_argb || !dst_argb4444 || width <= 0 || height == 0) {
1039 return -1; 1039 return -1;
1040 } 1040 }
1041 if (height < 0) { 1041 if (height < 0) {
1042 height = -height; 1042 height = -height;
1043 src_argb = src_argb + (height - 1) * src_stride_argb; 1043 src_argb = src_argb + (height - 1) * src_stride_argb;
1044 src_stride_argb = -src_stride_argb; 1044 src_stride_argb = -src_stride_argb;
1045 } 1045 }
1046 // Coalesce rows. 1046 // Coalesce rows.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1086 // Convert ARGB to J420. (JPeg full range I420). 1086 // Convert ARGB to J420. (JPeg full range I420).
1087 LIBYUV_API 1087 LIBYUV_API
1088 int ARGBToJ420(const uint8* src_argb, int src_stride_argb, 1088 int ARGBToJ420(const uint8* src_argb, int src_stride_argb,
1089 uint8* dst_yj, int dst_stride_yj, 1089 uint8* dst_yj, int dst_stride_yj,
1090 uint8* dst_u, int dst_stride_u, 1090 uint8* dst_u, int dst_stride_u,
1091 uint8* dst_v, int dst_stride_v, 1091 uint8* dst_v, int dst_stride_v,
1092 int width, int height) { 1092 int width, int height) {
1093 int y; 1093 int y;
1094 void (*ARGBToUVJRow)(const uint8* src_argb0, int src_stride_argb, 1094 void (*ARGBToUVJRow)(const uint8* src_argb0, int src_stride_argb,
1095 uint8* dst_u, uint8* dst_v, int width) = ARGBToUVJRow_C; 1095 uint8* dst_u, uint8* dst_v, int width) = ARGBToUVJRow_C;
1096 void (*ARGBToYJRow)(const uint8* src_argb, uint8* dst_yj, int pix) = 1096 void (*ARGBToYJRow)(const uint8* src_argb, uint8* dst_yj, int width) =
1097 ARGBToYJRow_C; 1097 ARGBToYJRow_C;
1098 if (!src_argb || 1098 if (!src_argb ||
1099 !dst_yj || !dst_u || !dst_v || 1099 !dst_yj || !dst_u || !dst_v ||
1100 width <= 0 || height == 0) { 1100 width <= 0 || height == 0) {
1101 return -1; 1101 return -1;
1102 } 1102 }
1103 // Negative height means invert the image. 1103 // Negative height means invert the image.
1104 if (height < 0) { 1104 if (height < 0) {
1105 height = -height; 1105 height = -height;
1106 src_argb = src_argb + (height - 1) * src_stride_argb; 1106 src_argb = src_argb + (height - 1) * src_stride_argb;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1159 1159
1160 // ARGB little endian (bgra in memory) to J422 1160 // ARGB little endian (bgra in memory) to J422
1161 LIBYUV_API 1161 LIBYUV_API
1162 int ARGBToJ422(const uint8* src_argb, int src_stride_argb, 1162 int ARGBToJ422(const uint8* src_argb, int src_stride_argb,
1163 uint8* dst_y, int dst_stride_y, 1163 uint8* dst_y, int dst_stride_y,
1164 uint8* dst_u, int dst_stride_u, 1164 uint8* dst_u, int dst_stride_u,
1165 uint8* dst_v, int dst_stride_v, 1165 uint8* dst_v, int dst_stride_v,
1166 int width, int height) { 1166 int width, int height) {
1167 int y; 1167 int y;
1168 void (*ARGBToUVJ422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v, 1168 void (*ARGBToUVJ422Row)(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
1169 int pix) = ARGBToUVJ422Row_C; 1169 int width) = ARGBToUVJ422Row_C;
1170 void (*ARGBToYJRow)(const uint8* src_argb, uint8* dst_y, int pix) = 1170 void (*ARGBToYJRow)(const uint8* src_argb, uint8* dst_y, int width) =
1171 ARGBToYJRow_C; 1171 ARGBToYJRow_C;
1172 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) { 1172 if (!src_argb || !dst_y || !dst_u || !dst_v || width <= 0 || height == 0) {
1173 return -1; 1173 return -1;
1174 } 1174 }
1175 if (height < 0) { 1175 if (height < 0) {
1176 height = -height; 1176 height = -height;
1177 src_argb = src_argb + (height - 1) * src_stride_argb; 1177 src_argb = src_argb + (height - 1) * src_stride_argb;
1178 src_stride_argb = -src_stride_argb; 1178 src_stride_argb = -src_stride_argb;
1179 } 1179 }
1180 // Coalesce rows. 1180 // Coalesce rows.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 } 1238 }
1239 return 0; 1239 return 0;
1240 } 1240 }
1241 1241
1242 // Convert ARGB to J400. 1242 // Convert ARGB to J400.
1243 LIBYUV_API 1243 LIBYUV_API
1244 int ARGBToJ400(const uint8* src_argb, int src_stride_argb, 1244 int ARGBToJ400(const uint8* src_argb, int src_stride_argb,
1245 uint8* dst_yj, int dst_stride_yj, 1245 uint8* dst_yj, int dst_stride_yj,
1246 int width, int height) { 1246 int width, int height) {
1247 int y; 1247 int y;
1248 void (*ARGBToYJRow)(const uint8* src_argb, uint8* dst_yj, int pix) = 1248 void (*ARGBToYJRow)(const uint8* src_argb, uint8* dst_yj, int width) =
1249 ARGBToYJRow_C; 1249 ARGBToYJRow_C;
1250 if (!src_argb || !dst_yj || width <= 0 || height == 0) { 1250 if (!src_argb || !dst_yj || width <= 0 || height == 0) {
1251 return -1; 1251 return -1;
1252 } 1252 }
1253 if (height < 0) { 1253 if (height < 0) {
1254 height = -height; 1254 height = -height;
1255 src_argb = src_argb + (height - 1) * src_stride_argb; 1255 src_argb = src_argb + (height - 1) * src_stride_argb;
1256 src_stride_argb = -src_stride_argb; 1256 src_stride_argb = -src_stride_argb;
1257 } 1257 }
1258 // Coalesce rows. 1258 // Coalesce rows.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1292 src_argb += src_stride_argb; 1292 src_argb += src_stride_argb;
1293 dst_yj += dst_stride_yj; 1293 dst_yj += dst_stride_yj;
1294 } 1294 }
1295 return 0; 1295 return 0;
1296 } 1296 }
1297 1297
1298 #ifdef __cplusplus 1298 #ifdef __cplusplus
1299 } // extern "C" 1299 } // extern "C"
1300 } // namespace libyuv 1300 } // namespace libyuv
1301 #endif 1301 #endif
OLDNEW
« no previous file with comments | « source/convert_from.cc ('k') | source/row_common.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698