Mercurial > mplayer.hg
comparison libvo/vo_png.c @ 24671:fbcd9dcb0daf
Get rid of mp_msg_test in vo_png, only reason to use it is performance and
that is not critical here and the way it was used probably would not improve
performance anyway
author | reimar |
---|---|
date | Wed, 03 Oct 2007 11:55:30 +0000 |
parents | a2599160737c |
children | 3aee342be929 |
comparison
equal
deleted
inserted
replaced
24670:a2599160737c | 24671:fbcd9dcb0daf |
---|---|
50 mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_PNG_Warning1); | 50 mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_PNG_Warning1); |
51 mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_PNG_Warning2); | 51 mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_PNG_Warning2); |
52 mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_PNG_Warning3); | 52 mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_PNG_Warning3); |
53 } | 53 } |
54 | 54 |
55 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 55 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Compression level %i\n", z_compression); |
56 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Compression level %i\n", z_compression); } | |
57 | 56 |
58 return 0; | 57 return 0; |
59 } | 58 } |
60 | 59 |
61 | 60 |
71 (PNG_LIBPNG_VER_STRING, NULL, | 70 (PNG_LIBPNG_VER_STRING, NULL, |
72 NULL, NULL); | 71 NULL, NULL); |
73 png.info_ptr = png_create_info_struct(png.png_ptr); | 72 png.info_ptr = png_create_info_struct(png.png_ptr); |
74 | 73 |
75 if (!png.png_ptr) { | 74 if (!png.png_ptr) { |
76 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 75 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Failed to init png pointer\n"); |
77 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Failed to init png pointer\n"); } | |
78 png.status = ERROR; | 76 png.status = ERROR; |
79 return png; | 77 return png; |
80 } | 78 } |
81 | 79 |
82 if (!png.info_ptr) { | 80 if (!png.info_ptr) { |
83 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 81 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Failed to init png infopointer\n"); |
84 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Failed to init png infopointer\n"); } | |
85 png_destroy_write_struct(&png.png_ptr, | 82 png_destroy_write_struct(&png.png_ptr, |
86 (png_infopp)NULL); | 83 (png_infopp)NULL); |
87 png.status = ERROR; | 84 png.status = ERROR; |
88 return png; | 85 return png; |
89 } | 86 } |
90 | 87 |
91 if (setjmp(png.png_ptr->jmpbuf)) { | 88 if (setjmp(png.png_ptr->jmpbuf)) { |
92 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 89 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Internal error!\n"); |
93 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Internal error!\n"); } | |
94 png_destroy_write_struct(&png.png_ptr, &png.info_ptr); | 90 png_destroy_write_struct(&png.png_ptr, &png.info_ptr); |
95 fclose(png.fp); | 91 fclose(png.fp); |
96 png.status = ERROR; | 92 png.status = ERROR; |
97 return png; | 93 return png; |
98 } | 94 } |
102 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_PNG_ErrorOpeningForWriting, strerror(errno)); | 98 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_PNG_ErrorOpeningForWriting, strerror(errno)); |
103 png.status = ERROR; | 99 png.status = ERROR; |
104 return png; | 100 return png; |
105 } | 101 } |
106 | 102 |
107 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 103 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Init IO\n"); |
108 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Init IO\n"); } | |
109 png_init_io(png.png_ptr, png.fp); | 104 png_init_io(png.png_ptr, png.fp); |
110 | 105 |
111 /* set the zlib compression level */ | 106 /* set the zlib compression level */ |
112 png_set_compression_level(png.png_ptr, z_compression); | 107 png_set_compression_level(png.png_ptr, z_compression); |
113 | 108 |
117 compression_type, filter_type)*/ | 112 compression_type, filter_type)*/ |
118 png_set_IHDR(png.png_ptr, png.info_ptr, image_width, image_height, | 113 png_set_IHDR(png.png_ptr, png.info_ptr, image_width, image_height, |
119 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, | 114 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, |
120 PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); | 115 PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); |
121 | 116 |
122 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 117 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Write Info\n"); |
123 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Write Info\n"); } | |
124 png_write_info(png.png_ptr, png.info_ptr); | 118 png_write_info(png.png_ptr, png.info_ptr); |
125 | 119 |
126 if(swapped) { | 120 if(swapped) { |
127 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 121 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Set BGR Conversion\n"); |
128 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Set BGR Conversion\n"); } | |
129 png_set_bgr(png.png_ptr); | 122 png_set_bgr(png.png_ptr); |
130 } | 123 } |
131 | 124 |
132 png.status = OK; | 125 png.status = OK; |
133 return png; | 126 return png; |
134 } | 127 } |
135 | 128 |
136 static uint8_t destroy_png(struct pngdata png) { | 129 static uint8_t destroy_png(struct pngdata png) { |
137 | 130 |
138 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 131 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Write End\n"); |
139 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Write End\n"); } | |
140 png_write_end(png.png_ptr, png.info_ptr); | 132 png_write_end(png.png_ptr, png.info_ptr); |
141 | 133 |
142 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 134 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Destroy Write Struct\n"); |
143 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Destroy Write Struct\n"); } | |
144 png_destroy_write_struct(&png.png_ptr, &png.info_ptr); | 135 png_destroy_write_struct(&png.png_ptr, &png.info_ptr); |
145 | 136 |
146 fclose (png.fp); | 137 fclose (png.fp); |
147 | 138 |
148 return 0; | 139 return 0; |
164 if(png.status){ | 155 if(png.status){ |
165 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_PNG_ErrorInCreatePng); | 156 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_PNG_ErrorInCreatePng); |
166 return 1; | 157 return 1; |
167 } | 158 } |
168 | 159 |
169 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { | 160 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Creating Row Pointers\n"); |
170 mp_msg(MSGT_VO,MSGL_DBG2, "PNG Creating Row Pointers\n"); } | |
171 for ( k = 0; k < mpi->h; k++ ) | 161 for ( k = 0; k < mpi->h; k++ ) |
172 row_pointers[k] = mpi->planes[0]+mpi->stride[0]*k; | 162 row_pointers[k] = mpi->planes[0]+mpi->stride[0]*k; |
173 | 163 |
174 //png_write_flush(png.png_ptr); | 164 //png_write_flush(png.png_ptr); |
175 //png_set_flush(png.png_ptr, nrows); | 165 //png_set_flush(png.png_ptr, nrows); |