Mercurial > mplayer.hg
annotate libvo/vo_jpeg.c @ 11007:48b7d7aa444d
configure altivec patch by Magnus Damm <damm@opensource.se>
* CC is not checked for Altivec support (see above).
The patch adds checks for FSF-style flags and Darwin-style flags.
The check is performed regardless of the gcc version.
* Disabling of Altivec.
--disable-altivec is broken today if /proc/cpuinfo shows that your cpu
supports altivec. The patch takes care of that.
* "GCC & CPU optimization abilities" always show that it is optimizing
for the cpu configure is running on, it should show the optimization that
is enabled for gcc instead. Cosmetic change only, but confusing as it is
today IMHO.
* Runtime CPU-detection now enables altivec for powerpc.
Now with the patch it should be possible to use --enable-altivec,
--disable-altivec, --enable-runtime-cpudetection regardless of powerpc cpu type.
The configure script handles altivec support in the following order:
1. Altivec is enabled by default if your cpu supports it.
2. --enable-runtime-cpudetection will enable altivec support.
3. If you have forced altivec on/off with --enable-altivec/--disable-altivec, then
your selection will override the previous altivec configuration.
4. If altivec is enabled but the compiler doesn't support it, altivec gets turned off.
author | attila |
---|---|
date | Sat, 04 Oct 2003 23:06:04 +0000 |
parents | 98791b90215a |
children | db49cdedb88d |
rev | line source |
---|---|
5648 | 1 /* |
2 * vo_jpeg.c, JPEG Renderer for Mplayer | |
3 * | |
5649 | 4 * Copyright 2002 by Pontscho (pontscho@makacs.poliod.hu) |
9989
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
5 * 25/04/2003: Spring cleanup -- alex |
5648 | 6 * |
7 */ | |
8 | |
9 #include <stdio.h> | |
10 #include <stdlib.h> | |
11 #include <string.h> | |
12 #include <errno.h> | |
13 | |
14 #include <jpeglib.h> | |
15 | |
16 #include "config.h" | |
17 #include "video_out.h" | |
18 #include "video_out_internal.h" | |
19 | |
8148
5b39e79af5fe
removed get_info, using the same sheme as in libmpcodecs instead
alex
parents:
7487
diff
changeset
|
20 static vo_info_t info= |
5648 | 21 { |
22 "JPEG file", | |
23 "jpeg", | |
24 "Zoltan Ponekker (pontscho@makacs.poliod.hu)", | |
25 "" | |
26 }; | |
27 | |
8148
5b39e79af5fe
removed get_info, using the same sheme as in libmpcodecs instead
alex
parents:
7487
diff
changeset
|
28 LIBVO_EXTERN (jpeg) |
5b39e79af5fe
removed get_info, using the same sheme as in libmpcodecs instead
alex
parents:
7487
diff
changeset
|
29 |
5648 | 30 static int image_width; |
31 static int image_height; | |
32 | |
33 int jpeg_baseline = 1; | |
34 int jpeg_progressive_mode = 0; | |
35 int jpeg_optimize = 100; | |
36 int jpeg_smooth = 0; | |
37 int jpeg_quality = 75; | |
5659 | 38 char * jpeg_outdir = "."; |
5648 | 39 |
40 static int framenum=0; | |
41 | |
7124
eca7dbad0166
finally removed query_vaa, bes_da and vo_tune_info - the obsoleted libvo api
alex
parents:
6751
diff
changeset
|
42 static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format) |
5648 | 43 { |
44 image_height=height; | |
45 image_width=width; | |
46 | |
47 return 0; | |
48 } | |
49 | |
50 static uint32_t jpeg_write( uint8_t * name,uint8_t * buffer ) | |
51 { | |
52 FILE * o; | |
53 struct jpeg_compress_struct cinfo; | |
54 struct jpeg_error_mgr jerr; | |
55 JSAMPROW row_pointer[1]; | |
56 int row_stride; | |
57 | |
58 if ( !buffer ) return 1; | |
59 if ( (o=fopen( name,"wb" )) == NULL ) return 1; | |
60 | |
61 cinfo.err=jpeg_std_error(&jerr); | |
62 jpeg_create_compress(&cinfo); | |
63 jpeg_stdio_dest( &cinfo,o ); | |
64 | |
65 cinfo.image_width=image_width; | |
66 cinfo.image_height=image_height; | |
9989
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
67 cinfo.input_components=3; |
5648 | 68 cinfo.in_color_space=JCS_RGB; |
8267 | 69 |
70 jpeg_set_defaults( &cinfo ); | |
71 jpeg_set_quality( &cinfo,jpeg_quality,jpeg_baseline ); | |
5648 | 72 cinfo.optimize_coding=jpeg_optimize; |
73 cinfo.smoothing_factor=jpeg_smooth; | |
8267 | 74 |
5648 | 75 if ( jpeg_progressive_mode ) jpeg_simple_progression( &cinfo ); |
76 jpeg_start_compress( &cinfo,TRUE ); | |
77 | |
9989
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
78 row_stride = image_width * 3; |
5648 | 79 while ( cinfo.next_scanline < cinfo.image_height ) |
80 { | |
81 row_pointer[0]=&buffer[ cinfo.next_scanline * row_stride ]; | |
82 (void)jpeg_write_scanlines( &cinfo,row_pointer,1 ); | |
83 } | |
84 | |
85 jpeg_finish_compress( &cinfo ); | |
86 fclose( o ); | |
87 jpeg_destroy_compress( &cinfo ); | |
88 | |
89 return 0; | |
90 } | |
91 | |
92 static uint32_t draw_frame(uint8_t * src[]) | |
93 { | |
94 char buf[256]; | |
6751 | 95 uint8_t *dst= src[0]; |
5648 | 96 |
97 snprintf (buf, 256, "%s/%08d.jpg", jpeg_outdir, ++framenum); | |
98 | |
9989
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
99 return jpeg_write( buf,src[0] ); |
5648 | 100 } |
101 | |
102 static void draw_osd(void) | |
103 { | |
104 } | |
105 | |
106 static void flip_page (void) | |
107 { | |
108 } | |
109 | |
110 static uint32_t draw_slice( uint8_t *src[],int stride[],int w,int h,int x,int y ) | |
111 { | |
112 return 0; | |
113 } | |
114 | |
115 static uint32_t query_format(uint32_t format) | |
116 { | |
9989
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
117 if (format == IMGFMT_RGB24) |
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
118 return VFCAP_CSP_SUPPORTED|VFCAP_CSP_SUPPORTED_BY_HW; |
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
119 |
98791b90215a
Spring cleanup: supporting only RGB24 as input (native jpeg lib supports only that, maybe we could later add nativ YCbCr (YUV) support, but not swscale ones)
alex
parents:
9019
diff
changeset
|
120 return 0; |
5648 | 121 } |
122 | |
123 static void uninit(void) | |
124 { | |
125 } | |
126 | |
127 static void check_events(void) | |
128 { | |
129 } | |
130 | |
131 static uint32_t preinit(const char *arg) | |
132 { | |
133 return 0; | |
134 } | |
135 | |
136 static uint32_t control(uint32_t request, void *data, ...) | |
137 { | |
138 switch (request) | |
139 { | |
140 case VOCTRL_QUERY_FORMAT: | |
141 return query_format(*((uint32_t*)data)); | |
142 } | |
143 return VO_NOTIMPL; | |
144 } |