Mercurial > libavcodec.hg
comparison sp5xdec.c @ 5736:810067f2c33d libavcodec
AMV video decoder.
Patch by Vladimir Voroshilov (voroshil - gmail - com)
author | vitor |
---|---|
date | Sat, 29 Sep 2007 15:20:22 +0000 |
parents | bff60ecc02f9 |
children | e0a872dd3ea1 |
comparison
equal
deleted
inserted
replaced
5735:8b211f34a3eb | 5736:810067f2c33d |
---|---|
70 j += sizeof(sp5x_data_sof); | 70 j += sizeof(sp5x_data_sof); |
71 | 71 |
72 memcpy(recoded+j, &sp5x_data_sos[0], sizeof(sp5x_data_sos)); | 72 memcpy(recoded+j, &sp5x_data_sos[0], sizeof(sp5x_data_sos)); |
73 j += sizeof(sp5x_data_sos); | 73 j += sizeof(sp5x_data_sos); |
74 | 74 |
75 if(avctx->codec_id==CODEC_ID_AMV) | |
76 for (i = 2; i < buf_size-2 && j < buf_size+1024-2; i++) | |
77 recoded[j++] = buf[i]; | |
78 else | |
75 for (i = 14; i < buf_size && j < buf_size+1024-2; i++) | 79 for (i = 14; i < buf_size && j < buf_size+1024-2; i++) |
76 { | 80 { |
77 recoded[j++] = buf[i]; | 81 recoded[j++] = buf[i]; |
78 if (buf[i] == 0xff) | 82 if (buf[i] == 0xff) |
79 recoded[j++] = 0; | 83 recoded[j++] = 0; |
192 ff_mjpeg_decode_end, | 196 ff_mjpeg_decode_end, |
193 sp5x_decode_frame, | 197 sp5x_decode_frame, |
194 CODEC_CAP_DR1, | 198 CODEC_CAP_DR1, |
195 NULL | 199 NULL |
196 }; | 200 }; |
201 | |
202 AVCodec amv_decoder = { | |
203 "amv", | |
204 CODEC_TYPE_VIDEO, | |
205 CODEC_ID_AMV, | |
206 sizeof(MJpegDecodeContext), | |
207 ff_mjpeg_decode_init, | |
208 NULL, | |
209 ff_mjpeg_decode_end, | |
210 sp5x_decode_frame, | |
211 CODEC_CAP_DR1 | |
212 }; |