Originally committed as revision 2975 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
@@ -36,9 +36,6 @@ | |||
#include "avcodec.h" | |||
#include "dsputil.h" | |||
#define printf(...) {} //(f)printf() usage is forbidden in libavcodec, use av_log | |||
#define fprintf(...) {} | |||
#define CPAIR 2 | |||
#define CQUAD 4 | |||
#define COCTET 8 | |||
@@ -75,7 +72,7 @@ typedef struct SmcContext { | |||
total_blocks--; \ | |||
if (total_blocks < 0) \ | |||
{ \ | |||
printf("warning: block counter just went negative (this should not happen)\n"); \ | |||
av_log(s->avctx, AV_LOG_INFO, "warning: block counter just went negative (this should not happen)\n"); \ | |||
return; \ | |||
} \ | |||
} | |||
@@ -124,7 +121,7 @@ static void smc_decode_stream(SmcContext *s) | |||
chunk_size = BE_32(&s->buf[stream_ptr]) & 0x00FFFFFF; | |||
stream_ptr += 4; | |||
if (chunk_size != s->size) | |||
printf("warning: MOV chunk size != encoded chunk size (%d != %d); using MOV chunk size\n", | |||
av_log(s->avctx, AV_LOG_INFO, "warning: MOV chunk size != encoded chunk size (%d != %d); using MOV chunk size\n", | |||
chunk_size, s->size); | |||
chunk_size = s->size; | |||
@@ -135,13 +132,13 @@ static void smc_decode_stream(SmcContext *s) | |||
/* sanity checks */ | |||
/* make sure stream ptr hasn't gone out of bounds */ | |||
if (stream_ptr > chunk_size) { | |||
printf("SMC decoder just went out of bounds (stream ptr = %d, chunk size = %d)\n", | |||
av_log(s->avctx, AV_LOG_INFO, "SMC decoder just went out of bounds (stream ptr = %d, chunk size = %d)\n", | |||
stream_ptr, chunk_size); | |||
return; | |||
} | |||
/* make sure the row pointer hasn't gone wild */ | |||
if (row_ptr >= image_size) { | |||
printf("SMC decoder just went out of bounds (row ptr = %d, height = %d)\n", | |||
av_log(s->avctx, AV_LOG_INFO, "SMC decoder just went out of bounds (row ptr = %d, height = %d)\n", | |||
row_ptr, image_size); | |||
return; | |||
} | |||
@@ -164,7 +161,7 @@ static void smc_decode_stream(SmcContext *s) | |||
/* sanity check */ | |||
if ((row_ptr == 0) && (pixel_ptr == 0)) { | |||
printf("encountered repeat block opcode (%02X) but no blocks rendered yet\n", | |||
av_log(s->avctx, AV_LOG_INFO, "encountered repeat block opcode (%02X) but no blocks rendered yet\n", | |||
opcode & 0xF0); | |||
break; | |||
} | |||
@@ -198,7 +195,7 @@ static void smc_decode_stream(SmcContext *s) | |||
/* sanity check */ | |||
if ((row_ptr == 0) && (pixel_ptr < 2 * 4)) { | |||
printf("encountered repeat block opcode (%02X) but not enough blocks rendered yet\n", | |||
av_log(s->avctx, AV_LOG_INFO, "encountered repeat block opcode (%02X) but not enough blocks rendered yet\n", | |||
opcode & 0xF0); | |||
break; | |||
} | |||
@@ -425,7 +422,7 @@ static void smc_decode_stream(SmcContext *s) | |||
break; | |||
case 0xF0: | |||
printf("0xF0 opcode seen in SMC chunk (xine developers would like to know)\n"); | |||
av_log(s->avctx, AV_LOG_INFO, "0xF0 opcode seen in SMC chunk (contact the developers)\n"); | |||
break; | |||
} | |||
} | |||
@@ -462,7 +459,7 @@ static int smc_decode_frame(AVCodecContext *avctx, | |||
s->frame.buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_PRESERVE | | |||
FF_BUFFER_HINTS_REUSABLE | FF_BUFFER_HINTS_READABLE; | |||
if (avctx->reget_buffer(avctx, &s->frame)) { | |||
printf ("reget_buffer() failed\n"); | |||
av_log(s->avctx, AV_LOG_ERROR, "reget_buffer() failed\n"); | |||
return -1; | |||
} | |||
@@ -36,9 +36,6 @@ | |||
#include "avcodec.h" | |||
#include "dsputil.h" | |||
#define printf(...) {} //(f)printf() usage is forbidden in libavcodec, use av_log | |||
#define fprintf(...) {} | |||
#include "truemotion1data.h" | |||
typedef struct TrueMotion1Context { | |||
@@ -232,7 +229,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) | |||
header.header_size = ((s->buf[0] >> 5) | (s->buf[0] << 3)) & 0x7f; | |||
if (s->buf[0] < 0x10) | |||
{ | |||
printf("invalid header size\n"); | |||
av_log(s->avctx, AV_LOG_ERROR, "invalid header size\n"); | |||
return -1; | |||
} | |||
@@ -282,7 +279,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) | |||
} | |||
if (header.compression > 17) { | |||
printf("invalid compression type (%d)\n", header.compression); | |||
av_log(s->avctx, AV_LOG_ERROR, "invalid compression type (%d)\n", header.compression); | |||
return -1; | |||
} | |||
@@ -296,7 +293,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) | |||
if (header.vectable < 4) | |||
sel_vector_table = tables[header.vectable - 1]; | |||
else { | |||
printf("invalid vector table id (%d)\n", header.vectable); | |||
av_log(s->avctx, AV_LOG_ERROR, "invalid vector table id (%d)\n", header.vectable); | |||
return -1; | |||
} | |||
} | |||
@@ -305,7 +302,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) | |||
{ | |||
if (compression_types[header.compression].algorithm == ALGO_RGB24H) | |||
{ | |||
printf("24bit compression not yet supported\n"); | |||
av_log(s->avctx, AV_LOG_ERROR, "24bit compression not yet supported\n"); | |||
} | |||
else | |||
gen_vector_table(s, sel_vector_table); | |||
@@ -354,7 +351,7 @@ static int truemotion1_decode_init(AVCodecContext *avctx) | |||
#define GET_NEXT_INDEX() \ | |||
{\ | |||
if (index_stream_index >= s->index_stream_size) { \ | |||
printf (" help! truemotion1 decoder went out of bounds\n"); \ | |||
av_log(s->avctx, AV_LOG_INFO, " help! truemotion1 decoder went out of bounds\n"); \ | |||
return; \ | |||
} \ | |||
index = s->index_stream[index_stream_index++] * 4; \ | |||
@@ -542,7 +539,7 @@ static int truemotion1_decode_frame(AVCodecContext *avctx, | |||
s->frame.reference = 1; | |||
if (avctx->get_buffer(avctx, &s->frame) < 0) { | |||
fprintf(stderr, "truemotion1: get_buffer() failed\n"); | |||
av_log(s->avctx, AV_LOG_ERROR, "truemotion1: get_buffer() failed\n"); | |||
return -1; | |||
} | |||
@@ -561,7 +558,7 @@ static int truemotion1_decode_frame(AVCodecContext *avctx, | |||
memcpy(s->frame.data[0], s->prev_frame.data[0], | |||
s->frame.linesize[0] * s->avctx->height); | |||
} else if (compression_types[s->compression].algorithm == ALGO_RGB24H) { | |||
printf (" 24-bit Duck TrueMotion decoding not yet implemented\n"); | |||
av_log(s->avctx, AV_LOG_ERROR, "24bit compression not yet supported\n"); | |||
} else { | |||
truemotion1_decode_16bit(s); | |||
} | |||
@@ -47,9 +47,6 @@ | |||
#include "avcodec.h" | |||
#include "dsputil.h" | |||
#define printf(...) {} //(f)printf() usage is forbidden in libavcodec, use av_log | |||
#define fprintf(...) {} | |||
#define VMD_HEADER_SIZE 0x330 | |||
#define PALETTE_COUNT 256 | |||
@@ -245,7 +242,7 @@ static void vmd_decode(VmdVideoContext *s) | |||
} | |||
} while (ofs < frame_width); | |||
if (ofs > frame_width) { | |||
printf (" VMD video: offset > width (%d > %d)\n", | |||
av_log(s->avctx, AV_LOG_ERROR, "VMD video: offset > width (%d > %d)\n", | |||
ofs, frame_width); | |||
break; | |||
} | |||
@@ -283,7 +280,7 @@ static void vmd_decode(VmdVideoContext *s) | |||
} | |||
} while (ofs < frame_width); | |||
if (ofs > frame_width) { | |||
printf (" VMD video: offset > width (%d > %d)\n", | |||
av_log(s->avctx, AV_LOG_ERROR, "VMD video: offset > width (%d > %d)\n", | |||
ofs, frame_width); | |||
} | |||
dp += s->frame.linesize[0]; | |||
@@ -311,7 +308,7 @@ static int vmdvideo_decode_init(AVCodecContext *avctx) | |||
/* make sure the VMD header made it */ | |||
if (s->avctx->extradata_size != VMD_HEADER_SIZE) { | |||
printf(" VMD video: expected extradata size of %d\n", | |||
av_log(s->avctx, AV_LOG_ERROR, "VMD video: expected extradata size of %d\n", | |||
VMD_HEADER_SIZE); | |||
return -1; | |||
} | |||
@@ -350,7 +347,7 @@ static int vmdvideo_decode_frame(AVCodecContext *avctx, | |||
s->frame.reference = 1; | |||
if (avctx->get_buffer(avctx, &s->frame)) { | |||
printf (" VMD Video: get_buffer() failed\n"); | |||
av_log(s->avctx, AV_LOG_ERROR, "VMD Video: get_buffer() failed\n"); | |||
return -1; | |||
} | |||
@@ -389,6 +386,7 @@ static int vmdvideo_decode_end(AVCodecContext *avctx) | |||
*/ | |||
typedef struct VmdAudioContext { | |||
AVCodecContext *avctx; | |||
int channels; | |||
int bits; | |||
int block_align; | |||
@@ -403,12 +401,13 @@ static int vmdaudio_decode_init(AVCodecContext *avctx) | |||
VmdAudioContext *s = (VmdAudioContext *)avctx->priv_data; | |||
int i; | |||
s->avctx = avctx; | |||
s->channels = avctx->channels; | |||
s->bits = avctx->bits_per_sample; | |||
s->block_align = avctx->block_align; | |||
printf (" %d channels, %d bits/sample, block align = %d, sample rate = %d\n", | |||
s->channels, s->bits, s->block_align, avctx->sample_rate); | |||
av_log(s->avctx, AV_LOG_DEBUG, "%d channels, %d bits/sample, block align = %d, sample rate = %d\n", | |||
s->channels, s->bits, s->block_align, avctx->sample_rate); | |||
/* set up the steps8 and steps16 tables */ | |||
for (i = 0; i < 8; i++) { | |||
@@ -465,8 +464,8 @@ static int vmdaudio_loadsound(VmdAudioContext *s, unsigned char *data, | |||
int bytes_decoded = 0; | |||
int i; | |||
if (silence) | |||
printf (" silent block!\n"); | |||
if (silence) | |||
av_log(s->avctx, AV_LOG_INFO, "silent block!\n"); | |||
if (s->channels == 2) { | |||
/* stereo handling */ | |||
@@ -520,7 +519,6 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx, | |||
unsigned char *p = buf + 16; | |||
unsigned char *p_end = buf + buf_size; | |||
printf (" processing audio frame with %d bytes\n", buf_size); | |||
if (buf_size < 16) | |||
return buf_size; | |||
@@ -529,7 +527,6 @@ printf (" processing audio frame with %d bytes\n", buf_size); | |||
/* the chunk contains audio */ | |||
*data_size = vmdaudio_loadsound(s, output_samples, p, 0); | |||
} else if (buf[6] == 2) { | |||
printf (" hey! audio case #2\n"); | |||
/* the chunk contains audio and silence mixed together */ | |||
sound_flags = LE_32(p); | |||
p += 4; | |||
@@ -549,13 +546,10 @@ printf (" hey! audio case #2\n"); | |||
sound_flags >>= 1; | |||
} | |||
} else if (buf[6] == 3) { | |||
printf (" hey! audio case #3\n"); | |||
/* silent chunk */ | |||
*data_size = vmdaudio_loadsound(s, output_samples, p, 1); | |||
} | |||
printf (" final sample count = %d, byte count = %d\n", (*data_size) / 2, | |||
*data_size); | |||
return buf_size; | |||
} | |||