Originally committed as revision 9291 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -184,10 +184,10 @@ Neighboring Blocks: | |||||
| left and top are set to the respective blocks unless they are outside of | left and top are set to the respective blocks unless they are outside of | ||||
| the image in which case they are set to the Null block | the image in which case they are set to the Null block | ||||
| top-left is set to the top left block unless its outside of the image in | |||||
| top-left is set to the top left block unless it is outside of the image in | |||||
| which case it is set to the left block | which case it is set to the left block | ||||
| if this block has no larger parent block or its at the left side of its | |||||
| if this block has no larger parent block or it is at the left side of its | |||||
| parent block and the top right block is not outside of the image then the | parent block and the top right block is not outside of the image then the | ||||
| top right block is used for top-right else the top-left block is used | top right block is used for top-right else the top-left block is used | ||||
| @@ -1272,7 +1272,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, | |||||
| init_get_bits(&gb, buf, size); | init_get_bits(&gb, buf, size); | ||||
| //read bits & inital values | |||||
| //read bits & initial values | |||||
| nb_bits = get_bits(&gb, 2)+2; | nb_bits = get_bits(&gb, 2)+2; | ||||
| //av_log(NULL,AV_LOG_INFO,"nb_bits: %d\n", nb_bits); | //av_log(NULL,AV_LOG_INFO,"nb_bits: %d\n", nb_bits); | ||||
| table = swf_index_tables[nb_bits-2]; | table = swf_index_tables[nb_bits-2]; | ||||
| @@ -3139,7 +3139,7 @@ void ff_block_permute(DCTELEM *block, uint8_t *permutation, const uint8_t *scant | |||||
| DCTELEM temp[64]; | DCTELEM temp[64]; | ||||
| if(last<=0) return; | if(last<=0) return; | ||||
| //if(permutation[1]==1) return; //FIXME its ok but not clean and might fail for some perms | |||||
| //if(permutation[1]==1) return; //FIXME it is ok but not clean and might fail for some permutations | |||||
| for(i=0; i<=last; i++){ | for(i=0; i<=last; i++){ | ||||
| const int j= scantable[i]; | const int j= scantable[i]; | ||||
| @@ -68,7 +68,7 @@ typedef struct ff_expr_s AVEvalExpr; | |||||
| * @param func1_name NULL terminated array of zero terminated strings of func1 identifers | * @param func1_name NULL terminated array of zero terminated strings of func1 identifers | ||||
| * @param func2_name NULL terminated array of zero terminated strings of func2 identifers | * @param func2_name NULL terminated array of zero terminated strings of func2 identifers | ||||
| * @param error pointer to a char* which is set to an error message if something goes wrong | * @param error pointer to a char* which is set to an error message if something goes wrong | ||||
| * @return AVEvalExpr which must be freed with ff_eval_free by the user when its not needed anymore | |||||
| * @return AVEvalExpr which must be freed with ff_eval_free by the user when it is not needed anymore | |||||
| * NULL if anything went wrong | * NULL if anything went wrong | ||||
| */ | */ | ||||
| AVEvalExpr * ff_parse(char *s, const char **const_name, | AVEvalExpr * ff_parse(char *s, const char **const_name, | ||||
| @@ -584,7 +584,7 @@ static int flic_decode_frame_15_16BPP(AVCodecContext *avctx, | |||||
| * a second pass over the line here, swapping the bytes. | * a second pass over the line here, swapping the bytes. | ||||
| */ | */ | ||||
| pixel = 0xFF00; | pixel = 0xFF00; | ||||
| if (0xFF00 != AV_RL16(&pixel)) /* Check if its not an LE Target */ | |||||
| if (0xFF00 != AV_RL16(&pixel)) /* Check if it is not an LE target */ | |||||
| { | { | ||||
| pixel_ptr = y_ptr; | pixel_ptr = y_ptr; | ||||
| pixel_countdown = s->avctx->width; | pixel_countdown = s->avctx->width; | ||||
| @@ -164,7 +164,7 @@ static int ff_h261_resync(H261Context *h){ | |||||
| if(ret>=0) | if(ret>=0) | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| //ok, its not where its supposed to be ... | |||||
| //OK, it is not where it is supposed to be ... | |||||
| s->gb= s->last_resync_gb; | s->gb= s->last_resync_gb; | ||||
| align_get_bits(&s->gb); | align_get_bits(&s->gb); | ||||
| left= s->gb.size_in_bits - get_bits_count(&s->gb); | left= s->gb.size_in_bits - get_bits_count(&s->gb); | ||||
| @@ -3386,7 +3386,7 @@ int ff_h263_resync(MpegEncContext *s){ | |||||
| if(ret>=0) | if(ret>=0) | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| //ok, it's not where its supposed to be ... | |||||
| //OK, it's not where it is supposed to be ... | |||||
| s->gb= s->last_resync_gb; | s->gb= s->last_resync_gb; | ||||
| align_get_bits(&s->gb); | align_get_bits(&s->gb); | ||||
| left= s->gb.size_in_bits - get_bits_count(&s->gb); | left= s->gb.size_in_bits - get_bits_count(&s->gb); | ||||
| @@ -4720,7 +4720,7 @@ retry: | |||||
| i += run; | i += run; | ||||
| if (i >= 64){ | if (i >= 64){ | ||||
| if(s->alt_inter_vlc && rl == &rl_inter && !s->mb_intra){ | if(s->alt_inter_vlc && rl == &rl_inter && !s->mb_intra){ | ||||
| //looks like a hack but no, it's the way its supposed to work ... | |||||
| //Looks like a hack but no, it's the way it is supposed to work ... | |||||
| rl = &rl_intra_aic; | rl = &rl_intra_aic; | ||||
| i = 0; | i = 0; | ||||
| s->gb= gb; | s->gb= gb; | ||||
| @@ -1446,7 +1446,7 @@ static uint8_t *decode_nal(H264Context *h, uint8_t *src, int *dst_length, int *c | |||||
| *dst_length= di; | *dst_length= di; | ||||
| *consumed= si + 1;//+1 for the header | *consumed= si + 1;//+1 for the header | ||||
| //FIXME store exact number of bits in the getbitcontext (its needed for decoding) | |||||
| //FIXME store exact number of bits in the getbitcontext (it is needed for decoding) | |||||
| return dst; | return dst; | ||||
| } | } | ||||
| @@ -34,7 +34,7 @@ | |||||
| #include "mpegvideo.h" | #include "mpegvideo.h" | ||||
| #define interlaced_dct interlaced_dct_is_a_bad_name | #define interlaced_dct interlaced_dct_is_a_bad_name | ||||
| #define mb_intra mb_intra_is_not_initalized_see_mb_type | |||||
| #define mb_intra mb_intra_is_not_initialized_see_mb_type | |||||
| #define LUMA_DC_BLOCK_INDEX 25 | #define LUMA_DC_BLOCK_INDEX 25 | ||||
| #define CHROMA_DC_BLOCK_INDEX 26 | #define CHROMA_DC_BLOCK_INDEX 26 | ||||
| @@ -1169,7 +1169,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8 | |||||
| decode_bgr_bitstream(s, width-1); | decode_bgr_bitstream(s, width-1); | ||||
| add_left_prediction_bgr32(p->data[0] + last_line+4, s->temp[0], width-1, &leftr, &leftg, &leftb); | add_left_prediction_bgr32(p->data[0] + last_line+4, s->temp[0], width-1, &leftr, &leftg, &leftb); | ||||
| for(y=s->height-2; y>=0; y--){ //yes its stored upside down | |||||
| for(y=s->height-2; y>=0; y--){ //Yes it is stored upside down. | |||||
| decode_bgr_bitstream(s, width); | decode_bgr_bitstream(s, width); | ||||
| add_left_prediction_bgr32(p->data[0] + p->linesize[0]*y, s->temp[0], width, &leftr, &leftg, &leftb); | add_left_prediction_bgr32(p->data[0] + p->linesize[0]*y, s->temp[0], width, &leftr, &leftg, &leftb); | ||||
| @@ -33,7 +33,7 @@ | |||||
| #define rounder(bias) {round (bias), round (bias)} | #define rounder(bias) {round (bias), round (bias)} | ||||
| #if 0 | #if 0 | ||||
| /* C row IDCT - its just here to document the MMXEXT and MMX versions */ | |||||
| /* C row IDCT - it is just here to document the MMXEXT and MMX versions */ | |||||
| static inline void idct_row (int16_t * row, int offset, | static inline void idct_row (int16_t * row, int offset, | ||||
| int16_t * table, int32_t * rounder) | int16_t * table, int32_t * rounder) | ||||
| { | { | ||||
| @@ -313,7 +313,7 @@ static inline void mmx_row_mid (int16_t * row, int store, | |||||
| #if 0 | #if 0 | ||||
| // C column IDCT - its just here to document the MMXEXT and MMX versions | |||||
| // C column IDCT - it is just here to document the MMXEXT and MMX versions | |||||
| static inline void idct_col (int16_t * col, int offset) | static inline void idct_col (int16_t * col, int offset) | ||||
| { | { | ||||
| /* multiplication - as implemented on mmx */ | /* multiplication - as implemented on mmx */ | ||||
| @@ -96,7 +96,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s, | |||||
| int qscale, int *overflow) | int qscale, int *overflow) | ||||
| { | { | ||||
| long last_non_zero_p1; | long last_non_zero_p1; | ||||
| int level=0, q; //=0 is cuz gcc says uninitalized ... | |||||
| int level=0, q; //=0 is cuz gcc says uninitialized ... | |||||
| const uint16_t *qmat, *bias; | const uint16_t *qmat, *bias; | ||||
| DECLARE_ALIGNED_16(int16_t, temp_block[64]); | DECLARE_ALIGNED_16(int16_t, temp_block[64]); | ||||
| @@ -1807,7 +1807,7 @@ static inline int direct_search(MpegEncContext * s, int mb_x, int mb_y) | |||||
| P_LEFT[1] = av_clip(mv_table[mot_xy - 1][1], ymin<<shift, ymax<<shift); | P_LEFT[1] = av_clip(mv_table[mot_xy - 1][1], ymin<<shift, ymax<<shift); | ||||
| /* special case for first line */ | /* special case for first line */ | ||||
| if (!s->first_slice_line) { //FIXME maybe allow this over thread boundary as its clipped | |||||
| if (!s->first_slice_line) { //FIXME maybe allow this over thread boundary as it is clipped | |||||
| P_TOP[0] = av_clip(mv_table[mot_xy - mot_stride ][0], xmin<<shift, xmax<<shift); | P_TOP[0] = av_clip(mv_table[mot_xy - mot_stride ][0], xmin<<shift, xmax<<shift); | ||||
| P_TOP[1] = av_clip(mv_table[mot_xy - mot_stride ][1], ymin<<shift, ymax<<shift); | P_TOP[1] = av_clip(mv_table[mot_xy - mot_stride ][1], ymin<<shift, ymax<<shift); | ||||
| P_TOPRIGHT[0] = av_clip(mv_table[mot_xy - mot_stride + 1 ][0], xmin<<shift, xmax<<shift); | P_TOPRIGHT[0] = av_clip(mv_table[mot_xy - mot_stride + 1 ][0], xmin<<shift, xmax<<shift); | ||||
| @@ -3205,7 +3205,7 @@ static int mpeg_decode_frame(AVCodecContext *avctx, | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| if(!s2->current_picture_ptr){ | if(!s2->current_picture_ptr){ | ||||
| av_log(avctx, AV_LOG_ERROR, "current_picture not initalized\n"); | |||||
| av_log(avctx, AV_LOG_ERROR, "current_picture not initialized\n"); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -145,7 +145,8 @@ static RLTable rl_intra = { | |||||
| intra_level, | intra_level, | ||||
| }; | }; | ||||
| static const uint16_t inter_rvlc[170][2]={ //note this is identical to the intra rvlc except that its reordered | |||||
| /* Note this is identical to the intra rvlc except that it is reordered. */ | |||||
| static const uint16_t inter_rvlc[170][2]={ | |||||
| {0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7}, | {0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7}, | ||||
| {0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10}, | {0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10}, | ||||
| {0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12}, | {0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12}, | ||||
| @@ -441,11 +441,12 @@ static int alloc_picture(MpegEncContext *s, Picture *pic, int shared){ | |||||
| CHECKED_ALLOCZ(pic->pan_scan , 1 * sizeof(AVPanScan)) | CHECKED_ALLOCZ(pic->pan_scan , 1 * sizeof(AVPanScan)) | ||||
| } | } | ||||
| //it might be nicer if the application would keep track of these but it would require a API change | |||||
| /* It might be nicer if the application would keep track of these | |||||
| * but it would require an API change. */ | |||||
| memmove(s->prev_pict_types+1, s->prev_pict_types, PREV_PICT_TYPES_BUFFER_SIZE-1); | memmove(s->prev_pict_types+1, s->prev_pict_types, PREV_PICT_TYPES_BUFFER_SIZE-1); | ||||
| s->prev_pict_types[0]= s->pict_type; | s->prev_pict_types[0]= s->pict_type; | ||||
| if(pic->age < PREV_PICT_TYPES_BUFFER_SIZE && s->prev_pict_types[pic->age] == B_TYPE) | if(pic->age < PREV_PICT_TYPES_BUFFER_SIZE && s->prev_pict_types[pic->age] == B_TYPE) | ||||
| pic->age= INT_MAX; // skipped MBs in b frames are quite rare in mpeg1/2 and its a bit tricky to skip them anyway | |||||
| pic->age= INT_MAX; // Skipped MBs in B-frames are quite rare in MPEG-1/2 and it is a bit tricky to skip them anyway. | |||||
| return 0; | return 0; | ||||
| fail: //for the CHECKED_ALLOCZ macro | fail: //for the CHECKED_ALLOCZ macro | ||||
| @@ -88,7 +88,7 @@ int frame_count = 0; | |||||
| #include "msmpeg4data.h" | #include "msmpeg4data.h" | ||||
| #include "msmpeg4tab.h" | #include "msmpeg4tab.h" | ||||
| #ifdef CONFIG_ENCODERS //strangely gcc includes this even if its not references | |||||
| #ifdef CONFIG_ENCODERS //strangely gcc includes this even if it is not references | |||||
| static uint8_t rl_length[NB_RL_TABLES][MAX_LEVEL+1][MAX_RUN+1][2]; | static uint8_t rl_length[NB_RL_TABLES][MAX_LEVEL+1][MAX_RUN+1][2]; | ||||
| #endif //CONFIG_ENCODERS | #endif //CONFIG_ENCODERS | ||||
| @@ -454,7 +454,7 @@ static void msmpeg4_encode_motion(MpegEncContext * s, | |||||
| mv->table_mv_bits[code], | mv->table_mv_bits[code], | ||||
| mv->table_mv_code[code]); | mv->table_mv_code[code]); | ||||
| if (code == mv->n) { | if (code == mv->n) { | ||||
| /* escape : code litterally */ | |||||
| /* escape : code literally */ | |||||
| put_bits(&s->pb, 6, mx); | put_bits(&s->pb, 6, mx); | ||||
| put_bits(&s->pb, 6, my); | put_bits(&s->pb, 6, my); | ||||
| } | } | ||||
| @@ -983,7 +983,8 @@ static VLC v1_intra_cbpc_vlc; | |||||
| static VLC v1_inter_cbpc_vlc; | static VLC v1_inter_cbpc_vlc; | ||||
| static VLC inter_intra_vlc; | static VLC inter_intra_vlc; | ||||
| /* this table is practically identical to the one from h263 except that its inverted */ | |||||
| /* This table is practically identical to the one from h263 | |||||
| * except that it is inverted. */ | |||||
| static void init_h263_dc_for_msmpeg4(void) | static void init_h263_dc_for_msmpeg4(void) | ||||
| { | { | ||||
| int level, uni_code, uni_len; | int level, uni_code, uni_len; | ||||
| @@ -1380,7 +1381,7 @@ static void msmpeg4v2_encode_motion(MpegEncContext * s, int val) | |||||
| } | } | ||||
| #endif | #endif | ||||
| /* this is identical to h263 except that its range is multiplied by 2 */ | |||||
| /* This is identical to h263 except that its range is multiplied by 2. */ | |||||
| static int msmpeg4v2_decode_motion(MpegEncContext * s, int pred, int f_code) | static int msmpeg4v2_decode_motion(MpegEncContext * s, int pred, int f_code) | ||||
| { | { | ||||
| int code, val, sign, shift; | int code, val, sign, shift; | ||||
| @@ -177,8 +177,8 @@ void av_build_filter(FELEM *filter, double factor, int tap_count, int phase_coun | |||||
| } | } | ||||
| /** | /** | ||||
| * initalizes a audio resampler. | |||||
| * note, if either rate is not a integer then simply scale both rates up so they are | |||||
| * Initializes an audio resampler. | |||||
| * Note, if either rate is not an integer then simply scale both rates up so they are. | |||||
| */ | */ | ||||
| AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_size, int phase_shift, int linear, double cutoff){ | AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_size, int phase_shift, int linear, double cutoff){ | ||||
| AVResampleContext *c= av_mallocz(sizeof(AVResampleContext)); | AVResampleContext *c= av_mallocz(sizeof(AVResampleContext)); | ||||
| @@ -259,7 +259,7 @@ typedef struct AVIndexEntry { | |||||
| int64_t timestamp; | int64_t timestamp; | ||||
| #define AVINDEX_KEYFRAME 0x0001 | #define AVINDEX_KEYFRAME 0x0001 | ||||
| int flags:2; | int flags:2; | ||||
| int size:30; //yeah trying to keep the size of this small to reduce memory requirements (its 24 vs 32 byte due to possible 8byte align) | |||||
| int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs 32 byte due to possible 8byte align). | |||||
| int min_distance; /**< min distance between this and the previous keyframe, used to avoid unneeded searching */ | int min_distance; /**< min distance between this and the previous keyframe, used to avoid unneeded searching */ | ||||
| } AVIndexEntry; | } AVIndexEntry; | ||||
| @@ -720,10 +720,10 @@ int av_write_frame(AVFormatContext *s, AVPacket *pkt); | |||||
| * | * | ||||
| * The packet must contain one audio or video frame. | * The packet must contain one audio or video frame. | ||||
| * If the packets are already correctly interleaved the application should | * If the packets are already correctly interleaved the application should | ||||
| * call av_write_frame() instead as it is slightly faster, it is also important | |||||
| * to keep in mind that completly non interleaved input will need huge amounts | |||||
| * of memory to interleave with this, so its prefereable to interleave at the | |||||
| * demuxer level | |||||
| * call av_write_frame() instead as it is slightly faster. It is also important | |||||
| * to keep in mind that completely non-interleaved input will need huge amounts | |||||
| * of memory to interleave with this, so it is preferable to interleave at the | |||||
| * demuxer level. | |||||
| * | * | ||||
| * @param s media file handle | * @param s media file handle | ||||
| * @param pkt the packet, which contains the stream_index, buf/buf_size, dts/pts, ... | * @param pkt the packet, which contains the stream_index, buf/buf_size, dts/pts, ... | ||||
| @@ -85,9 +85,9 @@ void url_set_interrupt_cb(URLInterruptCB *interrupt_cb); | |||||
| int url_poll(URLPollEntry *poll_table, int n, int timeout); | int url_poll(URLPollEntry *poll_table, int n, int timeout); | ||||
| /** | /** | ||||
| * passing this as the "whence" parameter to a seek function causes it to | |||||
| * return the filesize without seeking anywhere, supporting this is optional | |||||
| * if its not supprted then the seek function will return <0 | |||||
| * Passing this as the "whence" parameter to a seek function causes it to | |||||
| * return the filesize without seeking anywhere. Supporting this is optional. | |||||
| * If it is not supported then the seek function will return <0. | |||||
| */ | */ | ||||
| #define AVSEEK_SIZE 0x10000 | #define AVSEEK_SIZE 0x10000 | ||||
| @@ -78,7 +78,7 @@ typedef struct MOVContext { | |||||
| MOVTrack tracks[MAX_STREAMS]; | MOVTrack tracks[MAX_STREAMS]; | ||||
| } MOVContext; | } MOVContext; | ||||
| //FIXME supprt 64bit varaint with wide placeholders | |||||
| //FIXME support 64 bit variant with wide placeholders | |||||
| static offset_t updateSize (ByteIOContext *pb, offset_t pos) | static offset_t updateSize (ByteIOContext *pb, offset_t pos) | ||||
| { | { | ||||
| offset_t curpos = url_ftell(pb); | offset_t curpos = url_ftell(pb); | ||||
| @@ -423,7 +423,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, | |||||
| must_open_file = 1; | must_open_file = 1; | ||||
| if (fmt && (fmt->flags & AVFMT_NOFILE)) { | if (fmt && (fmt->flags & AVFMT_NOFILE)) { | ||||
| must_open_file = 0; | must_open_file = 0; | ||||
| pb= NULL; //FIXME this or memset(pb, 0, sizeof(ByteIOContext)); otherwise its uninitalized | |||||
| pb= NULL; //FIXME this or memset(pb, 0, sizeof(ByteIOContext)); otherwise it is uninitialized | |||||
| } | } | ||||
| if (!fmt || must_open_file) { | if (!fmt || must_open_file) { | ||||
| @@ -1098,7 +1098,7 @@ int av_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts | |||||
| ts_max= | ts_max= | ||||
| ts_min= AV_NOPTS_VALUE; | ts_min= AV_NOPTS_VALUE; | ||||
| pos_limit= -1; //gcc falsely says it may be uninitalized | |||||
| pos_limit= -1; //gcc falsely says it may be uninitialized | |||||
| st= s->streams[stream_index]; | st= s->streams[stream_index]; | ||||
| if(st->index_entries){ | if(st->index_entries){ | ||||
| @@ -26,7 +26,7 @@ extern const int av_aes_size; | |||||
| struct AVAES; | struct AVAES; | ||||
| /** | /** | ||||
| * initalizes a AVAES context | |||||
| * initializes an AVAES context | |||||
| * @param key_bits 128, 192 or 256 | * @param key_bits 128, 192 or 256 | ||||
| * @param decrypt 0 for encryption, 1 for decryption | * @param decrypt 0 for encryption, 1 for decryption | ||||
| */ | */ | ||||
| @@ -37,7 +37,7 @@ int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); | |||||
| * @param count number of 16 byte blocks | * @param count number of 16 byte blocks | ||||
| * @param dst destination array, can be equal to src | * @param dst destination array, can be equal to src | ||||
| * @param src source array, can be equal to dst | * @param src source array, can be equal to dst | ||||
| * @param iv initalization vector for CBC mode, if NULL then ECB will be used | |||||
| * @param iv initialization vector for CBC mode, if NULL then ECB will be used | |||||
| * @param decrypt 0 for encryption, 1 for decryption | * @param decrypt 0 for encryption, 1 for decryption | ||||
| */ | */ | ||||
| void av_aes_crypt(struct AVAES *a, uint8_t *dst, uint8_t *src, int count, uint8_t *iv, int decrypt); | void av_aes_crypt(struct AVAES *a, uint8_t *dst, uint8_t *src, int count, uint8_t *iv, int decrypt); | ||||
| @@ -205,14 +205,14 @@ static inline int ff_get_fourcc(const char *s){ | |||||
| /*! | /*! | ||||
| * \def GET_UTF8(val, GET_BYTE, ERROR) | * \def GET_UTF8(val, GET_BYTE, ERROR) | ||||
| * converts a utf-8 character (up to 4 bytes long) to its 32-bit ucs-4 encoded form | |||||
| * converts a UTF-8 character (up to 4 bytes long) to its 32-bit UCS-4 encoded form | |||||
| * \param val is the output and should be of type uint32_t. It holds the converted | * \param val is the output and should be of type uint32_t. It holds the converted | ||||
| * ucs-4 character and should be a left value. | |||||
| * \param GET_BYTE gets utf-8 encoded bytes from any proper source. It can be | |||||
| * UCS-4 character and should be a left value. | |||||
| * \param GET_BYTE gets UTF-8 encoded bytes from any proper source. It can be | |||||
| * a function or a statement whose return value or evaluated value is of type | * a function or a statement whose return value or evaluated value is of type | ||||
| * uint8_t. It will be executed up to 4 times for values in the valid utf-8 range, | |||||
| * uint8_t. It will be executed up to 4 times for values in the valid UTF-8 range, | |||||
| * and up to 7 times in the general case. | * and up to 7 times in the general case. | ||||
| * \param ERROR action that should be taken when an invalid utf-8 byte is returned | |||||
| * \param ERROR action that should be taken when an invalid UTF-8 byte is returned | |||||
| * from GET_BYTE. It should be a statement that jumps out of the macro, | * from GET_BYTE. It should be a statement that jumps out of the macro, | ||||
| * like exit(), goto, return, break, or continue. | * like exit(), goto, return, break, or continue. | ||||
| */ | */ | ||||
| @@ -233,17 +233,17 @@ static inline int ff_get_fourcc(const char *s){ | |||||
| /*! | /*! | ||||
| * \def PUT_UTF8(val, tmp, PUT_BYTE) | * \def PUT_UTF8(val, tmp, PUT_BYTE) | ||||
| * converts a 32-bit unicode character to its utf-8 encoded form (up to 4 bytes long). | |||||
| * converts a 32-bit unicode character to its UTF-8 encoded form (up to 4 bytes long). | |||||
| * \param val is an input only argument and should be of type uint32_t. It holds | * \param val is an input only argument and should be of type uint32_t. It holds | ||||
| * a ucs4 encoded unicode character that is to be converted to utf-8. If | |||||
| * a ucs4 encoded unicode character that is to be converted to UTF-8. If | |||||
| * val is given as a function it's executed only once. | * val is given as a function it's executed only once. | ||||
| * \param tmp is a temporary variable and should be of type uint8_t. It | * \param tmp is a temporary variable and should be of type uint8_t. It | ||||
| * represents an intermediate value during conversion that is to be | * represents an intermediate value during conversion that is to be | ||||
| * outputted by PUT_BYTE. | * outputted by PUT_BYTE. | ||||
| * \param PUT_BYTE writes the converted utf-8 bytes to any proper destination. | |||||
| * \param PUT_BYTE writes the converted UTF-8 bytes to any proper destination. | |||||
| * It could be a function or a statement, and uses tmp as the input byte. | * It could be a function or a statement, and uses tmp as the input byte. | ||||
| * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be | * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be | ||||
| * executed up to 4 times for values in the valid utf-8 range and up to | |||||
| * executed up to 4 times for values in the valid UTF-8 range and up to | |||||
| * 7 times in the general case, depending on the length of the converted | * 7 times in the general case, depending on the length of the converted | ||||
| * unicode character. | * unicode character. | ||||
| */ | */ | ||||
| @@ -373,7 +373,8 @@ static inline void RENAME(doVertLowPass)(uint8_t *src, int stride, PPContext *c) | |||||
| * Experimental implementation of the filter (Algorithm 1) described in a paper from Ramkishor & Karandikar | * Experimental implementation of the filter (Algorithm 1) described in a paper from Ramkishor & Karandikar | ||||
| * values are correctly clipped (MMX2) | * values are correctly clipped (MMX2) | ||||
| * values are wraparound (C) | * values are wraparound (C) | ||||
| * conclusion: its fast, but introduces ugly horizontal patterns if there is a continious gradient | |||||
| * Conclusion: It is fast, but introduces ugly horizontal patterns | |||||
| * if there is a continuous gradient. | |||||
| 0 8 16 24 | 0 8 16 24 | ||||
| x = 8 | x = 8 | ||||
| x/2 = 4 | x/2 = 4 | ||||
| @@ -3498,7 +3499,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int | |||||
| ); | ); | ||||
| #elif defined(HAVE_3DNOW) | #elif defined(HAVE_3DNOW) | ||||
| //FIXME check if this is faster on an 3dnow chip or if its faster without the prefetch or ... | |||||
| //FIXME check if this is faster on an 3dnow chip or if it is faster without the prefetch or ... | |||||
| /* prefetch(srcBlock + (((x>>3)&3) + 5)*srcStride + 32); | /* prefetch(srcBlock + (((x>>3)&3) + 5)*srcStride + 32); | ||||
| prefetch(srcBlock + (((x>>3)&3) + 9)*srcStride + 32); | prefetch(srcBlock + (((x>>3)&3) + 9)*srcStride + 32); | ||||
| prefetchw(dstBlock + (((x>>3)&3) + 5)*dstStride + 32); | prefetchw(dstBlock + (((x>>3)&3) + 5)*dstStride + 32); | ||||
| @@ -3642,7 +3643,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int | |||||
| ); | ); | ||||
| #elif defined(HAVE_3DNOW) | #elif defined(HAVE_3DNOW) | ||||
| //FIXME check if this is faster on an 3dnow chip or if its faster without the prefetch or ... | |||||
| //FIXME check if this is faster on an 3dnow chip or if it is faster without the prefetch or ... | |||||
| /* prefetch(srcBlock + (((x>>3)&3) + 5)*srcStride + 32); | /* prefetch(srcBlock + (((x>>3)&3) + 5)*srcStride + 32); | ||||
| prefetch(srcBlock + (((x>>3)&3) + 9)*srcStride + 32); | prefetch(srcBlock + (((x>>3)&3) + 9)*srcStride + 32); | ||||
| prefetchw(dstBlock + (((x>>3)&3) + 5)*dstStride + 32); | prefetchw(dstBlock + (((x>>3)&3) + 5)*dstStride + 32); | ||||
| @@ -577,7 +577,7 @@ fi | |||||
| ################################### | ################################### | ||||
| #if [ -n "$do_vorbis" ] ; then | #if [ -n "$do_vorbis" ] ; then | ||||
| # vorbis | # vorbis | ||||
| #disabled because its broken | |||||
| #disabled because it is broken | |||||
| #do_audio_encoding vorbis.asf "-ar 44100" "-acodec vorbis" | #do_audio_encoding vorbis.asf "-ar 44100" "-acodec vorbis" | ||||
| #do_audio_decoding | #do_audio_decoding | ||||
| #fi | #fi | ||||