comparison cook.c @ 4302:a0f83004d485 libavcodec

av_log(NULL,... -> av_log(avctx,.. where appropriate.
author banan
date Thu, 14 Dec 2006 17:58:25 +0000
parents c8c591fe26f8
children 96a09fef9a67
comparison
equal deleted inserted replaced
4301:b43bd0c56eaa 4302:a0f83004d485
310 310
311 static int cook_decode_close(AVCodecContext *avctx) 311 static int cook_decode_close(AVCodecContext *avctx)
312 { 312 {
313 int i; 313 int i;
314 COOKContext *q = avctx->priv_data; 314 COOKContext *q = avctx->priv_data;
315 av_log(NULL,AV_LOG_DEBUG, "Deallocating memory.\n"); 315 av_log(avctx,AV_LOG_DEBUG, "Deallocating memory.\n");
316 316
317 /* Free allocated memory buffers. */ 317 /* Free allocated memory buffers. */
318 av_free(q->mlt_window); 318 av_free(q->mlt_window);
319 av_free(q->mlt_precos); 319 av_free(q->mlt_precos);
320 av_free(q->mlt_presin); 320 av_free(q->mlt_presin);
1158 COOKextradata *e = avctx->extradata; 1158 COOKextradata *e = avctx->extradata;
1159 COOKContext *q = avctx->priv_data; 1159 COOKContext *q = avctx->priv_data;
1160 1160
1161 /* Take care of the codec specific extradata. */ 1161 /* Take care of the codec specific extradata. */
1162 if (avctx->extradata_size <= 0) { 1162 if (avctx->extradata_size <= 0) {
1163 av_log(NULL,AV_LOG_ERROR,"Necessary extradata missing!\n"); 1163 av_log(avctx,AV_LOG_ERROR,"Necessary extradata missing!\n");
1164 return -1; 1164 return -1;
1165 } else { 1165 } else {
1166 /* 8 for mono, 16 for stereo, ? for multichannel 1166 /* 8 for mono, 16 for stereo, ? for multichannel
1167 Swap to right endianness so we don't need to care later on. */ 1167 Swap to right endianness so we don't need to care later on. */
1168 av_log(NULL,AV_LOG_DEBUG,"codecdata_length=%d\n",avctx->extradata_size); 1168 av_log(avctx,AV_LOG_DEBUG,"codecdata_length=%d\n",avctx->extradata_size);
1169 if (avctx->extradata_size >= 8){ 1169 if (avctx->extradata_size >= 8){
1170 e->cookversion = be2me_32(e->cookversion); 1170 e->cookversion = be2me_32(e->cookversion);
1171 e->samples_per_frame = be2me_16(e->samples_per_frame); 1171 e->samples_per_frame = be2me_16(e->samples_per_frame);
1172 e->subbands = be2me_16(e->subbands); 1172 e->subbands = be2me_16(e->subbands);
1173 } 1173 }
1199 /* Initialize version-dependent variables */ 1199 /* Initialize version-dependent variables */
1200 av_log(NULL,AV_LOG_DEBUG,"e->cookversion=%x\n",e->cookversion); 1200 av_log(NULL,AV_LOG_DEBUG,"e->cookversion=%x\n",e->cookversion);
1201 switch (e->cookversion) { 1201 switch (e->cookversion) {
1202 case MONO_COOK1: 1202 case MONO_COOK1:
1203 if (q->nb_channels != 1) { 1203 if (q->nb_channels != 1) {
1204 av_log(NULL,AV_LOG_ERROR,"Container channels != 1, report sample!\n"); 1204 av_log(avctx,AV_LOG_ERROR,"Container channels != 1, report sample!\n");
1205 return -1; 1205 return -1;
1206 } 1206 }
1207 av_log(NULL,AV_LOG_DEBUG,"MONO_COOK1\n"); 1207 av_log(avctx,AV_LOG_DEBUG,"MONO_COOK1\n");
1208 break; 1208 break;
1209 case MONO_COOK2: 1209 case MONO_COOK2:
1210 if (q->nb_channels != 1) { 1210 if (q->nb_channels != 1) {
1211 q->joint_stereo = 0; 1211 q->joint_stereo = 0;
1212 q->bits_per_subpacket = q->bits_per_subpacket/2; 1212 q->bits_per_subpacket = q->bits_per_subpacket/2;
1213 } 1213 }
1214 av_log(NULL,AV_LOG_DEBUG,"MONO_COOK2\n"); 1214 av_log(avctx,AV_LOG_DEBUG,"MONO_COOK2\n");
1215 break; 1215 break;
1216 case JOINT_STEREO: 1216 case JOINT_STEREO:
1217 if (q->nb_channels != 2) { 1217 if (q->nb_channels != 2) {
1218 av_log(NULL,AV_LOG_ERROR,"Container channels != 2, report sample!\n"); 1218 av_log(avctx,AV_LOG_ERROR,"Container channels != 2, report sample!\n");
1219 return -1; 1219 return -1;
1220 } 1220 }
1221 av_log(NULL,AV_LOG_DEBUG,"JOINT_STEREO\n"); 1221 av_log(avctx,AV_LOG_DEBUG,"JOINT_STEREO\n");
1222 if (avctx->extradata_size >= 16){ 1222 if (avctx->extradata_size >= 16){
1223 q->total_subbands = q->subbands + e->js_subband_start; 1223 q->total_subbands = q->subbands + e->js_subband_start;
1224 q->js_subband_start = e->js_subband_start; 1224 q->js_subband_start = e->js_subband_start;
1225 q->joint_stereo = 1; 1225 q->joint_stereo = 1;
1226 q->js_vlc_bits = e->js_vlc_bits; 1226 q->js_vlc_bits = e->js_vlc_bits;
1231 if (q->samples_per_channel > 512) { 1231 if (q->samples_per_channel > 512) {
1232 q->log2_numvector_size = 7; 1232 q->log2_numvector_size = 7;
1233 } 1233 }
1234 break; 1234 break;
1235 case MC_COOK: 1235 case MC_COOK:
1236 av_log(NULL,AV_LOG_ERROR,"MC_COOK not supported!\n"); 1236 av_log(avctx,AV_LOG_ERROR,"MC_COOK not supported!\n");
1237 return -1; 1237 return -1;
1238 break; 1238 break;
1239 default: 1239 default:
1240 av_log(NULL,AV_LOG_ERROR,"Unknown Cook version, report sample!\n"); 1240 av_log(avctx,AV_LOG_ERROR,"Unknown Cook version, report sample!\n");
1241 return -1; 1241 return -1;
1242 break; 1242 break;
1243 } 1243 }
1244 1244
1245 /* Initialize variable relations */ 1245 /* Initialize variable relations */
1278 if ( init_cook_mlt(q) == 0 ) 1278 if ( init_cook_mlt(q) == 0 )
1279 return -1; 1279 return -1;
1280 1280
1281 /* Try to catch some obviously faulty streams, othervise it might be exploitable */ 1281 /* Try to catch some obviously faulty streams, othervise it might be exploitable */
1282 if (q->total_subbands > 53) { 1282 if (q->total_subbands > 53) {
1283 av_log(NULL,AV_LOG_ERROR,"total_subbands > 53, report sample!\n"); 1283 av_log(avctx,AV_LOG_ERROR,"total_subbands > 53, report sample!\n");
1284 return -1; 1284 return -1;
1285 } 1285 }
1286 if (q->subbands > 50) { 1286 if (q->subbands > 50) {
1287 av_log(NULL,AV_LOG_ERROR,"subbands > 50, report sample!\n"); 1287 av_log(avctx,AV_LOG_ERROR,"subbands > 50, report sample!\n");
1288 return -1; 1288 return -1;
1289 } 1289 }
1290 if ((q->samples_per_channel == 256) || (q->samples_per_channel == 512) || (q->samples_per_channel == 1024)) { 1290 if ((q->samples_per_channel == 256) || (q->samples_per_channel == 512) || (q->samples_per_channel == 1024)) {
1291 } else { 1291 } else {
1292 av_log(NULL,AV_LOG_ERROR,"unknown amount of samples_per_channel = %d, report sample!\n",q->samples_per_channel); 1292 av_log(avctx,AV_LOG_ERROR,"unknown amount of samples_per_channel = %d, report sample!\n",q->samples_per_channel);
1293 return -1; 1293 return -1;
1294 } 1294 }
1295 1295
1296 #ifdef COOKDEBUG 1296 #ifdef COOKDEBUG
1297 dump_cook_context(q,e); 1297 dump_cook_context(q,e);