Originally committed as revision 9289 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -79,7 +79,7 @@ unassigned TODO: (unordered) | |||||
| - macroblock based pixel format (better cache locality, somewhat complex, one paper claimed it faster for high res) | - macroblock based pixel format (better cache locality, somewhat complex, one paper claimed it faster for high res) | ||||
| - NUT muxer | - NUT muxer | ||||
| - seeking regression test | - seeking regression test | ||||
| - regression tests for codecs which dont have an encoder (I+P frame bitstream in svn) | |||||
| - regression tests for codecs which do not have an encoder (I+P-frame bitstream in svn) | |||||
| - add support for using mplayers video filters to ffmpeg | - add support for using mplayers video filters to ffmpeg | ||||
| - reverse engeneer RV30/RV40 | - reverse engeneer RV30/RV40 | ||||
| - finish implementation of WMV2 j-picture | - finish implementation of WMV2 j-picture | ||||
| @@ -34,4 +34,4 @@ Goals: | |||||
| * Modular (few interdependencies and the possibility of disabling individual parts during ./configure) | * Modular (few interdependencies and the possibility of disabling individual parts during ./configure) | ||||
| * Small (source and object) | * Small (source and object) | ||||
| * Efficient (low CPU and memory usage) | * Efficient (low CPU and memory usage) | ||||
| * Useful (avoid useless features almost noone needs) | |||||
| * Useful (avoid useless features almost no one needs) | |||||
| @@ -1595,7 +1595,7 @@ please use av_log() instead. | |||||
| list, reference the thread in the log message. | list, reference the thread in the log message. | ||||
| @item | @item | ||||
| Do NOT commit to code actively maintained by others without permission. | Do NOT commit to code actively maintained by others without permission. | ||||
| Send a patch to ffmpeg-devel instead. If noone answers within a reasonable | |||||
| Send a patch to ffmpeg-devel instead. If no one answers within a reasonable | |||||
| timeframe (12h for build failures and security fixes, 3 days small changes, | timeframe (12h for build failures and security fixes, 3 days small changes, | ||||
| 1 week for big patches) then commit your patch if you think it is OK. | 1 week for big patches) then commit your patch if you think it is OK. | ||||
| Also note, the maintainer can simply ask for more time to review! | Also note, the maintainer can simply ask for more time to review! | ||||
| @@ -3277,11 +3277,11 @@ static void show_formats(void) | |||||
| } | } | ||||
| printf("\n\n"); | printf("\n\n"); | ||||
| printf( | printf( | ||||
| "Note, the names of encoders and decoders dont always match, so there are\n" | |||||
| "Note, the names of encoders and decoders do not always match, so there are\n" | |||||
| "several cases where the above table shows encoder only or decoder only entries\n" | "several cases where the above table shows encoder only or decoder only entries\n" | ||||
| "even though both encoding and decoding are supported for example, the h263\n" | |||||
| "decoder corresponds to the h263 and h263p encoders, for file formats its even\n" | |||||
| "worse\n"); | |||||
| "even though both encoding and decoding are supported. For example, the h263\n" | |||||
| "decoder corresponds to the h263 and h263p encoders, for file formats it is even\n" | |||||
| "worse.\n"); | |||||
| exit(1); | exit(1); | ||||
| } | } | ||||
| @@ -1924,7 +1924,7 @@ static int decode_thread(void *arg) | |||||
| ret = -1; | ret = -1; | ||||
| goto fail; | goto fail; | ||||
| } | } | ||||
| ic->pb.eof_reached= 0; //FIXME hack, ffplay maybe shouldnt use url_feof() to test for the end | |||||
| ic->pb.eof_reached= 0; //FIXME hack, ffplay maybe should not use url_feof() to test for the end | |||||
| } | } | ||||
| /* if seeking requested, we execute it */ | /* if seeking requested, we execute it */ | ||||
| @@ -1299,7 +1299,7 @@ static int http_parse_request(HTTPContext *c) | |||||
| } | } | ||||
| } | } | ||||
| /* If already streaming this feed, dont let start an another feeder */ | |||||
| /* If already streaming this feed, do not let start another feeder. */ | |||||
| if (stream->feed_opened) { | if (stream->feed_opened) { | ||||
| snprintf(msg, sizeof(msg), "This feed is already being received."); | snprintf(msg, sizeof(msg), "This feed is already being received."); | ||||
| goto send_error; | goto send_error; | ||||
| @@ -336,11 +336,11 @@ void video_decode_example(const char *outfilename, const char *filename) | |||||
| picture= avcodec_alloc_frame(); | picture= avcodec_alloc_frame(); | ||||
| if(codec->capabilities&CODEC_CAP_TRUNCATED) | if(codec->capabilities&CODEC_CAP_TRUNCATED) | ||||
| c->flags|= CODEC_FLAG_TRUNCATED; /* we dont send complete frames */ | |||||
| c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */ | |||||
| /* for some codecs, such as msmpeg4 and mpeg4, width and height | |||||
| MUST be initialized there because these info are not available | |||||
| in the bitstream */ | |||||
| /* For some codecs, such as msmpeg4 and mpeg4, width and height | |||||
| MUST be initialized there because this information is not | |||||
| available in the bitstream. */ | |||||
| /* open it */ | /* open it */ | ||||
| if (avcodec_open(c, codec) < 0) { | if (avcodec_open(c, codec) < 0) { | ||||
| @@ -54,8 +54,8 @@ if(fmt_pair == ofmt + 5*ifmt){\ | |||||
| }while(po < end);\ | }while(po < end);\ | ||||
| } | } | ||||
| //FIXME put things below under ifdefs so we dont waste space for cases no codec will need | |||||
| //FIXME rounding and cliping ? | |||||
| //FIXME put things below under ifdefs so we do not waste space for cases no codec will need | |||||
| //FIXME rounding and clipping ? | |||||
| CONV(SAMPLE_FMT_U8 , uint8_t, SAMPLE_FMT_U8 , *(uint8_t*)pi) | CONV(SAMPLE_FMT_U8 , uint8_t, SAMPLE_FMT_U8 , *(uint8_t*)pi) | ||||
| else CONV(SAMPLE_FMT_S16, int16_t, SAMPLE_FMT_U8 , (*(uint8_t*)pi - 0x80)<<8) | else CONV(SAMPLE_FMT_S16, int16_t, SAMPLE_FMT_U8 , (*(uint8_t*)pi - 0x80)<<8) | ||||
| @@ -2885,7 +2885,7 @@ extern unsigned int av_xiphlacing(unsigned char *s, unsigned int v); | |||||
| /** | /** | ||||
| * Parses \p str and put in \p width_ptr and \p height_ptr the detected values. | * Parses \p str and put in \p width_ptr and \p height_ptr the detected values. | ||||
| * | * | ||||
| * @return 0 in case of a successfull parsing, a negative value otherwise | |||||
| * @return 0 in case of a successful parsing, a negative value otherwise | |||||
| * @param[in] str the string to parse: it has to be a string in the format | * @param[in] str the string to parse: it has to be a string in the format | ||||
| * <width>x<height> or a valid video frame size abbreviation. | * <width>x<height> or a valid video frame size abbreviation. | ||||
| * @param[in,out] width_ptr pointer to the variable which will contain the detected | * @param[in,out] width_ptr pointer to the variable which will contain the detected | ||||
| @@ -2898,7 +2898,7 @@ int av_parse_video_frame_size(int *width_ptr, int *height_ptr, const char *str); | |||||
| /** | /** | ||||
| * Parses \p str and put in \p frame_rate the detected values. | * Parses \p str and put in \p frame_rate the detected values. | ||||
| * | * | ||||
| * @return 0 in case of a successfull parsing, a negative value otherwise | |||||
| * @return 0 in case of a successful parsing, a negative value otherwise | |||||
| * @param[in] str the string to parse: it has to be a string in the format | * @param[in] str the string to parse: it has to be a string in the format | ||||
| * <frame_rate_nom>/<frame_rate_den>, a float number or a valid video rate abbreviation | * <frame_rate_nom>/<frame_rate_den>, a float number or a valid video rate abbreviation | ||||
| * @param[in,out] frame_rate pointer to the AVRational which will contain the detected | * @param[in,out] frame_rate pointer to the AVRational which will contain the detected | ||||
| @@ -73,8 +73,8 @@ static int32 ff_thread_func(void *v){ | |||||
| } | } | ||||
| /** | /** | ||||
| * free what has been allocated by avcodec_thread_init(). | |||||
| * must be called after decoding has finished, especially dont call while avcodec_thread_execute() is running | |||||
| * Free what has been allocated by avcodec_thread_init(). | |||||
| * Must be called after decoding has finished, especially do not call while avcodec_thread_execute() is running. | |||||
| */ | */ | ||||
| void avcodec_thread_free(AVCodecContext *s){ | void avcodec_thread_free(AVCodecContext *s){ | ||||
| ThreadContext *c= s->thread_opaque; | ThreadContext *c= s->thread_opaque; | ||||
| @@ -335,8 +335,8 @@ static inline void skip_put_bytes(PutBitContext *s, int n){ | |||||
| } | } | ||||
| /** | /** | ||||
| * skips the given number of bits. | |||||
| * must only be used if the actual values in the bitstream dont matter | |||||
| * Skips the given number of bits. | |||||
| * Must only be used if the actual values in the bitstream do not matter. | |||||
| */ | */ | ||||
| static inline void skip_put_bits(PutBitContext *s, int n){ | static inline void skip_put_bits(PutBitContext *s, int n){ | ||||
| #ifdef ALT_BITSTREAM_WRITER | #ifdef ALT_BITSTREAM_WRITER | ||||
| @@ -683,7 +683,7 @@ static av_always_inline int get_cabac_bypass_sign(CABACContext *c, int val){ | |||||
| } | } | ||||
| //FIXME the x86 code from this file should be moved into i386/h264 or cabac something.c/h (note ill kill you if you move my code away from under my fingers before iam finished with it!) | //FIXME the x86 code from this file should be moved into i386/h264 or cabac something.c/h (note ill kill you if you move my code away from under my fingers before iam finished with it!) | ||||
| //FIXME use some macros to avoid duplicatin get_cabac (cant be done yet as that would make optimization work hard) | |||||
| //FIXME use some macros to avoid duplicatin get_cabac (cannot be done yet as that would make optimization work hard) | |||||
| #if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(HAVE_EBX_AVAILABLE) && !defined(BROKEN_RELOCATIONS) | #if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(HAVE_EBX_AVAILABLE) && !defined(BROKEN_RELOCATIONS) | ||||
| static int decode_significance_x86(CABACContext *c, int max_coeff, uint8_t *significant_coeff_ctx_base, int *index){ | static int decode_significance_x86(CABACContext *c, int max_coeff, uint8_t *significant_coeff_ctx_base, int *index){ | ||||
| void *end= significant_coeff_ctx_base + max_coeff - 1; | void *end= significant_coeff_ctx_base + max_coeff - 1; | ||||
| @@ -337,7 +337,7 @@ void dct_error(const char *name, int is_idct, | |||||
| for(i=0; i<64; i++) | for(i=0; i<64; i++) | ||||
| block[i]= block1[i]; | block[i]= block1[i]; | ||||
| // memcpy(block, block1, sizeof(DCTELEM) * 64); | // memcpy(block, block1, sizeof(DCTELEM) * 64); | ||||
| // dont memcpy especially not fastmemcpy because it does movntq !!! | |||||
| // do not memcpy especially not fastmemcpy because it does movntq !!! | |||||
| fdct_func(block); | fdct_func(block); | ||||
| } | } | ||||
| it1 += NB_ITS_SPEED; | it1 += NB_ITS_SPEED; | ||||
| @@ -497,7 +497,7 @@ void idct248_error(const char *name, | |||||
| for(i=0; i<64; i++) | for(i=0; i<64; i++) | ||||
| block[i]= block1[i]; | block[i]= block1[i]; | ||||
| // memcpy(block, block1, sizeof(DCTELEM) * 64); | // memcpy(block, block1, sizeof(DCTELEM) * 64); | ||||
| // dont memcpy especially not fastmemcpy because it does movntq !!! | |||||
| // do not memcpy especially not fastmemcpy because it does movntq !!! | |||||
| idct248_put(img_dest, 8, block); | idct248_put(img_dest, 8, block); | ||||
| } | } | ||||
| it1 += NB_ITS_SPEED; | it1 += NB_ITS_SPEED; | ||||
| @@ -144,7 +144,7 @@ static void a(uint8_t *block, const uint8_t *pixels, int line_size, int h){\ | |||||
| /* motion estimation */ | /* motion estimation */ | ||||
| // h is limited to {width/2, width, 2*width} but never larger than 16 and never smaller then 2 | // h is limited to {width/2, width, 2*width} but never larger than 16 and never smaller then 2 | ||||
| // allthough currently h<4 is not used as functions with width <8 are not used and neither implemented | |||||
| // although currently h<4 is not used as functions with width <8 are neither used nor implemented | |||||
| typedef int (*me_cmp_func)(void /*MpegEncContext*/ *s, uint8_t *blk1/*align width (8 or 16)*/, uint8_t *blk2/*align 1*/, int line_size, int h)/* __attribute__ ((const))*/; | typedef int (*me_cmp_func)(void /*MpegEncContext*/ *s, uint8_t *blk1/*align width (8 or 16)*/, uint8_t *blk2/*align 1*/, int line_size, int h)/* __attribute__ ((const))*/; | ||||
| @@ -108,7 +108,7 @@ static void filter181(int16_t *data, int width, int height, int stride){ | |||||
| } | } | ||||
| /** | /** | ||||
| * guess the dc of blocks which dont have a undamaged dc | |||||
| * guess the dc of blocks which do not have an undamaged dc | |||||
| * @param w width in 8 pixel blocks | * @param w width in 8 pixel blocks | ||||
| * @param h height in 8 pixel blocks | * @param h height in 8 pixel blocks | ||||
| */ | */ | ||||
| @@ -579,8 +579,8 @@ static int flic_decode_frame_15_16BPP(AVCodecContext *avctx, | |||||
| } | } | ||||
| /* Now FLX is strange, in that it is "byte" as opposed to "pixel" run length compressed. | /* Now FLX is strange, in that it is "byte" as opposed to "pixel" run length compressed. | ||||
| * This doesnt give us any good oportunity to perform word endian conversion | |||||
| * during decompression. So if its requried (ie, this isnt a LE target, we do | |||||
| * This does not give us any good oportunity to perform word endian conversion | |||||
| * during decompression. So if it is required (i.e., this is not a LE target, we do | |||||
| * a second pass over the line here, swapping the bytes. | * a second pass over the line here, swapping the bytes. | ||||
| */ | */ | ||||
| pixel = 0xFF00; | pixel = 0xFF00; | ||||
| @@ -716,11 +716,11 @@ static int flic_decode_frame(AVCodecContext *avctx, | |||||
| buf, buf_size); | buf, buf_size); | ||||
| } | } | ||||
| /* Shouldnt get here, ever as the pix_fmt is processed */ | |||||
| /* Should not get here, ever as the pix_fmt is processed */ | |||||
| /* in flic_decode_init and the above if should deal with */ | /* in flic_decode_init and the above if should deal with */ | ||||
| /* the finite set of possibilites allowable by here. */ | /* the finite set of possibilites allowable by here. */ | ||||
| /* but in case we do, just error out. */ | |||||
| av_log(avctx, AV_LOG_ERROR, "Unknown Format of FLC. My Science cant explain how this happened\n"); | |||||
| /* But in case we do, just error out. */ | |||||
| av_log(avctx, AV_LOG_ERROR, "Unknown FLC format, my science cannot explain how this happened.\n"); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -532,7 +532,7 @@ static int h261_decode_gob(H261Context *h){ | |||||
| */ | */ | ||||
| static int get_consumed_bytes(MpegEncContext *s, int buf_size){ | static int get_consumed_bytes(MpegEncContext *s, int buf_size){ | ||||
| int pos= get_bits_count(&s->gb)>>3; | int pos= get_bits_count(&s->gb)>>3; | ||||
| if(pos==0) pos=1; //avoid infinite loops (i doubt thats needed but ...) | |||||
| if(pos==0) pos=1; //avoid infinite loops (i doubt that is needed but ...) | |||||
| if(pos+10>buf_size) pos=buf_size; // oops ;) | if(pos+10>buf_size) pos=buf_size; // oops ;) | ||||
| return pos; | return pos; | ||||
| @@ -565,7 +565,7 @@ retry: | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| //we need to set current_picture_ptr before reading the header, otherwise we cant store anyting im there | |||||
| //we need to set current_picture_ptr before reading the header, otherwise we cannot store anyting im there | |||||
| if(s->current_picture_ptr==NULL || s->current_picture_ptr->data[0]){ | if(s->current_picture_ptr==NULL || s->current_picture_ptr->data[0]){ | ||||
| int i= ff_find_unused_picture(s, 0); | int i= ff_find_unused_picture(s, 0); | ||||
| s->current_picture_ptr= &s->picture[i]; | s->current_picture_ptr= &s->picture[i]; | ||||
| @@ -580,7 +580,7 @@ retry: | |||||
| } | } | ||||
| if (s->width != avctx->coded_width || s->height != avctx->coded_height){ | if (s->width != avctx->coded_width || s->height != avctx->coded_height){ | ||||
| ParseContext pc= s->parse_context; //FIXME move these demuxng hack to avformat | |||||
| ParseContext pc= s->parse_context; //FIXME move this demuxing hack to libavformat | |||||
| s->parse_context.buffer=0; | s->parse_context.buffer=0; | ||||
| MPV_common_end(s); | MPV_common_end(s); | ||||
| s->parse_context= pc; | s->parse_context= pc; | ||||
| @@ -141,7 +141,7 @@ static int get_consumed_bytes(MpegEncContext *s, int buf_size){ | |||||
| if(pos<0) pos=0; // padding is not really read so this might be -1 | if(pos<0) pos=0; // padding is not really read so this might be -1 | ||||
| return pos; | return pos; | ||||
| }else{ | }else{ | ||||
| if(pos==0) pos=1; //avoid infinite loops (i doubt thats needed but ...) | |||||
| if(pos==0) pos=1; //avoid infinite loops (i doubt that is needed but ...) | |||||
| if(pos+10>buf_size) pos=buf_size; // oops ;) | if(pos+10>buf_size) pos=buf_size; // oops ;) | ||||
| return pos; | return pos; | ||||
| @@ -382,7 +382,8 @@ retry: | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| //we need to set current_picture_ptr before reading the header, otherwise we cant store anyting im there | |||||
| /* We need to set current_picture_ptr before reading the header, | |||||
| * otherwise we cannot store anyting in there */ | |||||
| if(s->current_picture_ptr==NULL || s->current_picture_ptr->data[0]){ | if(s->current_picture_ptr==NULL || s->current_picture_ptr->data[0]){ | ||||
| int i= ff_find_unused_picture(s, 0); | int i= ff_find_unused_picture(s, 0); | ||||
| s->current_picture_ptr= &s->picture[i]; | s->current_picture_ptr= &s->picture[i]; | ||||
| @@ -621,7 +622,7 @@ retry: | |||||
| ff_er_frame_start(s); | ff_er_frame_start(s); | ||||
| //the second part of the wmv2 header contains the MB skip bits which are stored in current_picture->mb_type | //the second part of the wmv2 header contains the MB skip bits which are stored in current_picture->mb_type | ||||
| //which isnt available before MPV_frame_start() | |||||
| //which is not available before MPV_frame_start() | |||||
| if (s->msmpeg4_version==5){ | if (s->msmpeg4_version==5){ | ||||
| if(!ENABLE_WMV2_DECODER || ff_wmv2_decode_secondary_picture_header(s) < 0) | if(!ENABLE_WMV2_DECODER || ff_wmv2_decode_secondary_picture_header(s) < 0) | ||||
| return -1; | return -1; | ||||
| @@ -1602,7 +1602,7 @@ static inline int get_chroma_qp(int chroma_qp_index_offset, int qscale){ | |||||
| return chroma_qp[av_clip(qscale + chroma_qp_index_offset, 0, 51)]; | return chroma_qp[av_clip(qscale + chroma_qp_index_offset, 0, 51)]; | ||||
| } | } | ||||
| //FIXME need to check that this doesnt overflow signed 32 bit for low qp, i am not sure, it's very close | |||||
| //FIXME need to check that this does not overflow signed 32 bit for low qp, i am not sure, it's very close | |||||
| //FIXME check that gcc inlines this (and optimizes intra & separate_dc stuff away) | //FIXME check that gcc inlines this (and optimizes intra & separate_dc stuff away) | ||||
| static inline int quantize_c(DCTELEM *block, uint8_t *scantable, int qscale, int intra, int separate_dc){ | static inline int quantize_c(DCTELEM *block, uint8_t *scantable, int qscale, int intra, int separate_dc){ | ||||
| int i; | int i; | ||||
| @@ -4816,7 +4816,7 @@ decode_intra_mb: | |||||
| if(IS_INTRA_PCM(mb_type)){ | if(IS_INTRA_PCM(mb_type)){ | ||||
| unsigned int x, y; | unsigned int x, y; | ||||
| // we assume these blocks are very rare so we dont optimize it | |||||
| // We assume these blocks are very rare so we do not optimize it. | |||||
| align_get_bits(&s->gb); | align_get_bits(&s->gb); | ||||
| // The pixels are stored in the same order as levels in h->mb array. | // The pixels are stored in the same order as levels in h->mb array. | ||||
| @@ -5957,7 +5957,7 @@ decode_intra_mb: | |||||
| const uint8_t *ptr; | const uint8_t *ptr; | ||||
| unsigned int x, y; | unsigned int x, y; | ||||
| // We assume these blocks are very rare so we dont optimize it. | |||||
| // We assume these blocks are very rare so we do not optimize it. | |||||
| // FIXME The two following lines get the bitstream position in the cabac | // FIXME The two following lines get the bitstream position in the cabac | ||||
| // decode, I think it should be done by a function in cabac.h (or cabac.c). | // decode, I think it should be done by a function in cabac.h (or cabac.c). | ||||
| ptr= h->cabac.bytestream; | ptr= h->cabac.bytestream; | ||||
| @@ -7721,7 +7721,7 @@ static int decode_nal_units(H264Context *h, uint8_t *buf, int buf_size){ | |||||
| buf_index += consumed; | buf_index += consumed; | ||||
| if( (s->hurry_up == 1 && h->nal_ref_idc == 0) //FIXME dont discard SEI id | |||||
| if( (s->hurry_up == 1 && h->nal_ref_idc == 0) //FIXME do not discard SEI id | |||||
| ||(avctx->skip_frame >= AVDISCARD_NONREF && h->nal_ref_idc == 0)) | ||(avctx->skip_frame >= AVDISCARD_NONREF && h->nal_ref_idc == 0)) | ||||
| continue; | continue; | ||||
| @@ -7818,7 +7818,7 @@ static int get_consumed_bytes(MpegEncContext *s, int pos, int buf_size){ | |||||
| return pos; | return pos; | ||||
| }else{ | }else{ | ||||
| if(pos==0) pos=1; //avoid infinite loops (i doubt thats needed but ...) | |||||
| if(pos==0) pos=1; //avoid infinite loops (i doubt that is needed but ...) | |||||
| if(pos+10>buf_size) pos=buf_size; // oops ;) | if(pos+10>buf_size) pos=buf_size; // oops ;) | ||||
| return pos; | return pos; | ||||
| @@ -8084,7 +8084,7 @@ int main(){ | |||||
| START_TIMER | START_TIMER | ||||
| j= get_ue_golomb(&gb); | j= get_ue_golomb(&gb); | ||||
| if(j != i){ | if(j != i){ | ||||
| printf("missmatch! at %d (%d should be %d) bits:%6X\n", i, j, i, s); | |||||
| printf("mismatch! at %d (%d should be %d) bits:%6X\n", i, j, i, s); | |||||
| // return -1; | // return -1; | ||||
| } | } | ||||
| STOP_TIMER("get_ue_golomb"); | STOP_TIMER("get_ue_golomb"); | ||||
| @@ -8109,7 +8109,7 @@ int main(){ | |||||
| START_TIMER | START_TIMER | ||||
| j= get_se_golomb(&gb); | j= get_se_golomb(&gb); | ||||
| if(j != i - COUNT/2){ | if(j != i - COUNT/2){ | ||||
| printf("missmatch! at %d (%d should be %d) bits:%6X\n", i, j, i, s); | |||||
| printf("mismatch! at %d (%d should be %d) bits:%6X\n", i, j, i, s); | |||||
| // return -1; | // return -1; | ||||
| } | } | ||||
| STOP_TIMER("get_se_golomb"); | STOP_TIMER("get_se_golomb"); | ||||
| @@ -8213,7 +8213,7 @@ int main(){ | |||||
| } | } | ||||
| if(memcmp(bitstream, out, COUNT)){ | if(memcmp(bitstream, out, COUNT)){ | ||||
| printf("missmatch\n"); | |||||
| printf("mismatch\n"); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| } | } | ||||
| @@ -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_isnt_initalized_see_mb_type | |||||
| #define mb_intra mb_intra_is_not_initalized_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 | ||||
| @@ -96,7 +96,7 @@ static void DEF(put_pixels4_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int | |||||
| "add $16, %2 \n\t" | "add $16, %2 \n\t" | ||||
| "subl $4, %0 \n\t" | "subl $4, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -143,7 +143,7 @@ static void DEF(put_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int | |||||
| "add $32, %2 \n\t" | "add $32, %2 \n\t" | ||||
| "subl $4, %0 \n\t" | "subl $4, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -213,7 +213,7 @@ static void DEF(put_no_rnd_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src | |||||
| "add $32, %2 \n\t" | "add $32, %2 \n\t" | ||||
| "subl $4, %0 \n\t" | "subl $4, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -268,7 +268,7 @@ static void DEF(avg_pixels4_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int | |||||
| "add $16, %2 \n\t" | "add $16, %2 \n\t" | ||||
| "subl $4, %0 \n\t" | "subl $4, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -320,7 +320,7 @@ static void DEF(avg_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int | |||||
| "add $32, %2 \n\t" | "add $32, %2 \n\t" | ||||
| "subl $4, %0 \n\t" | "subl $4, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -408,7 +408,7 @@ static void DEF(put_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int | |||||
| "add $32, %2 \n\t" | "add $32, %2 \n\t" | ||||
| "subl $2, %0 \n\t" | "subl $2, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -462,7 +462,7 @@ static void DEF(avg_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int | |||||
| "add $32, %2 \n\t" | "add $32, %2 \n\t" | ||||
| "subl $2, %0 \n\t" | "subl $2, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -535,7 +535,7 @@ static void DEF(put_no_rnd_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *sr | |||||
| "add $32, %2 \n\t" | "add $32, %2 \n\t" | ||||
| "subl $2, %0 \n\t" | "subl $2, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -748,7 +748,8 @@ static void DEF(avg_pixels8_y2)(uint8_t *block, const uint8_t *pixels, int line_ | |||||
| :"%"REG_a, "memory"); | :"%"REG_a, "memory"); | ||||
| } | } | ||||
| // Note this is not correctly rounded, but this function is only used for b frames so it doesnt matter | |||||
| /* Note this is not correctly rounded, but this function is only | |||||
| * used for B-frames so it does not matter. */ | |||||
| static void DEF(avg_pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int line_size, int h) | static void DEF(avg_pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int line_size, int h) | ||||
| { | { | ||||
| MOVQ_BONE(mm6); | MOVQ_BONE(mm6); | ||||
| @@ -98,7 +98,7 @@ static void av_unused DEF(put, pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t | |||||
| "add %5, %3 \n\t" | "add %5, %3 \n\t" | ||||
| "subl $4, %0 \n\t" | "subl $4, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -193,7 +193,7 @@ static void av_unused DEF(put, pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t | |||||
| "add $32, %2 \n\t" | "add $32, %2 \n\t" | ||||
| "subl $2, %0 \n\t" | "subl $2, %0 \n\t" | ||||
| "jnz 1b \n\t" | "jnz 1b \n\t" | ||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cant be used | |||||
| #ifdef PIC //Note "+bm" and "+mb" are buggy too (with gcc 3.2.2 at least) and cannot be used | |||||
| :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+m"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| #else | #else | ||||
| :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | :"+b"(h), "+a"(src1), "+c"(src2), "+d"(dst) | ||||
| @@ -475,7 +475,7 @@ static av_always_inline void fdct_row_mmx2(const int16_t *in, int16_t *out, cons | |||||
| static av_always_inline void fdct_row_mmx(const int16_t *in, int16_t *out, const int16_t *table) | static av_always_inline void fdct_row_mmx(const int16_t *in, int16_t *out, const int16_t *table) | ||||
| { | { | ||||
| //FIXME reorder (i dont have a old mmx only cpu here to benchmark ...) | |||||
| //FIXME reorder (I do not have an old MMX-only CPU here to benchmark ...) | |||||
| movd_m2r(*(in + 6), mm1); | movd_m2r(*(in + 6), mm1); | ||||
| punpcklwd_m2r(*(in + 4), mm1); | punpcklwd_m2r(*(in + 4), mm1); | ||||
| movq_r2r(mm1, mm2); | movq_r2r(mm1, mm2); | ||||
| @@ -397,7 +397,7 @@ asm volatile( | |||||
| : "%"REG_a, "memory" | : "%"REG_a, "memory" | ||||
| ); | ); | ||||
| block[0]= block0; | block[0]= block0; | ||||
| //Note, we dont do mismatch control for intra as errors cannot accumulate | |||||
| //Note, we do not do mismatch control for intra as errors cannot accumulate | |||||
| } | } | ||||
| static void dct_unquantize_mpeg2_inter_mmx(MpegEncContext *s, | static void dct_unquantize_mpeg2_inter_mmx(MpegEncContext *s, | ||||
| @@ -103,7 +103,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s, | |||||
| assert((7&(int)(&temp_block[0])) == 0); //did gcc align it correctly? | assert((7&(int)(&temp_block[0])) == 0); //did gcc align it correctly? | ||||
| //s->fdct (block); | //s->fdct (block); | ||||
| RENAMEl(ff_fdct) (block); //cant be anything else ... | |||||
| RENAMEl(ff_fdct) (block); //cannot be anything else ... | |||||
| if(s->dct_error_sum) | if(s->dct_error_sum) | ||||
| s->denoise_dct(s, block); | s->denoise_dct(s, block); | ||||
| @@ -381,7 +381,7 @@ static int encode_init_ls(AVCodecContext *ctx) { | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| AVCodec jpegls_encoder = { //FIXME avoid MPV_* lossless jpeg shouldnt need them | |||||
| AVCodec jpegls_encoder = { //FIXME avoid MPV_* lossless JPEG should not need them | |||||
| "jpegls", | "jpegls", | ||||
| CODEC_TYPE_VIDEO, | CODEC_TYPE_VIDEO, | ||||
| CODEC_ID_JPEGLS, | CODEC_ID_JPEGLS, | ||||
| @@ -188,7 +188,7 @@ static int MP3lame_encode_frame(AVCodecContext *avctx, | |||||
| s->buffer_index -= len; | s->buffer_index -= len; | ||||
| memmove(s->buffer, s->buffer+len, s->buffer_index); | memmove(s->buffer, s->buffer+len, s->buffer_index); | ||||
| //FIXME fix the audio codec API, so we dont need the memcpy() | |||||
| //FIXME fix the audio codec API, so we do not need the memcpy() | |||||
| /*for(i=0; i<len; i++){ | /*for(i=0; i<len; i++){ | ||||
| av_log(avctx, AV_LOG_DEBUG, "%2X ", frame[i]); | av_log(avctx, AV_LOG_DEBUG, "%2X ", frame[i]); | ||||
| }*/ | }*/ | ||||
| @@ -186,7 +186,7 @@ static int encode_picture_lossless(AVCodecContext *avctx, unsigned char *buf, in | |||||
| } | } | ||||
| AVCodec ljpeg_encoder = { //FIXME avoid MPV_* lossless jpeg shouldnt need them | |||||
| AVCodec ljpeg_encoder = { //FIXME avoid MPV_* lossless JPEG should not need them | |||||
| "ljpeg", | "ljpeg", | ||||
| CODEC_TYPE_VIDEO, | CODEC_TYPE_VIDEO, | ||||
| CODEC_ID_LJPEG, | CODEC_ID_LJPEG, | ||||
| @@ -279,7 +279,9 @@ void ff_init_me(MpegEncContext *s){ | |||||
| c->uvstride= 8*s->mb_width + 16; | c->uvstride= 8*s->mb_width + 16; | ||||
| } | } | ||||
| // 8x8 fullpel search would need a 4x4 chroma compare, which we dont have yet, and even if we had the motion estimation code doesnt expect it | |||||
| /* 8x8 fullpel search would need a 4x4 chroma compare, which we do | |||||
| * not have yet, and even if we had, the motion estimation code | |||||
| * does not expect it. */ | |||||
| if(s->codec_id != CODEC_ID_SNOW){ | if(s->codec_id != CODEC_ID_SNOW){ | ||||
| if((c->avctx->me_cmp&FF_CMP_CHROMA)/* && !s->dsp.me_cmp[2]*/){ | if((c->avctx->me_cmp&FF_CMP_CHROMA)/* && !s->dsp.me_cmp[2]*/){ | ||||
| s->dsp.me_cmp[2]= zero_cmp; | s->dsp.me_cmp[2]= zero_cmp; | ||||
| @@ -1980,7 +1982,7 @@ void ff_estimate_b_frame_motion(MpegEncContext * s, | |||||
| type |= CANDIDATE_MB_TYPE_BIDIR_I; | type |= CANDIDATE_MB_TYPE_BIDIR_I; | ||||
| } | } | ||||
| //FIXME something smarter | //FIXME something smarter | ||||
| if(dmin>256*256*16) type&= ~CANDIDATE_MB_TYPE_DIRECT; //dont try direct mode if its invalid for this MB | |||||
| if(dmin>256*256*16) type&= ~CANDIDATE_MB_TYPE_DIRECT; //do not try direct mode if it is invalid for this MB | |||||
| if(s->codec_id == CODEC_ID_MPEG4 && type&CANDIDATE_MB_TYPE_DIRECT && s->flags&CODEC_FLAG_MV0 && *(uint32_t*)s->b_direct_mv_table[xy]) | if(s->codec_id == CODEC_ID_MPEG4 && type&CANDIDATE_MB_TYPE_DIRECT && s->flags&CODEC_FLAG_MV0 && *(uint32_t*)s->b_direct_mv_table[xy]) | ||||
| type |= CANDIDATE_MB_TYPE_DIRECT0; | type |= CANDIDATE_MB_TYPE_DIRECT0; | ||||
| #if 0 | #if 0 | ||||
| @@ -60,7 +60,7 @@ static int mp3_header_decompress(AVBitStreamFilterContext *bsfc, AVCodecContext | |||||
| break; | break; | ||||
| } | } | ||||
| if(bitrate_index == 30){ | if(bitrate_index == 30){ | ||||
| av_log(avctx, AV_LOG_ERROR, "couldnt find bitrate_index\n"); | |||||
| av_log(avctx, AV_LOG_ERROR, "Could not find bitrate_index.\n"); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -1000,7 +1000,7 @@ static void mpeg1_encode_block(MpegEncContext *s, | |||||
| /* store the vlc & sign at once */ | /* store the vlc & sign at once */ | ||||
| put_bits(&s->pb, table_vlc[code][1]+1, (table_vlc[code][0]<<1) + sign); | put_bits(&s->pb, table_vlc[code][1]+1, (table_vlc[code][0]<<1) + sign); | ||||
| } else { | } else { | ||||
| /* escape seems to be pretty rare <5% so i dont optimize it */ | |||||
| /* escape seems to be pretty rare <5% so I do not optimize it */ | |||||
| put_bits(&s->pb, table_vlc[111][1], table_vlc[111][0]); | put_bits(&s->pb, table_vlc[111][1], table_vlc[111][0]); | ||||
| /* escape: only clip in this case */ | /* escape: only clip in this case */ | ||||
| put_bits(&s->pb, 6, run); | put_bits(&s->pb, 6, run); | ||||
| @@ -3178,18 +3178,18 @@ static int mpeg_decode_frame(AVCodecContext *avctx, | |||||
| int mb_y= start_code - SLICE_MIN_START_CODE; | int mb_y= start_code - SLICE_MIN_START_CODE; | ||||
| if(s2->last_picture_ptr==NULL){ | if(s2->last_picture_ptr==NULL){ | ||||
| /* skip b frames if we dont have reference frames */ | |||||
| /* Skip B-frames if we do not have reference frames. */ | |||||
| if(s2->pict_type==B_TYPE) break; | if(s2->pict_type==B_TYPE) break; | ||||
| /* skip P frames if we dont have reference frame no valid header */ | |||||
| /* Skip P-frames if we do not have reference frame no valid header. */ | |||||
| // if(s2->pict_type==P_TYPE && s2->first_field && !s2->first_slice) break; | // if(s2->pict_type==P_TYPE && s2->first_field && !s2->first_slice) break; | ||||
| } | } | ||||
| /* skip b frames if we are in a hurry */ | |||||
| /* Skip B-frames if we are in a hurry. */ | |||||
| if(avctx->hurry_up && s2->pict_type==B_TYPE) break; | if(avctx->hurry_up && s2->pict_type==B_TYPE) break; | ||||
| if( (avctx->skip_frame >= AVDISCARD_NONREF && s2->pict_type==B_TYPE) | if( (avctx->skip_frame >= AVDISCARD_NONREF && s2->pict_type==B_TYPE) | ||||
| ||(avctx->skip_frame >= AVDISCARD_NONKEY && s2->pict_type!=I_TYPE) | ||(avctx->skip_frame >= AVDISCARD_NONKEY && s2->pict_type!=I_TYPE) | ||||
| || avctx->skip_frame >= AVDISCARD_ALL) | || avctx->skip_frame >= AVDISCARD_ALL) | ||||
| break; | break; | ||||
| /* skip everything if we are in a hurry>=5 */ | |||||
| /* Skip everything if we are in a hurry>=5. */ | |||||
| if(avctx->hurry_up>=5) break; | if(avctx->hurry_up>=5) break; | ||||
| if (!s->mpeg_enc_ctx_allocated) break; | if (!s->mpeg_enc_ctx_allocated) break; | ||||
| @@ -470,7 +470,7 @@ static void compute_scale_factors(unsigned char scale_code[SBLIMIT], | |||||
| sf[1] = sf[2] = sf[0]; | sf[1] = sf[2] = sf[0]; | ||||
| break; | break; | ||||
| default: | default: | ||||
| assert(0); //cant happen | |||||
| assert(0); //cannot happen | |||||
| code = 0; /* kill warning */ | code = 0; /* kill warning */ | ||||
| } | } | ||||
| @@ -372,7 +372,7 @@ static void copy_picture_attributes(MpegEncContext *s, AVFrame *dst, AVFrame *sr | |||||
| * The pixels are allocated/set by calling get_buffer() if shared=0 | * The pixels are allocated/set by calling get_buffer() if shared=0 | ||||
| */ | */ | ||||
| static int alloc_picture(MpegEncContext *s, Picture *pic, int shared){ | static int alloc_picture(MpegEncContext *s, Picture *pic, int shared){ | ||||
| const int big_mb_num= s->mb_stride*(s->mb_height+1) + 1; //the +1 is needed so memset(,,stride*height) doesnt sig11 | |||||
| const int big_mb_num= s->mb_stride*(s->mb_height+1) + 1; //the +1 is needed so memset(,,stride*height) does not sig11 | |||||
| const int mb_array_size= s->mb_stride*s->mb_height; | const int mb_array_size= s->mb_stride*s->mb_height; | ||||
| const int b8_array_size= s->b8_stride*s->mb_height*2; | const int b8_array_size= s->b8_stride*s->mb_height*2; | ||||
| const int b4_array_size= s->b4_stride*s->mb_height*4; | const int b4_array_size= s->b4_stride*s->mb_height*4; | ||||
| @@ -492,7 +492,7 @@ static int init_duplicate_context(MpegEncContext *s, MpegEncContext *base){ | |||||
| CHECKED_ALLOCZ(s->allocated_edge_emu_buffer, (s->width+64)*2*21*2); //(width + edge + align)*interlaced*MBsize*tolerance | CHECKED_ALLOCZ(s->allocated_edge_emu_buffer, (s->width+64)*2*21*2); //(width + edge + align)*interlaced*MBsize*tolerance | ||||
| s->edge_emu_buffer= s->allocated_edge_emu_buffer + (s->width+64)*2*21; | s->edge_emu_buffer= s->allocated_edge_emu_buffer + (s->width+64)*2*21; | ||||
| //FIXME should be linesize instead of s->width*2 but that isnt known before get_buffer() | |||||
| //FIXME should be linesize instead of s->width*2 but that is not known before get_buffer() | |||||
| CHECKED_ALLOCZ(s->me.scratchpad, (s->width+64)*4*16*2*sizeof(uint8_t)) | CHECKED_ALLOCZ(s->me.scratchpad, (s->width+64)*4*16*2*sizeof(uint8_t)) | ||||
| s->rd_scratchpad= s->me.scratchpad; | s->rd_scratchpad= s->me.scratchpad; | ||||
| s->b_scratchpad= s->me.scratchpad; | s->b_scratchpad= s->me.scratchpad; | ||||
| @@ -1633,7 +1633,7 @@ alloc: | |||||
| s->error_resilience= avctx->error_resilience; | s->error_resilience= avctx->error_resilience; | ||||
| /* set dequantizer, we can't do it during init as it might change for mpeg4 | /* set dequantizer, we can't do it during init as it might change for mpeg4 | ||||
| and we can't do it in the header decode as init isnt called for mpeg4 there yet */ | |||||
| and we can't do it in the header decode as init is not called for mpeg4 there yet */ | |||||
| if(s->mpeg_quant || s->codec_id == CODEC_ID_MPEG2VIDEO){ | if(s->mpeg_quant || s->codec_id == CODEC_ID_MPEG2VIDEO){ | ||||
| s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; | s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; | ||||
| s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; | s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; | ||||
| @@ -133,7 +133,7 @@ typedef struct Picture{ | |||||
| #define IS_ACPRED(a) ((a)&MB_TYPE_ACPRED) | #define IS_ACPRED(a) ((a)&MB_TYPE_ACPRED) | ||||
| #define IS_QUANT(a) ((a)&MB_TYPE_QUANT) | #define IS_QUANT(a) ((a)&MB_TYPE_QUANT) | ||||
| #define IS_DIR(a, part, list) ((a) & (MB_TYPE_P0L0<<((part)+2*(list)))) | #define IS_DIR(a, part, list) ((a) & (MB_TYPE_P0L0<<((part)+2*(list)))) | ||||
| #define USES_LIST(a, list) ((a) & ((MB_TYPE_P0L0|MB_TYPE_P1L0)<<(2*(list)))) ///< does this mb use listX, note doesnt work if subMBs | |||||
| #define USES_LIST(a, list) ((a) & ((MB_TYPE_P0L0|MB_TYPE_P1L0)<<(2*(list)))) ///< does this mb use listX, note does not work if subMBs | |||||
| #define HAS_CBP(a) ((a)&MB_TYPE_CBP) | #define HAS_CBP(a) ((a)&MB_TYPE_CBP) | ||||
| int field_poc[2]; ///< h264 top/bottom POC | int field_poc[2]; ///< h264 top/bottom POC | ||||
| @@ -161,9 +161,9 @@ struct MpegEncContext; | |||||
| typedef struct MotionEstContext{ | typedef struct MotionEstContext{ | ||||
| AVCodecContext *avctx; | AVCodecContext *avctx; | ||||
| int skip; ///< set if ME is skipped for the current MB | int skip; ///< set if ME is skipped for the current MB | ||||
| int co_located_mv[4][2]; ///< mv from last p frame for direct mode ME | |||||
| int co_located_mv[4][2]; ///< mv from last P-frame for direct mode ME | |||||
| int direct_basis_mv[4][2]; | int direct_basis_mv[4][2]; | ||||
| uint8_t *scratchpad; ///< data area for the me algo, so that the ME doesnt need to malloc/free | |||||
| uint8_t *scratchpad; ///< data area for the ME algo, so that the ME does not need to malloc/free | |||||
| uint8_t *best_mb; | uint8_t *best_mb; | ||||
| uint8_t *temp_mb[2]; | uint8_t *temp_mb[2]; | ||||
| uint8_t *temp; | uint8_t *temp; | ||||
| @@ -248,8 +248,8 @@ typedef struct MpegEncContext { | |||||
| /* sequence parameters */ | /* sequence parameters */ | ||||
| int context_initialized; | int context_initialized; | ||||
| int input_picture_number; ///< used to set pic->display_picture_number, shouldnt be used for/by anything else | |||||
| int coded_picture_number; ///< used to set pic->coded_picture_number, shouldnt be used for/by anything else | |||||
| int input_picture_number; ///< used to set pic->display_picture_number, should not be used for/by anything else | |||||
| int coded_picture_number; ///< used to set pic->coded_picture_number, should not be used for/by anything else | |||||
| int picture_number; //FIXME remove, unclear definition | int picture_number; //FIXME remove, unclear definition | ||||
| int picture_in_gop_number; ///< 0-> first pic in gop, ... | int picture_in_gop_number; ///< 0-> first pic in gop, ... | ||||
| int b_frames_since_non_b; ///< used for encoding, relative to not yet reordered input | int b_frames_since_non_b; ///< used for encoding, relative to not yet reordered input | ||||
| @@ -1006,7 +1006,7 @@ static void init_h263_dc_for_msmpeg4(void) | |||||
| /* luminance h263 */ | /* luminance h263 */ | ||||
| uni_code= DCtab_lum[size][0]; | uni_code= DCtab_lum[size][0]; | ||||
| uni_len = DCtab_lum[size][1]; | uni_len = DCtab_lum[size][1]; | ||||
| uni_code ^= (1<<uni_len)-1; //M$ doesnt like compatibility | |||||
| uni_code ^= (1<<uni_len)-1; //M$ does not like compatibility | |||||
| if (size > 0) { | if (size > 0) { | ||||
| uni_code<<=size; uni_code|=l; | uni_code<<=size; uni_code|=l; | ||||
| @@ -1022,7 +1022,7 @@ static void init_h263_dc_for_msmpeg4(void) | |||||
| /* chrominance h263 */ | /* chrominance h263 */ | ||||
| uni_code= DCtab_chrom[size][0]; | uni_code= DCtab_chrom[size][0]; | ||||
| uni_len = DCtab_chrom[size][1]; | uni_len = DCtab_chrom[size][1]; | ||||
| uni_code ^= (1<<uni_len)-1; //M$ doesnt like compatibility | |||||
| uni_code ^= (1<<uni_len)-1; //M$ does not like compatibility | |||||
| if (size > 0) { | if (size > 0) { | ||||
| uni_code<<=size; uni_code|=l; | uni_code<<=size; uni_code|=l; | ||||
| @@ -1132,7 +1132,7 @@ int ff_msmpeg4_decode_init(MpegEncContext *s) | |||||
| break; | break; | ||||
| } | } | ||||
| s->slice_height= s->mb_height; //to avoid 1/0 if the first frame isnt a keyframe | |||||
| s->slice_height= s->mb_height; //to avoid 1/0 if the first frame is not a keyframe | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -62,7 +62,7 @@ void thread_func(void *v){ | |||||
| /** | /** | ||||
| * free what has been allocated by avcodec_thread_init(). | * free what has been allocated by avcodec_thread_init(). | ||||
| * must be called after decoding has finished, especially dont call while avcodec_thread_execute() is running | |||||
| * must be called after decoding has finished, especially do not call while avcodec_thread_execute() is running | |||||
| */ | */ | ||||
| void avcodec_thread_free(AVCodecContext *s){ | void avcodec_thread_free(AVCodecContext *s){ | ||||
| ThreadContext *c= s->thread_opaque; | ThreadContext *c= s->thread_opaque; | ||||
| @@ -160,7 +160,7 @@ int ff_rate_control_init(MpegEncContext *s) | |||||
| next= strchr(p, ';'); | next= strchr(p, ';'); | ||||
| if(next){ | if(next){ | ||||
| (*next)=0; //sscanf in unbelieavle slow on looong strings //FIXME copy / dont write | |||||
| (*next)=0; //sscanf in unbelievably slow on looong strings //FIXME copy / do not write | |||||
| next++; | next++; | ||||
| } | } | ||||
| e= sscanf(p, " in:%d ", &picture_number); | e= sscanf(p, " in:%d ", &picture_number); | ||||
| @@ -396,7 +396,7 @@ static double get_diff_limited_q(MpegEncContext *s, RateControlEntry *rce, doubl | |||||
| else if(q < last_q - maxdiff) q= last_q - maxdiff; | else if(q < last_q - maxdiff) q= last_q - maxdiff; | ||||
| } | } | ||||
| rcc->last_qscale_for[pict_type]= q; //Note we cant do that after blurring | |||||
| rcc->last_qscale_for[pict_type]= q; //Note we cannot do that after blurring | |||||
| if(pict_type!=B_TYPE) | if(pict_type!=B_TYPE) | ||||
| rcc->last_non_b_pict_type= pict_type; | rcc->last_non_b_pict_type= pict_type; | ||||
| @@ -605,7 +605,7 @@ static void adaptive_quantization(MpegEncContext *s, double q){ | |||||
| bits_tab[i]= bits; | bits_tab[i]= bits; | ||||
| } | } | ||||
| /* handle qmin/qmax cliping */ | |||||
| /* handle qmin/qmax clipping */ | |||||
| if(s->flags&CODEC_FLAG_NORMALIZE_AQP){ | if(s->flags&CODEC_FLAG_NORMALIZE_AQP){ | ||||
| float factor= bits_sum/cplx_sum; | float factor= bits_sum/cplx_sum; | ||||
| for(i=0; i<s->mb_num; i++){ | for(i=0; i<s->mb_num; i++){ | ||||
| @@ -2112,7 +2112,7 @@ static int encode_q_branch(SnowContext *s, int level, int x, int y){ | |||||
| my= ref_my; | my= ref_my; | ||||
| } | } | ||||
| } | } | ||||
| //FIXME if mb_cmp != SSE then intra cant be compared currently and mb_penalty vs. lambda2 | |||||
| //FIXME if mb_cmp != SSE then intra cannot be compared currently and mb_penalty vs. lambda2 | |||||
| // subpel search | // subpel search | ||||
| base_bits= get_rac_count(&s->c) - 8*(s->c.bytestream - s->c.bytestream_start); | base_bits= get_rac_count(&s->c) - 8*(s->c.bytestream - s->c.bytestream_start); | ||||
| @@ -2892,7 +2892,7 @@ static int get_dc(SnowContext *s, int mb_x, int mb_y, int plane_index){ | |||||
| } | } | ||||
| *b= backup; | *b= backup; | ||||
| return av_clip(((ab<<LOG2_OBMC_MAX) + aa/2)/aa, 0, 255); //FIXME we shouldnt need cliping | |||||
| return av_clip(((ab<<LOG2_OBMC_MAX) + aa/2)/aa, 0, 255); //FIXME we should not need clipping | |||||
| } | } | ||||
| static inline int get_block_bits(SnowContext *s, int x, int y, int w){ | static inline int get_block_bits(SnowContext *s, int x, int y, int w){ | ||||
| @@ -3276,7 +3276,7 @@ static void iterative_me(SnowContext *s){ | |||||
| for(i=0; i<3; i++) | for(i=0; i<3; i++) | ||||
| color[i]= get_dc(s, mb_x, mb_y, i); | color[i]= get_dc(s, mb_x, mb_y, i); | ||||
| // get previous score (cant be cached due to OBMC) | |||||
| // get previous score (cannot be cached due to OBMC) | |||||
| if(pass > 0 && (block->type&BLOCK_INTRA)){ | if(pass > 0 && (block->type&BLOCK_INTRA)){ | ||||
| int color0[3]= {block->color[0], block->color[1], block->color[2]}; | int color0[3]= {block->color[0], block->color[1], block->color[2]}; | ||||
| check_block(s, mb_x, mb_y, color0, 1, *obmc_edged, &best_rd); | check_block(s, mb_x, mb_y, color0, 1, *obmc_edged, &best_rd); | ||||
| @@ -499,7 +499,7 @@ static int svq1_motion_inter_4v_block (MpegEncContext *s, GetBitContext *bitbuf, | |||||
| int mvx= pmv[i]->x + (i&1)*16; | int mvx= pmv[i]->x + (i&1)*16; | ||||
| int mvy= pmv[i]->y + (i>>1)*16; | int mvy= pmv[i]->y + (i>>1)*16; | ||||
| ///XXX /FIXME cliping or padding? | |||||
| ///XXX /FIXME clipping or padding? | |||||
| if(y + (mvy >> 1)<0) | if(y + (mvy >> 1)<0) | ||||
| mvy= 0; | mvy= 0; | ||||
| if(x + (mvx >> 1)<0) | if(x + (mvx >> 1)<0) | ||||
| @@ -891,11 +891,11 @@ static int svq3_decode_frame (AVCodecContext *avctx, | |||||
| s->current_picture.pict_type = s->pict_type; | s->current_picture.pict_type = s->pict_type; | ||||
| s->current_picture.key_frame = (s->pict_type == I_TYPE); | s->current_picture.key_frame = (s->pict_type == I_TYPE); | ||||
| /* skip b frames if we dont have reference frames */ | |||||
| /* Skip B-frames if we do not have reference frames. */ | |||||
| if (s->last_picture_ptr == NULL && s->pict_type == B_TYPE) return 0; | if (s->last_picture_ptr == NULL && s->pict_type == B_TYPE) return 0; | ||||
| /* skip b frames if we are in a hurry */ | |||||
| /* Skip B-frames if we are in a hurry. */ | |||||
| if (avctx->hurry_up && s->pict_type == B_TYPE) return 0; | if (avctx->hurry_up && s->pict_type == B_TYPE) return 0; | ||||
| /* skip everything if we are in a hurry >= 5 */ | |||||
| /* Skip everything if we are in a hurry >= 5. */ | |||||
| if (avctx->hurry_up >= 5) return 0; | if (avctx->hurry_up >= 5) return 0; | ||||
| if( (avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type==B_TYPE) | if( (avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type==B_TYPE) | ||||
| ||(avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type!=I_TYPE) | ||(avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type!=I_TYPE) | ||||
| @@ -993,7 +993,7 @@ static int svq3_decode_frame (AVCodecContext *avctx, | |||||
| avctx->frame_number = s->picture_number - 1; | avctx->frame_number = s->picture_number - 1; | ||||
| /* dont output the last pic after seeking */ | |||||
| /* Do not output the last pic after seeking. */ | |||||
| if (s->last_picture_ptr || s->low_delay) { | if (s->last_picture_ptr || s->low_delay) { | ||||
| *data_size = sizeof(AVFrame); | *data_size = sizeof(AVFrame); | ||||
| } | } | ||||
| @@ -273,7 +273,7 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){ | |||||
| pixel_size= picture.linesize[0]*8 / w; | pixel_size= picture.linesize[0]*8 / w; | ||||
| //av_log(NULL, AV_LOG_ERROR, "%d %d %d %d\n", (int)picture.data[1], w, h, s->pix_fmt); | //av_log(NULL, AV_LOG_ERROR, "%d %d %d %d\n", (int)picture.data[1], w, h, s->pix_fmt); | ||||
| assert(pixel_size>=1); | assert(pixel_size>=1); | ||||
| //FIXME next ensures that linesize= 2^x uvlinesize, thats needed because some MC code assumes it | |||||
| //FIXME next ensures that linesize= 2^x uvlinesize, that is needed because some MC code assumes it | |||||
| if(pixel_size == 3*8) | if(pixel_size == 3*8) | ||||
| w= ALIGN(w, STRIDE_ALIGN<<h_chroma_shift); | w= ALIGN(w, STRIDE_ALIGN<<h_chroma_shift); | ||||
| else | else | ||||
| @@ -402,7 +402,7 @@ static const char* context_to_name(void* ptr) { | |||||
| } | } | ||||
| #define OFFSET(x) offsetof(AVCodecContext,x) | #define OFFSET(x) offsetof(AVCodecContext,x) | ||||
| #define DEFAULT 0 //should be NAN but it doesnt work as its not a constant in glibc as required by ANSI/ISO C | |||||
| #define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C | |||||
| //these names are too long to be readable | //these names are too long to be readable | ||||
| #define V AV_OPT_FLAG_VIDEO_PARAM | #define V AV_OPT_FLAG_VIDEO_PARAM | ||||
| #define A AV_OPT_FLAG_AUDIO_PARAM | #define A AV_OPT_FLAG_AUDIO_PARAM | ||||
| @@ -1357,8 +1357,8 @@ typedef struct { | |||||
| static AbvEntry frame_abvs[] = { | static AbvEntry frame_abvs[] = { | ||||
| { "ntsc", 720, 480, 30000, 1001 }, | { "ntsc", 720, 480, 30000, 1001 }, | ||||
| { "pal", 720, 576, 25, 1 }, | { "pal", 720, 576, 25, 1 }, | ||||
| { "qntsc", 352, 240, 30000, 1001 }, /* VCD compliant ntsc */ | |||||
| { "qpal", 352, 288, 25, 1 }, /* VCD compliant pal */ | |||||
| { "qntsc", 352, 240, 30000, 1001 }, /* VCD compliant NTSC */ | |||||
| { "qpal", 352, 288, 25, 1 }, /* VCD compliant PAL */ | |||||
| { "sntsc", 640, 480, 30000, 1001 }, /* square pixel NTSC */ | { "sntsc", 640, 480, 30000, 1001 }, /* square pixel NTSC */ | ||||
| { "spal", 768, 576, 25, 1 }, /* square pixel PAL */ | { "spal", 768, 576, 25, 1 }, /* square pixel PAL */ | ||||
| { "film", 352, 240, 24, 1 }, | { "film", 352, 240, 24, 1 }, | ||||
| @@ -4012,7 +4012,8 @@ static int vc1_decode_frame(AVCodecContext *avctx, | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| //we need to set current_picture_ptr before reading the header, otherwise we cant store anyting im there | |||||
| /* We need to set current_picture_ptr before reading the header, | |||||
| * otherwise we cannot store anyting in there. */ | |||||
| if(s->current_picture_ptr==NULL || s->current_picture_ptr->data[0]){ | if(s->current_picture_ptr==NULL || s->current_picture_ptr->data[0]){ | ||||
| int i= ff_find_unused_picture(s, 0); | int i= ff_find_unused_picture(s, 0); | ||||
| s->current_picture_ptr= &s->picture[i]; | s->current_picture_ptr= &s->picture[i]; | ||||
| @@ -756,7 +756,7 @@ static void floor_encode(venc_context_t * venc, floor_t * fc, PutBitContext * pb | |||||
| int maxval = 1; | int maxval = 1; | ||||
| if (c->books[l] != -1) | if (c->books[l] != -1) | ||||
| maxval = venc->codebooks[c->books[l]].nentries; | maxval = venc->codebooks[c->books[l]].nentries; | ||||
| // coded could be -1, but this still works, cause thats 0 | |||||
| // coded could be -1, but this still works, cause that is 0 | |||||
| if (coded[counter + k] < maxval) break; | if (coded[counter + k] < maxval) break; | ||||
| } | } | ||||
| assert(l != csub); | assert(l != csub); | ||||
| @@ -56,8 +56,8 @@ static unsigned __stdcall thread_func(void *v){ | |||||
| } | } | ||||
| /** | /** | ||||
| * free what has been allocated by avcodec_thread_init(). | |||||
| * must be called after decoding has finished, especially dont call while avcodec_thread_execute() is running | |||||
| * Free what has been allocated by avcodec_thread_init(). | |||||
| * Must be called after decoding has finished, especially do not call while avcodec_thread_execute() is running. | |||||
| */ | */ | ||||
| void avcodec_thread_free(AVCodecContext *s){ | void avcodec_thread_free(AVCodecContext *s){ | ||||
| ThreadContext *c= s->thread_opaque; | ThreadContext *c= s->thread_opaque; | ||||
| @@ -194,8 +194,9 @@ int ff_wmv2_encode_picture_header(MpegEncContext * s, int picture_number) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| // nearly idential to wmv1 but thats just because we dont use the useless M$ crap features | |||||
| // its duplicated here in case someone wants to add support for these carp features | |||||
| /* Nearly identical to wmv1 but that is just because we do not use the | |||||
| * useless M$ crap features. It is duplicated here in case someone wants | |||||
| * to add support for these crap features. */ | |||||
| void ff_wmv2_encode_mb(MpegEncContext * s, | void ff_wmv2_encode_mb(MpegEncContext * s, | ||||
| DCTELEM block[6][64], | DCTELEM block[6][64], | ||||
| int motion_x, int motion_y) | int motion_x, int motion_y) | ||||
| @@ -413,7 +413,7 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||
| get_str16_nolen(pb, name_len, name, sizeof(name)); | get_str16_nolen(pb, name_len, name, sizeof(name)); | ||||
| //av_log(NULL, AV_LOG_ERROR, "%d %d %d %d %d <%s>\n", i, stream_num, name_len, value_type, value_len, name); | //av_log(NULL, AV_LOG_ERROR, "%d %d %d %d %d <%s>\n", i, stream_num, name_len, value_type, value_len, name); | ||||
| value_num= get_le16(pb);//we should use get_value() here but it doesnt work 2 is le16 here but le32 elsewhere | |||||
| value_num= get_le16(pb);//we should use get_value() here but it does not work 2 is le16 here but le32 elsewhere | |||||
| url_fskip(pb, value_len - 2); | url_fskip(pb, value_len - 2); | ||||
| if(stream_num<128){ | if(stream_num<128){ | ||||
| @@ -158,7 +158,7 @@ typedef struct AVFormatParameters { | |||||
| #define AVFMT_RAWPICTURE 0x0020 /**< format wants AVPicture structure for | #define AVFMT_RAWPICTURE 0x0020 /**< format wants AVPicture structure for | ||||
| raw picture data */ | raw picture data */ | ||||
| #define AVFMT_GLOBALHEADER 0x0040 /**< format wants global header */ | #define AVFMT_GLOBALHEADER 0x0040 /**< format wants global header */ | ||||
| #define AVFMT_NOTIMESTAMPS 0x0080 /**< format doesnt need / has any timestamps */ | |||||
| #define AVFMT_NOTIMESTAMPS 0x0080 /**< format does not need / have any timestamps */ | |||||
| #define AVFMT_GENERIC_INDEX 0x0100 /**< use generic index building code */ | #define AVFMT_GENERIC_INDEX 0x0100 /**< use generic index building code */ | ||||
| typedef struct AVOutputFormat { | typedef struct AVOutputFormat { | ||||
| @@ -295,10 +295,10 @@ typedef struct AVStream { | |||||
| int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */ | int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */ | ||||
| /* ffmpeg.c private use */ | /* ffmpeg.c private use */ | ||||
| int stream_copy; /**< if set, just copy stream */ | int stream_copy; /**< if set, just copy stream */ | ||||
| enum AVDiscard discard; ///< selects which packets can be discarded at will and dont need to be demuxed | |||||
| enum AVDiscard discard; ///< selects which packets can be discarded at will and do not need to be demuxed | |||||
| //FIXME move stuff to a flags field? | //FIXME move stuff to a flags field? | ||||
| /** quality, as it has been removed from AVCodecContext and put in AVVideoFrame | /** quality, as it has been removed from AVCodecContext and put in AVVideoFrame | ||||
| * MN:dunno if thats the right place, for it */ | |||||
| * MN: dunno if that is the right place for it */ | |||||
| float quality; | float quality; | ||||
| /** decoding: pts of the first frame of the stream, in stream time base. */ | /** decoding: pts of the first frame of the stream, in stream time base. */ | ||||
| int64_t start_time; | int64_t start_time; | ||||
| @@ -546,7 +546,7 @@ AVFormatContext *av_alloc_format_context(void); | |||||
| * | * | ||||
| * @param ic media file handle | * @param ic media file handle | ||||
| * @return >=0 if OK. AVERROR_xxx if error. | * @return >=0 if OK. AVERROR_xxx if error. | ||||
| * @todo let user decide somehow what information is needed so we dont waste time geting stuff the user doesnt need | |||||
| * @todo Let user decide somehow what information is needed so we do not waste time geting stuff the user does not need. | |||||
| */ | */ | ||||
| int av_find_stream_info(AVFormatContext *ic); | int av_find_stream_info(AVFormatContext *ic); | ||||
| @@ -666,7 +666,7 @@ int av_add_index_entry(AVStream *st, | |||||
| /** | /** | ||||
| * Does a binary search using av_index_search_timestamp() and AVCodec.read_timestamp(). | * Does a binary search using av_index_search_timestamp() and AVCodec.read_timestamp(). | ||||
| * this isnt supposed to be called directly by a user application, but by demuxers | |||||
| * This is not supposed to be called directly by a user application, but by demuxers. | |||||
| * @param target_ts target timestamp in the time base of the given stream | * @param target_ts target timestamp in the time base of the given stream | ||||
| * @param stream_index stream number | * @param stream_index stream number | ||||
| */ | */ | ||||
| @@ -676,7 +676,7 @@ int av_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts | |||||
| * Updates cur_dts of all streams based on given timestamp and AVStream. | * Updates cur_dts of all streams based on given timestamp and AVStream. | ||||
| * | * | ||||
| * Stream ref_st unchanged, others set cur_dts in their native timebase | * Stream ref_st unchanged, others set cur_dts in their native timebase | ||||
| * only needed for timestamp wrapping or if (dts not set and pts!=dts) | |||||
| * only needed for timestamp wrapping or if (dts not set and pts!=dts). | |||||
| * @param timestamp new dts expressed in time_base of param ref_st | * @param timestamp new dts expressed in time_base of param ref_st | ||||
| * @param ref_st reference stream giving time_base of param timestamp | * @param ref_st reference stream giving time_base of param timestamp | ||||
| */ | */ | ||||
| @@ -684,7 +684,7 @@ void av_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp); | |||||
| /** | /** | ||||
| * Does a binary search using read_timestamp(). | * Does a binary search using read_timestamp(). | ||||
| * this isnt supposed to be called directly by a user application, but by demuxers | |||||
| * This is not supposed to be called directly by a user application, but by demuxers. | |||||
| * @param target_ts target timestamp in the time base of the given stream | * @param target_ts target timestamp in the time base of the given stream | ||||
| * @param stream_index stream number | * @param stream_index stream number | ||||
| */ | */ | ||||
| @@ -694,8 +694,8 @@ int64_t av_gen_search(AVFormatContext *s, int stream_index, int64_t target_ts, i | |||||
| int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap); | int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap); | ||||
| /** | /** | ||||
| * allocate the stream private data and write the stream header to an | |||||
| * output media file | |||||
| * Allocate the stream private data and write the stream header to an | |||||
| * output media file. | |||||
| * | * | ||||
| * @param s media file handle | * @param s media file handle | ||||
| * @return 0 if OK. AVERROR_xxx if error. | * @return 0 if OK. AVERROR_xxx if error. | ||||
| @@ -69,7 +69,7 @@ static int get_audio_flags(AVCodecContext *enc){ | |||||
| flags |= FLV_SAMPLERATE_SPECIAL; | flags |= FLV_SAMPLERATE_SPECIAL; | ||||
| break; | break; | ||||
| default: | default: | ||||
| av_log(enc, AV_LOG_ERROR, "flv doesnt support that sample rate, choose from (44100, 22050, 11025)\n"); | |||||
| av_log(enc, AV_LOG_ERROR, "flv does not support that sample rate, choose from (44100, 22050, 11025).\n"); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -751,7 +751,7 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) | |||||
| break; | break; | ||||
| } | } | ||||
| //Read QT version 1 fields. In version 0 theese dont exist | |||||
| //Read QT version 1 fields. In version 0 these do not exist. | |||||
| dprintf(c->fc, "version =%d, isom =%d\n",version,c->isom); | dprintf(c->fc, "version =%d, isom =%d\n",version,c->isom); | ||||
| if(!c->isom) { | if(!c->isom) { | ||||
| if(version==1) { | if(version==1) { | ||||
| @@ -1423,7 +1423,7 @@ static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||
| } | } | ||||
| for(i=0; i<mov->total_streams; i++) { | for(i=0; i<mov->total_streams; i++) { | ||||
| /* dont need those anymore */ | |||||
| /* Do not need those anymore. */ | |||||
| av_freep(&mov->streams[i]->chunk_offsets); | av_freep(&mov->streams[i]->chunk_offsets); | ||||
| av_freep(&mov->streams[i]->sample_to_chunk); | av_freep(&mov->streams[i]->sample_to_chunk); | ||||
| av_freep(&mov->streams[i]->sample_sizes); | av_freep(&mov->streams[i]->sample_sizes); | ||||
| @@ -1182,7 +1182,7 @@ static int mov_write_udta_tag(ByteIOContext *pb, MOVContext* mov, | |||||
| /* iTunes meta data */ | /* iTunes meta data */ | ||||
| mov_write_meta_tag(pb, mov, s); | mov_write_meta_tag(pb, mov, s); | ||||
| if(mov->mode == MODE_MOV){ // the title field breaks gtkpod with mp4 and my suspicion is that stuff isnt valid in mp4 | |||||
| if(mov->mode == MODE_MOV){ // the title field breaks gtkpod with mp4 and my suspicion is that stuff is not valid in mp4 | |||||
| /* Requirements */ | /* Requirements */ | ||||
| for (i=0; i<mov->nb_streams; i++) { | for (i=0; i<mov->nb_streams; i++) { | ||||
| if(mov->tracks[i].entry <= 0) continue; | if(mov->tracks[i].entry <= 0) continue; | ||||
| @@ -822,7 +822,7 @@ static int flush_packet(AVFormatContext *ctx, int stream_index, | |||||
| stuffing_size = payload_size - av_fifo_size(&stream->fifo); | stuffing_size = payload_size - av_fifo_size(&stream->fifo); | ||||
| // first byte doesnt fit -> reset pts/dts + stuffing | |||||
| // first byte does not fit -> reset pts/dts + stuffing | |||||
| if(payload_size <= trailer_size && pts != AV_NOPTS_VALUE){ | if(payload_size <= trailer_size && pts != AV_NOPTS_VALUE){ | ||||
| int timestamp_len=0; | int timestamp_len=0; | ||||
| if(dts != pts) | if(dts != pts) | ||||
| @@ -91,7 +91,7 @@ | |||||
| struct NSVf_header { | struct NSVf_header { | ||||
| uint32_t chunk_tag; /* 'NSVf' */ | uint32_t chunk_tag; /* 'NSVf' */ | ||||
| uint32_t chunk_size; | uint32_t chunk_size; | ||||
| uint32_t file_size; /* max 4GB ??? noone learns anything it seems :^) */ | |||||
| uint32_t file_size; /* max 4GB ??? no one learns anything it seems :^) */ | |||||
| uint32_t file_length; //unknown1; /* what about MSB of file_size ? */ | uint32_t file_length; //unknown1; /* what about MSB of file_size ? */ | ||||
| uint32_t info_strings_size; /* size of the info strings */ //unknown2; | uint32_t info_strings_size; /* size of the info strings */ //unknown2; | ||||
| uint32_t table_entries; | uint32_t table_entries; | ||||
| @@ -197,7 +197,7 @@ static const AVCodecTag nsv_codec_video_tags[] = { | |||||
| { CODEC_ID_VP4, MKTAG('V', 'P', '4', ' ') }, | { CODEC_ID_VP4, MKTAG('V', 'P', '4', ' ') }, | ||||
| { CODEC_ID_VP4, MKTAG('V', 'P', '4', '0') }, | { CODEC_ID_VP4, MKTAG('V', 'P', '4', '0') }, | ||||
| */ | */ | ||||
| { CODEC_ID_XVID, MKTAG('X', 'V', 'I', 'D') }, /* cf sample xvid decoder from nsv_codec_sdk.zip */ | |||||
| { CODEC_ID_MPEG4, MKTAG('X', 'V', 'I', 'D') }, /* cf sample xvid decoder from nsv_codec_sdk.zip */ | |||||
| { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', '3') }, | { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', '3') }, | ||||
| { 0, 0 }, | { 0, 0 }, | ||||
| }; | }; | ||||
| @@ -85,7 +85,7 @@ typedef struct { | |||||
| int64_t packet_start[3]; //0-> startcode less, 1-> short startcode 2-> long startcodes | int64_t packet_start[3]; //0-> startcode less, 1-> short startcode 2-> long startcodes | ||||
| FrameCode frame_code[256]; | FrameCode frame_code[256]; | ||||
| unsigned int stream_count; | unsigned int stream_count; | ||||
| uint64_t next_startcode; ///< stores the next startcode if it has alraedy been parsed but the stream isnt seekable | |||||
| uint64_t next_startcode; ///< stores the next startcode if it has already been parsed but the stream is not seekable | |||||
| StreamContext *stream; | StreamContext *stream; | ||||
| int max_distance; | int max_distance; | ||||
| int max_short_distance; | int max_short_distance; | ||||
| @@ -359,7 +359,7 @@ static uint64_t find_any_startcode(ByteIOContext *bc, int64_t pos){ | |||||
| uint64_t state=0; | uint64_t state=0; | ||||
| if(pos >= 0) | if(pos >= 0) | ||||
| url_fseek(bc, pos, SEEK_SET); //note, this may fail if the stream isnt seekable, but that shouldnt matter, as in this case we simply start where we are currently | |||||
| url_fseek(bc, pos, SEEK_SET); //note, this may fail if the stream is not seekable, but that should not matter, as in this case we simply start where we are currently | |||||
| while(!url_feof(bc)){ | while(!url_feof(bc)){ | ||||
| state= (state<<8) | get_byte(bc); | state= (state<<8) | get_byte(bc); | ||||
| @@ -63,7 +63,7 @@ typedef struct { | |||||
| uint16_t size_lsb; | uint16_t size_lsb; | ||||
| int16_t pts_delta; | int16_t pts_delta; | ||||
| uint8_t reserved_count; | uint8_t reserved_count; | ||||
| } FrameCode; // maybe s/FrameCode/framecode_t/ or change all to java style but dont mix | |||||
| } FrameCode; // maybe s/FrameCode/framecode_t/ or change all to Java style but do not mix | |||||
| typedef struct { | typedef struct { | ||||
| int last_flags; | int last_flags; | ||||
| @@ -81,7 +81,7 @@ typedef struct { | |||||
| // int written_packet_size; | // int written_packet_size; | ||||
| // int64_t packet_start[3]; //0-> startcode less, 1-> short startcode 2-> long startcodes | // int64_t packet_start[3]; //0-> startcode less, 1-> short startcode 2-> long startcodes | ||||
| FrameCode frame_code[256]; | FrameCode frame_code[256]; | ||||
| uint64_t next_startcode; ///< stores the next startcode if it has alraedy been parsed but the stream isnt seekable | |||||
| uint64_t next_startcode; ///< stores the next startcode if it has already been parsed but the stream is not seekable | |||||
| StreamContext *stream; | StreamContext *stream; | ||||
| unsigned int max_distance; | unsigned int max_distance; | ||||
| unsigned int time_base_count; | unsigned int time_base_count; | ||||
| @@ -116,7 +116,7 @@ static uint64_t find_any_startcode(ByteIOContext *bc, int64_t pos){ | |||||
| uint64_t state=0; | uint64_t state=0; | ||||
| if(pos >= 0) | if(pos >= 0) | ||||
| url_fseek(bc, pos, SEEK_SET); //note, this may fail if the stream isnt seekable, but that shouldnt matter, as in this case we simply start where we are currently | |||||
| url_fseek(bc, pos, SEEK_SET); //note, this may fail if the stream is not seekable, but that should not matter, as in this case we simply start where we are currently | |||||
| while(!url_feof(bc)){ | while(!url_feof(bc)){ | ||||
| state= (state<<8) | get_byte(bc); | state= (state<<8) | get_byte(bc); | ||||
| @@ -836,7 +836,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t pts, int flag | |||||
| next_node[0]->back_ptr, next_node[1]->back_ptr, flags, &ts, nut_read_timestamp); | next_node[0]->back_ptr, next_node[1]->back_ptr, flags, &ts, nut_read_timestamp); | ||||
| if(pos2>=0) | if(pos2>=0) | ||||
| pos= pos2; | pos= pos2; | ||||
| //FIXME dir but i think it doesnt matter | |||||
| //FIXME dir but i think it does not matter | |||||
| } | } | ||||
| dummy.pos= pos; | dummy.pos= pos; | ||||
| sp= av_tree_find(nut->syncpoints, &dummy, sp_pos_cmp, NULL); | sp= av_tree_find(nut->syncpoints, &dummy, sp_pos_cmp, NULL); | ||||
| @@ -316,7 +316,7 @@ static int video_read_header(AVFormatContext *s, | |||||
| st->need_parsing = AVSTREAM_PARSE_FULL; | st->need_parsing = AVSTREAM_PARSE_FULL; | ||||
| /* for mjpeg, specify frame rate */ | /* for mjpeg, specify frame rate */ | ||||
| /* for mpeg4 specify it too (most mpeg4 streams dont have the fixed_vop_rate set ...)*/ | |||||
| /* for mpeg4 specify it too (most mpeg4 streams do not have the fixed_vop_rate set ...)*/ | |||||
| if (ap->time_base.num) { | if (ap->time_base.num) { | ||||
| av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den); | av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den); | ||||
| } else if ( st->codec->codec_id == CODEC_ID_MJPEG || | } else if ( st->codec->codec_id == CODEC_ID_MJPEG || | ||||
| @@ -329,7 +329,7 @@ int put_wav_header(ByteIOContext *pb, AVCodecContext *enc) | |||||
| } | } | ||||
| if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3 || enc->codec_id == CODEC_ID_GSM_MS) { | if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3 || enc->codec_id == CODEC_ID_GSM_MS) { | ||||
| blkalign = enc->frame_size; //this is wrong, but seems many demuxers dont work if this is set correctly | |||||
| blkalign = enc->frame_size; //this is wrong, but it seems many demuxers do not work if this is set correctly | |||||
| //blkalign = 144 * enc->bit_rate/enc->sample_rate; | //blkalign = 144 * enc->bit_rate/enc->sample_rate; | ||||
| } else if (enc->codec_id == CODEC_ID_ADPCM_G726) { // | } else if (enc->codec_id == CODEC_ID_ADPCM_G726) { // | ||||
| blkalign = 1; | blkalign = 1; | ||||
| @@ -515,7 +515,7 @@ static int rtp_parse_mp4_au(RTPDemuxContext *s, const uint8_t *buf) | |||||
| infos->au_headers = av_malloc(sizeof(struct AUHeaders) * infos->nb_au_headers); | infos->au_headers = av_malloc(sizeof(struct AUHeaders) * infos->nb_au_headers); | ||||
| /* XXX: We handle multiple AU Section as only one (need to fix this for interleaving) | /* XXX: We handle multiple AU Section as only one (need to fix this for interleaving) | ||||
| In my test, the faad decoder doesnt behave correctly when sending each AU one by one | |||||
| In my test, the FAAD decoder does not behave correctly when sending each AU one by one | |||||
| but does when sending the whole as one big packet... */ | but does when sending the whole as one big packet... */ | ||||
| infos->au_headers[0].size = 0; | infos->au_headers[0].size = 0; | ||||
| infos->au_headers[0].index = 0; | infos->au_headers[0].index = 0; | ||||
| @@ -386,7 +386,7 @@ static int swf_write_header(AVFormatContext *s) | |||||
| break; | break; | ||||
| default: | default: | ||||
| /* not supported */ | /* not supported */ | ||||
| av_log(s, AV_LOG_ERROR, "swf doesnt support that sample rate, choose from (44100, 22050, 11025)\n"); | |||||
| av_log(s, AV_LOG_ERROR, "swf does not support that sample rate, choose from (44100, 22050, 11025).\n"); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| v |= 0x02; /* 16 bit playback */ | v |= 0x02; /* 16 bit playback */ | ||||
| @@ -293,7 +293,7 @@ static const char* format_to_name(void* ptr) | |||||
| } | } | ||||
| #define OFFSET(x) offsetof(AVFormatContext,x) | #define OFFSET(x) offsetof(AVFormatContext,x) | ||||
| #define DEFAULT 0 //should be NAN but it doesnt work as its not a constant in glibc as required by ANSI/ISO C | |||||
| #define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C | |||||
| //these names are too long to be readable | //these names are too long to be readable | ||||
| #define E AV_OPT_FLAG_ENCODING_PARAM | #define E AV_OPT_FLAG_ENCODING_PARAM | ||||
| #define D AV_OPT_FLAG_DECODING_PARAM | #define D AV_OPT_FLAG_DECODING_PARAM | ||||
| @@ -632,7 +632,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, | |||||
| if (delay && | if (delay && | ||||
| pc && pc->pict_type != FF_B_TYPE) | pc && pc->pict_type != FF_B_TYPE) | ||||
| presentation_delayed = 1; | presentation_delayed = 1; | ||||
| /* this may be redundant, but it shouldnt hurt */ | |||||
| /* This may be redundant, but it should not hurt. */ | |||||
| if(pkt->dts != AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE && pkt->pts > pkt->dts) | if(pkt->dts != AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE && pkt->pts > pkt->dts) | ||||
| presentation_delayed = 1; | presentation_delayed = 1; | ||||
| @@ -992,7 +992,7 @@ int av_add_index_entry(AVStream *st, | |||||
| return -1; | return -1; | ||||
| memmove(entries + index + 1, entries + index, sizeof(AVIndexEntry)*(st->nb_index_entries - index)); | memmove(entries + index + 1, entries + index, sizeof(AVIndexEntry)*(st->nb_index_entries - index)); | ||||
| st->nb_index_entries++; | st->nb_index_entries++; | ||||
| }else if(ie->pos == pos && distance < ie->min_distance) //dont reduce the distance | |||||
| }else if(ie->pos == pos && distance < ie->min_distance) //do not reduce the distance | |||||
| distance= ie->min_distance; | distance= ie->min_distance; | ||||
| } | } | ||||
| @@ -47,8 +47,8 @@ LinBlendDeinterlace e E E* | |||||
| MedianDeinterlace# E Ec Ec | MedianDeinterlace# E Ec Ec | ||||
| TempDeNoiser# E e e Ec | TempDeNoiser# E e e Ec | ||||
| * i dont have a 3dnow CPU -> its untested, but noone said it doesnt work so it seems to work | |||||
| # more or less selfinvented filters so the exactness isnt too meaningfull | |||||
| * i do not have a 3DNow! CPU -> it is untested, but no one said it does not work so it seems to work | |||||
| # more or less selfinvented filters so the exactness is not too meaningful | |||||
| E = Exact implementation | E = Exact implementation | ||||
| e = allmost exact implementation (slightly different rounding,...) | e = allmost exact implementation (slightly different rounding,...) | ||||
| a = alternative / approximate impl | a = alternative / approximate impl | ||||
| @@ -398,8 +398,8 @@ static inline void doHorizLowPass_C(uint8_t dst[], int stride, PPContext *c) | |||||
| * Experimental Filter 1 (Horizontal) | * Experimental Filter 1 (Horizontal) | ||||
| * will not damage linear gradients | * will not damage linear gradients | ||||
| * Flat blocks should look like they where passed through the (1,1,2,2,4,2,2,1,1) 9-Tap filter | * Flat blocks should look like they where passed through the (1,1,2,2,4,2,2,1,1) 9-Tap filter | ||||
| * can only smooth blocks at the expected locations (it cant smooth them if they did move) | |||||
| * MMX2 version does correct clipping C version doesnt | |||||
| * can only smooth blocks at the expected locations (it cannot smooth them if they did move) | |||||
| * MMX2 version does correct clipping C version does not | |||||
| * not identical with the vertical one | * not identical with the vertical one | ||||
| */ | */ | ||||
| static inline void horizX1Filter(uint8_t *src, int stride, int QP) | static inline void horizX1Filter(uint8_t *src, int stride, int QP) | ||||
| @@ -646,7 +646,7 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step, int stride, | |||||
| #include "postprocess_template.c" | #include "postprocess_template.c" | ||||
| #endif | #endif | ||||
| // minor note: the HAVE_xyz is messed up after that line so dont use it | |||||
| // minor note: the HAVE_xyz is messed up after that line so do not use it. | |||||
| static inline void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height, | static inline void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height, | ||||
| QP_STORE_T QPs[], int QPStride, int isColor, pp_mode_t *vm, pp_context_t *vc) | QP_STORE_T QPs[], int QPStride, int isColor, pp_mode_t *vm, pp_context_t *vc) | ||||
| @@ -655,9 +655,9 @@ static inline void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int | |||||
| PPMode *ppMode= (PPMode *)vm; | PPMode *ppMode= (PPMode *)vm; | ||||
| c->ppMode= *ppMode; //FIXME | c->ppMode= *ppMode; //FIXME | ||||
| // useing ifs here as they are faster than function pointers allthough the | |||||
| // difference wouldnt be messureable here but its much better because | |||||
| // someone might exchange the cpu whithout restarting mplayer ;) | |||||
| // Using ifs here as they are faster than function pointers although the | |||||
| // difference would not be measureable here but it is much better because | |||||
| // someone might exchange the CPU whithout restarting MPlayer ;) | |||||
| #ifdef RUNTIME_CPUDETECT | #ifdef RUNTIME_CPUDETECT | ||||
| #if defined(ARCH_X86) | #if defined(ARCH_X86) | ||||
| // ordered per speed fasterst first | // ordered per speed fasterst first | ||||
| @@ -961,7 +961,7 @@ static void reallocBuffers(PPContext *c, int width, int height, int stride, int | |||||
| for(i=0; i<3; i++) | for(i=0; i<3; i++) | ||||
| { | { | ||||
| //Note:the +17*1024 is just there so i dont have to worry about r/w over te end | |||||
| //Note: The +17*1024 is just there so i do not have to worry about r/w over the end. | |||||
| reallocAlign((void **)&c->tempBlured[i], 8, stride*mbHeight*16 + 17*1024); | reallocAlign((void **)&c->tempBlured[i], 8, stride*mbHeight*16 + 17*1024); | ||||
| reallocAlign((void **)&c->tempBluredPast[i], 8, 256*((height+7)&(~7))/2 + 17*1024);//FIXME size | reallocAlign((void **)&c->tempBluredPast[i], 8, 256*((height+7)&(~7))/2 + 17*1024);//FIXME size | ||||
| } | } | ||||
| @@ -66,9 +66,9 @@ | |||||
| # define PIC | # define PIC | ||||
| #endif | #endif | ||||
| //use if u want a faster postprocessing code | |||||
| //cant differentiate between chroma & luma filters (both on or both off) | |||||
| //obviosly the -pp option at the commandline has no effect except turning the here selected | |||||
| //use if you want a faster postprocessing code | |||||
| //cannot differentiate between chroma & luma filters (both on or both off) | |||||
| //obviously the -pp option on the command line has no effect except turning the here selected | |||||
| //filters on | //filters on | ||||
| //#define COMPILE_TIME_MODE 0x77 | //#define COMPILE_TIME_MODE 0x77 | ||||
| @@ -73,7 +73,7 @@ | |||||
| "paddb " #a ", " #b " \n\t" | "paddb " #a ", " #b " \n\t" | ||||
| #endif | #endif | ||||
| //FIXME? |255-0| = 1 (shouldnt be a problem ...) | |||||
| //FIXME? |255-0| = 1 (should not be a problem ...) | |||||
| #ifdef HAVE_MMX | #ifdef HAVE_MMX | ||||
| /** | /** | ||||
| * Check if the middle 8x8 Block in the given 8x16 block is flat | * Check if the middle 8x8 Block in the given 8x16 block is flat | ||||
| @@ -478,8 +478,8 @@ static inline void RENAME(vertRK1Filter)(uint8_t *src, int stride, int QP) | |||||
| * Experimental Filter 1 | * Experimental Filter 1 | ||||
| * will not damage linear gradients | * will not damage linear gradients | ||||
| * Flat blocks should look like they where passed through the (1,1,2,2,4,2,2,1,1) 9-Tap filter | * Flat blocks should look like they where passed through the (1,1,2,2,4,2,2,1,1) 9-Tap filter | ||||
| * can only smooth blocks at the expected locations (it cant smooth them if they did move) | |||||
| * MMX2 version does correct clipping C version doesnt | |||||
| * can only smooth blocks at the expected locations (it cannot smooth them if they did move) | |||||
| * MMX2 version does correct clipping C version does not | |||||
| */ | */ | ||||
| static inline void RENAME(vertX1Filter)(uint8_t *src, int stride, PPContext *co) | static inline void RENAME(vertX1Filter)(uint8_t *src, int stride, PPContext *co) | ||||
| { | { | ||||
| @@ -3183,8 +3183,8 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int | |||||
| QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c); | QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c); | ||||
| /** | /** | ||||
| * Copies a block from src to dst and fixes the blacklevel | |||||
| * levelFix == 0 -> dont touch the brighness & contrast | |||||
| * Copies a block from src to dst and fixes the blacklevel. | |||||
| * levelFix == 0 -> do not touch the brighness & contrast | |||||
| */ | */ | ||||
| #undef SCALED_CPY | #undef SCALED_CPY | ||||
| @@ -217,9 +217,9 @@ static AVStream *add_video_stream(AVFormatContext *oc, int codec_id) | |||||
| c->max_b_frames = 2; | c->max_b_frames = 2; | ||||
| } | } | ||||
| if (c->codec_id == CODEC_ID_MPEG1VIDEO){ | if (c->codec_id == CODEC_ID_MPEG1VIDEO){ | ||||
| /* needed to avoid using macroblocks in which some coeffs overflow | |||||
| this doesnt happen with normal video, it just happens here as the | |||||
| motion of the chroma plane doesnt match the luma plane */ | |||||
| /* Needed to avoid using macroblocks in which some coeffs overflow. | |||||
| This does not happen with normal video, it just happens here as | |||||
| the motion of the chroma plane does not match the luma plane. */ | |||||
| c->mb_decision=2; | c->mb_decision=2; | ||||
| } | } | ||||
| // some formats want stream headers to be separate | // some formats want stream headers to be separate | ||||
| @@ -46,13 +46,13 @@ int main(int argc, char **argv) | |||||
| AVPacket pkt; | AVPacket pkt; | ||||
| int64_t pktnum = 0; | int64_t pktnum = 0; | ||||
| int64_t maxpkts = 0; | int64_t maxpkts = 0; | ||||
| int dontquit = 0; | |||||
| int donotquit = 0; | |||||
| int nowrite = 0; | int nowrite = 0; | ||||
| int err; | int err; | ||||
| if ((argc > 1) && !strncmp(argv[1], "-", 1)) { | if ((argc > 1) && !strncmp(argv[1], "-", 1)) { | ||||
| if (strchr(argv[1], 'w')) | if (strchr(argv[1], 'w')) | ||||
| dontquit = 1; | |||||
| donotquit = 1; | |||||
| if (strchr(argv[1], 'n')) | if (strchr(argv[1], 'n')) | ||||
| nowrite = 1; | nowrite = 1; | ||||
| argv++; | argv++; | ||||
| @@ -110,7 +110,7 @@ int main(int argc, char **argv) | |||||
| break; | break; | ||||
| } | } | ||||
| while (dontquit) | |||||
| while (donotquit) | |||||
| sleep(60); | sleep(60); | ||||
| return 0; | return 0; | ||||
| @@ -52,7 +52,7 @@ int main(int argc, char **argv) | |||||
| ret = av_open_input_file(&ic, filename, NULL, 0, NULL); | ret = av_open_input_file(&ic, filename, NULL, 0, NULL); | ||||
| if (ret < 0) { | if (ret < 0) { | ||||
| fprintf(stderr, "cant open %s\n", filename); | |||||
| fprintf(stderr, "cannot open %s\n", filename); | |||||
| exit(1); | exit(1); | ||||
| } | } | ||||