From 113d3e106d2ed40608b58410a518d625bac8ff15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 8 Mar 2012 00:38:02 +0200 Subject: [PATCH 01/11] udp: Reorder comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When this code was added in 36b532815cb83, the new code was added between the existing comment and the existing line of code, making the old comment seem to refer to the new code. This makes it read correctly. Signed-off-by: Martin Storsjö --- libavformat/udp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index 93d2692a39..12de48cc4e 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -380,13 +380,13 @@ static int udp_open(URLContext *h, const char *uri, int flags) goto fail; } - /* the bind is needed to give a port to the socket now */ /* if multicast, try the multicast address bind first */ if (s->is_multicast && (h->flags & AVIO_FLAG_READ)) { bind_ret = bind(udp_fd,(struct sockaddr *)&s->dest_addr, len); } /* bind to the local address if not multicast or if the multicast * bind failed */ + /* the bind is needed to give a port to the socket now */ if (bind_ret < 0 && bind(udp_fd,(struct sockaddr *)&my_addr, len) < 0) { av_log(h, AV_LOG_ERROR, "bind failed: %s\n", strerror(errno)); goto fail; From 1b89bcdd7f12602d8ae9cadc8486f7b0d70e9704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 8 Mar 2012 15:15:11 +0200 Subject: [PATCH 02/11] udp: Clarify the comment about binding the multicast address MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavformat/udp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index 12de48cc4e..e91b95cde4 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -380,7 +380,9 @@ static int udp_open(URLContext *h, const char *uri, int flags) goto fail; } - /* if multicast, try the multicast address bind first */ + /* If multicast, try binding the multicast address first, to avoid + * receiving UDP packets from other sources aimed at the same UDP + * port. This fails on windows. */ if (s->is_multicast && (h->flags & AVIO_FLAG_READ)) { bind_ret = bind(udp_fd,(struct sockaddr *)&s->dest_addr, len); } From c700fdb00f28a65c42b37c43d82a29733f1cc20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 8 Mar 2012 15:17:15 +0200 Subject: [PATCH 03/11] udp: Only bind to the multicast address if in read-only mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes sending back RTCP RR packets if receiving RTP over multicast. If the multicast stream is sent on demand (set up and signalled via RTSP), the sender might depend on getting RTCP RR packets knowing that there are listeners, otherwise the stream can be closed after a certain timeout. This fixes receiving RTSP streams over multicast on unix, from certain Axis cameras. Signed-off-by: Martin Storsjö --- libavformat/udp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index e91b95cde4..3c63f516a2 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -382,8 +382,9 @@ static int udp_open(URLContext *h, const char *uri, int flags) /* If multicast, try binding the multicast address first, to avoid * receiving UDP packets from other sources aimed at the same UDP - * port. This fails on windows. */ - if (s->is_multicast && (h->flags & AVIO_FLAG_READ)) { + * port. This fails on windows. This makes sending to the same address + * using sendto() fail, so only do it if we're opened in read-only mode. */ + if (s->is_multicast && !(h->flags & AVIO_FLAG_WRITE)) { bind_ret = bind(udp_fd,(struct sockaddr *)&s->dest_addr, len); } /* bind to the local address if not multicast or if the multicast From 2bfd92b33089b38ce73f845a3b30f94688742fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 8 Mar 2012 15:31:45 +0200 Subject: [PATCH 04/11] udp: Set ttl for read-write streams, too, not only for write-only ones MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavformat/udp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index 3c63f516a2..37b76559e9 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -400,11 +400,12 @@ static int udp_open(URLContext *h, const char *uri, int flags) s->local_port = udp_port(&my_addr, len); if (s->is_multicast) { - if (!(h->flags & AVIO_FLAG_READ)) { + if (h->flags & AVIO_FLAG_WRITE) { /* output */ if (udp_set_multicast_ttl(udp_fd, s->ttl, (struct sockaddr *)&s->dest_addr) < 0) goto fail; - } else { + } + if (h->flags & AVIO_FLAG_READ) { /* input */ if (udp_join_multicast_group(udp_fd, (struct sockaddr *)&s->dest_addr) < 0) goto fail; From 6294d708b8be886767f6181169143c29c975938f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 8 Mar 2012 15:32:39 +0200 Subject: [PATCH 05/11] rtsp: Only set the ttl parameter if the server actually gave a value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Passing ttl=0 to the rtp/udp url contexts makes packets never leave the host machine. Signed-off-by: Martin Storsjö --- libavformat/rtsp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index dd79407036..9df88b30aa 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1350,7 +1350,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, break; } case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: { - char url[1024], namebuf[50]; + char url[1024], namebuf[50], optbuf[20] = ""; struct sockaddr_storage addr; int port, ttl; @@ -1363,10 +1363,12 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, port = rtsp_st->sdp_port; ttl = rtsp_st->sdp_ttl; } + if (ttl > 0) + snprintf(optbuf, sizeof(optbuf), "?ttl=%d", ttl); getnameinfo((struct sockaddr*) &addr, sizeof(addr), namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST); ff_url_join(url, sizeof(url), "rtp", NULL, namebuf, - port, "?ttl=%d", ttl); + port, "%s", optbuf); if (ffurl_open(&rtsp_st->rtp_handle, url, AVIO_FLAG_READ_WRITE, &s->interrupt_callback, NULL) < 0) { err = AVERROR_INVALIDDATA; From d53fe096e4d0d0e4db2859e467515de1a0ef91fa Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 6 Mar 2012 17:26:29 -0800 Subject: [PATCH 06/11] aacdec: Fix out of array writes (stack). Set the element to channel vector (e2c_vec) size to be the maximum number of aac channel elements. This makes it slightly larger than it needs to be because CCEs are never mapped to output channel locations. Also add a check that all input tags (legal or not) will fit. Split from FFmpeg commit a8d67efa53dae1d14614e3a7bd4e77e4eab066ab Signed-off-by: Alex Converse --- libavcodec/aacdec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index 4f94f5f5c9..c7c11c9e5f 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -223,10 +223,13 @@ static int count_paired_channels(uint8_t (*layout_map)[3], int tags, int pos, in static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags) { int i, n, total_non_cc_elements; - struct elem_to_channel e2c_vec[MAX_ELEM_ID] = {{ 0 }}; + struct elem_to_channel e2c_vec[4*MAX_ELEM_ID] = {{ 0 }}; int num_front_channels, num_side_channels, num_back_channels; uint64_t layout; + if (FF_ARRAY_ELEMS(e2c_vec) < tags) + return 0; + i = 0; num_front_channels = count_paired_channels(layout_map, tags, AAC_CHANNEL_FRONT, &i); From 744dd1d35611b8dec7727d0f676bb44742ad49a1 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 6 Mar 2012 17:30:09 -0800 Subject: [PATCH 07/11] aacdec: Fix SCE parity check. An unpaired SCE preceding a CPE only makes sense for front SCEs preceding the first CPE. Split from FFmpeg commit a8d67efa53dae1d14614e3a7bd4e77e4eab066ab Signed-off-by: Alex Converse --- libavcodec/aacdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index c7c11c9e5f..6cfc7dac9c 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -200,7 +200,7 @@ static int count_paired_channels(uint8_t (*layout_map)[3], int tags, int pos, in break; if (layout_map[i][0] == TYPE_CPE) { if (sce_parity) { - if (pos == AAC_CHANNEL_FRONT || !first_cpe) { + if (pos == AAC_CHANNEL_FRONT && !first_cpe) { sce_parity = 0; } else { return -1; From 100c3fb2d1d7451857fd143c98b329e271dbdf50 Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Thu, 8 Mar 2012 13:36:51 -0800 Subject: [PATCH 08/11] mpegts: Always honor a registration descriptor if present and there is no other codec information. --- libavformat/mpegts.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index fb0c416b3b..dd51b85765 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -1349,8 +1349,7 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type case 0x05: /* registration descriptor */ st->codec->codec_tag = bytestream_get_le32(pp); av_dlog(fc, "reg_desc=%.4s\n", (char*)&st->codec->codec_tag); - if (st->codec->codec_id == CODEC_ID_NONE && - stream_type == STREAM_TYPE_PRIVATE_DATA) + if (st->codec->codec_id == CODEC_ID_NONE) mpegts_find_stream_type(st, st->codec->codec_tag, REGD_types); break; default: From 49e35f497fe84920327e5cc5ae0bf65dccdb163b Mon Sep 17 00:00:00 2001 From: Gil Pedersen Date: Wed, 7 Mar 2012 17:03:06 +0100 Subject: [PATCH 09/11] configure: darwin: Change dylib install names to include major version. This will cause linkers to link against the major lib names, instead of the base names, allowing multiple major versions of the libraries to co-exist. Signed-off-by: Diego Biurrun --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 6278b9ab8e..4f956bb6b6 100755 --- a/configure +++ b/configure @@ -2462,7 +2462,7 @@ case $target_os in enable malloc_aligned gas="gas-preprocessor.pl $cc" enabled ppc && add_asflags -force_cpusubtype_ALL - SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress add_ldflags -Wl,-dynamic,-search_paths_first SLIBSUF=".dylib" From eab6968f24991145ca3dc38635cef36884bfd757 Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Thu, 8 Mar 2012 23:53:20 +0100 Subject: [PATCH 10/11] build: Skip compiling xvmc.h under the correct condition. --- libavcodec/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index d4ad81cc92..0f1c728fc5 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -685,10 +685,10 @@ SKIPHEADERS += %_tablegen.h \ SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h SKIPHEADERS-$(CONFIG_LIBDIRAC) += libdirac.h SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER) += libschroedinger.h +SKIPHEADERS-$(CONFIG_MPEG_XVMC_DECODER) += xvmc.h SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_internal.h SKIPHEADERS-$(CONFIG_VDA) += vda.h vda_internal.h SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h -SKIPHEADERS-$(CONFIG_XVMC) += xvmc.h SKIPHEADERS-$(HAVE_W32THREADS) += w32pthreads.h EXAMPLES = api From ffae713a5b3a0d20ff958d8bd58a052b495c38fd Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Wed, 25 Jan 2012 12:25:11 +0100 Subject: [PATCH 11/11] Fix a bunch of common typos. --- libavcodec/pgssubdec.c | 2 +- libavcodec/vorbisenc.c | 66 +++++++++++++++++++------------------- libavformat/r3d.c | 2 +- tools/lavfi-showfiltfmts.c | 2 +- tools/patcheck | 2 +- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c index bcc47f358e..79ae113a7f 100644 --- a/libavcodec/pgssubdec.c +++ b/libavcodec/pgssubdec.c @@ -446,7 +446,7 @@ static int decode(AVCodecContext *avctx, void *data, int *data_size, case WINDOW_SEGMENT: /* * Window Segment Structure (No new information provided): - * 2 bytes: Unkown, + * 2 bytes: Unknown, * 2 bytes: X position of subtitle, * 2 bytes: Y position of subtitle, * 2 bytes: Width of subtitle, diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index 1566f446ce..5082efca76 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -41,13 +41,13 @@ typedef struct { int nentries; uint8_t *lens; uint32_t *codewords; - int ndimentions; + int ndimensions; float min; float delta; int seq_p; int lookup; int *quantlist; - float *dimentions; + float *dimensions; float *pow2; } vorbis_enc_codebook; @@ -149,12 +149,12 @@ static inline int put_codeword(PutBitContext *pb, vorbis_enc_codebook *cb, return 0; } -static int cb_lookup_vals(int lookup, int dimentions, int entries) +static int cb_lookup_vals(int lookup, int dimensions, int entries) { if (lookup == 1) - return ff_vorbis_nth_root(entries, dimentions); + return ff_vorbis_nth_root(entries, dimensions); else if (lookup == 2) - return dimentions *entries; + return dimensions *entries; return 0; } @@ -165,28 +165,28 @@ static int ready_codebook(vorbis_enc_codebook *cb) ff_vorbis_len2vlc(cb->lens, cb->codewords, cb->nentries); if (!cb->lookup) { - cb->pow2 = cb->dimentions = NULL; + cb->pow2 = cb->dimensions = NULL; } else { - int vals = cb_lookup_vals(cb->lookup, cb->ndimentions, cb->nentries); - cb->dimentions = av_malloc(sizeof(float) * cb->nentries * cb->ndimentions); + int vals = cb_lookup_vals(cb->lookup, cb->ndimensions, cb->nentries); + cb->dimensions = av_malloc(sizeof(float) * cb->nentries * cb->ndimensions); cb->pow2 = av_mallocz(sizeof(float) * cb->nentries); - if (!cb->dimentions || !cb->pow2) + if (!cb->dimensions || !cb->pow2) return AVERROR(ENOMEM); for (i = 0; i < cb->nentries; i++) { float last = 0; int j; int div = 1; - for (j = 0; j < cb->ndimentions; j++) { + for (j = 0; j < cb->ndimensions; j++) { int off; if (cb->lookup == 1) off = (i / div) % vals; // lookup type 1 else - off = i * cb->ndimentions + j; // lookup type 2 + off = i * cb->ndimensions + j; // lookup type 2 - cb->dimentions[i * cb->ndimentions + j] = last + cb->min + cb->quantlist[off] * cb->delta; + cb->dimensions[i * cb->ndimensions + j] = last + cb->min + cb->quantlist[off] * cb->delta; if (cb->seq_p) - last = cb->dimentions[i * cb->ndimentions + j]; - cb->pow2[i] += cb->dimentions[i * cb->ndimentions + j] * cb->dimentions[i * cb->ndimentions + j]; + last = cb->dimensions[i * cb->ndimensions + j]; + cb->pow2[i] += cb->dimensions[i * cb->ndimensions + j] * cb->dimensions[i * cb->ndimensions + j]; div *= vals; } cb->pow2[i] /= 2.; @@ -211,17 +211,17 @@ static int ready_residue(vorbis_enc_residue *rc, vorbis_enc_context *venc) if (j == 8) // zero continue; cb = &venc->codebooks[rc->books[i][j]]; - assert(cb->ndimentions >= 2); + assert(cb->ndimensions >= 2); assert(cb->lookup); for (j = 0; j < cb->nentries; j++) { float a; if (!cb->lens[j]) continue; - a = fabs(cb->dimentions[j * cb->ndimentions]); + a = fabs(cb->dimensions[j * cb->ndimensions]); if (a > rc->maxes[i][0]) rc->maxes[i][0] = a; - a = fabs(cb->dimentions[j * cb->ndimentions + 1]); + a = fabs(cb->dimensions[j * cb->ndimensions + 1]); if (a > rc->maxes[i][1]) rc->maxes[i][1] = a; } @@ -257,7 +257,7 @@ static int create_vorbis_context(vorbis_enc_context *venc, for (book = 0; book < venc->ncodebooks; book++) { vorbis_enc_codebook *cb = &venc->codebooks[book]; int vals; - cb->ndimentions = cvectors[book].dim; + cb->ndimensions = cvectors[book].dim; cb->nentries = cvectors[book].real_len; cb->min = cvectors[book].min; cb->delta = cvectors[book].delta; @@ -272,7 +272,7 @@ static int create_vorbis_context(vorbis_enc_context *venc, memset(cb->lens + cvectors[book].len, 0, cb->nentries - cvectors[book].len); if (cb->lookup) { - vals = cb_lookup_vals(cb->lookup, cb->ndimentions, cb->nentries); + vals = cb_lookup_vals(cb->lookup, cb->ndimensions, cb->nentries); cb->quantlist = av_malloc(sizeof(int) * vals); if (!cb->quantlist) return AVERROR(ENOMEM); @@ -454,7 +454,7 @@ static void put_codebook_header(PutBitContext *pb, vorbis_enc_codebook *cb) int ordered = 0; put_bits(pb, 24, 0x564342); //magic - put_bits(pb, 16, cb->ndimentions); + put_bits(pb, 16, cb->ndimensions); put_bits(pb, 24, cb->nentries); for (i = 1; i < cb->nentries; i++) @@ -496,7 +496,7 @@ static void put_codebook_header(PutBitContext *pb, vorbis_enc_codebook *cb) put_bits(pb, 4, cb->lookup); if (cb->lookup) { - int tmp = cb_lookup_vals(cb->lookup, cb->ndimentions, cb->nentries); + int tmp = cb_lookup_vals(cb->lookup, cb->ndimensions, cb->nentries); int bits = ilog(cb->quantlist[0]); for (i = 1; i < tmp; i++) @@ -848,13 +848,13 @@ static float *put_vector(vorbis_enc_codebook *book, PutBitContext *pb, { int i, entry = -1; float distance = FLT_MAX; - assert(book->dimentions); + assert(book->dimensions); for (i = 0; i < book->nentries; i++) { - float * vec = book->dimentions + i * book->ndimentions, d = book->pow2[i]; + float * vec = book->dimensions + i * book->ndimensions, d = book->pow2[i]; int j; if (!book->lens[i]) continue; - for (j = 0; j < book->ndimentions; j++) + for (j = 0; j < book->ndimensions; j++) d -= vec[j] * num[j]; if (distance > d) { entry = i; @@ -863,7 +863,7 @@ static float *put_vector(vorbis_enc_codebook *book, PutBitContext *pb, } if (put_codeword(pb, book, entry)) return NULL; - return &book->dimentions[entry * book->ndimentions]; + return &book->dimensions[entry * book->ndimensions]; } static int residue_encode(vorbis_enc_context *venc, vorbis_enc_residue *rc, @@ -875,7 +875,7 @@ static int residue_encode(vorbis_enc_context *venc, vorbis_enc_residue *rc, int partitions = (rc->end - rc->begin) / psize; int channels = (rc->type == 2) ? 1 : real_ch; int classes[MAX_CHANNELS][NUM_RESIDUE_PARTITIONS]; - int classwords = venc->codebooks[rc->classbook].ndimentions; + int classwords = venc->codebooks[rc->classbook].ndimensions; assert(rc->type == 2); assert(real_ch == 2); @@ -916,15 +916,15 @@ static int residue_encode(vorbis_enc_context *venc, vorbis_enc_residue *rc, continue; assert(rc->type == 0 || rc->type == 2); - assert(!(psize % book->ndimentions)); + assert(!(psize % book->ndimensions)); if (rc->type == 0) { - for (k = 0; k < psize; k += book->ndimentions) { + for (k = 0; k < psize; k += book->ndimensions) { int l; float *a = put_vector(book, pb, &buf[k]); if (!a) return AVERROR(EINVAL); - for (l = 0; l < book->ndimentions; l++) + for (l = 0; l < book->ndimensions; l++) buf[k + l] -= a[l]; } } else { @@ -932,10 +932,10 @@ static int residue_encode(vorbis_enc_context *venc, vorbis_enc_residue *rc, a1 = (s % real_ch) * samples; b1 = s / real_ch; s = real_ch * samples; - for (k = 0; k < psize; k += book->ndimentions) { + for (k = 0; k < psize; k += book->ndimensions) { int dim, a2 = a1, b2 = b1; float vec[MAX_CODEBOOK_DIM], *pv = vec; - for (dim = book->ndimentions; dim--; ) { + for (dim = book->ndimensions; dim--; ) { *pv++ = coeffs[a2 + b2]; if ((a2 += samples) == s) { a2 = 0; @@ -945,7 +945,7 @@ static int residue_encode(vorbis_enc_context *venc, vorbis_enc_residue *rc, pv = put_vector(book, pb, vec); if (!pv) return AVERROR(EINVAL); - for (dim = book->ndimentions; dim--; ) { + for (dim = book->ndimensions; dim--; ) { coeffs[a1 + b1] -= *pv++; if ((a1 += samples) == s) { a1 = 0; @@ -1099,7 +1099,7 @@ static av_cold int vorbis_encode_close(AVCodecContext *avccontext) av_freep(&venc->codebooks[i].lens); av_freep(&venc->codebooks[i].codewords); av_freep(&venc->codebooks[i].quantlist); - av_freep(&venc->codebooks[i].dimentions); + av_freep(&venc->codebooks[i].dimensions); av_freep(&venc->codebooks[i].pow2); } av_freep(&venc->codebooks); diff --git a/libavformat/r3d.c b/libavformat/r3d.c index cf6d7debbf..f67d10eb80 100644 --- a/libavformat/r3d.c +++ b/libavformat/r3d.c @@ -288,7 +288,7 @@ static int r3d_read_reda(AVFormatContext *s, AVPacket *pkt, Atom *atom) tmp = avio_rb32(s->pb); av_dlog(s, "packet num %d\n", tmp); - tmp = avio_rb16(s->pb); // unkown + tmp = avio_rb16(s->pb); // unknown av_dlog(s, "unknown %d\n", tmp); tmp = avio_r8(s->pb); // major version diff --git a/tools/lavfi-showfiltfmts.c b/tools/lavfi-showfiltfmts.c index a75a3cb49b..d25cf3e138 100644 --- a/tools/lavfi-showfiltfmts.c +++ b/tools/lavfi-showfiltfmts.c @@ -50,7 +50,7 @@ int main(int argc, char **argv) } if (avfilter_open(&filter_ctx, filter, NULL) < 0) { - fprintf(stderr, "Inpossible to open filter with name '%s'\n", + fprintf(stderr, "Impossible to open filter with name '%s'\n", filter_name); return 1; } diff --git a/tools/patcheck b/tools/patcheck index 94e1232e30..b3943c5d7c 100755 --- a/tools/patcheck +++ b/tools/patcheck @@ -67,7 +67,7 @@ $EGREP $OPT '^\+ *(const *|)static' $*| $EGREP --color=always '[^=]= *(0|NULL)[^ cat $TMP hiegrep '# *ifdef * (HAVE|CONFIG)_' 'ifdefs that should be #if' $* -hiegrep '\b(awnser|cant|dont|wont|usefull|successfull|occured|teh|alot|wether|skiped|heigth|informations|colums|loosy|loosing|seperate|preceed|upto|paket|posible)\b' 'common typos' $* +hiegrep '\b(awnser|cant|dont|wont|usefull|successfull|occured|teh|alot|wether|skiped|heigth|informations|colums|loosy|loosing|seperate|preceed|upto|paket|posible|unkown|inpossible|dimention)\b' 'common typos' $* hiegrep 'av_log\( *NULL' 'Missing context in av_log' $* hiegrep '[^sn]printf' 'Please use av_log' $*