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 | ||||