Mercurial > libavcodec.hg
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); |