mstorsjo | 1 Dec 2010 09:57
Picon

r25858 - trunk/libavcodec/adpcm.c

Author: mstorsjo
Date: Wed Dec  1 09:57:45 2010
New Revision: 25858

Log:
adpcm: Skip samples whose ssd calculation has wrapped around

Wraparound in ssd is mainly avoided by subtracting the ssd of the
best node from all the others once it has grown large enough.

If using very large trellis sizes (e.g. -trellis 15), the frontier
is so large that the difference between the best and the worst is
large enough to cause wraparound, even if the ssd of the best one
is subtracted regularly.

When using -trellis 10 on a 30 second sample, this causes only a slight
slowdown, from 61 to 64 seconds.

Modified:
   trunk/libavcodec/adpcm.c

Modified: trunk/libavcodec/adpcm.c
==============================================================================
--- trunk/libavcodec/adpcm.c	Tue Nov 30 22:41:26 2010	(r25857)
+++ trunk/libavcodec/adpcm.c	Wed Dec  1 09:57:45 2010	(r25858)
 <at>  <at>  -382,6 +382,12  <at>  <at>  static void adpcm_compress_trellis(AVCod
                     dec_sample = av_clip_int16(dec_sample);\
                     d = sample - dec_sample;\
                     ssd = nodes[j]->ssd + d*d;\
+                    /* Check for wraparound, skip such samples completely. \
(Continue reading)

cehoyos | 1 Dec 2010 14:12
Picon

r25859 - trunk/libavcodec/x86/deinterlace.asm

Author: cehoyos
Date: Wed Dec  1 14:12:39 2010
New Revision: 25859

Log:
Use SECTION .text for yasm code.

Patch by avcoder, ffmpeg gmail

Modified:
   trunk/libavcodec/x86/deinterlace.asm

Modified: trunk/libavcodec/x86/deinterlace.asm
==============================================================================
--- trunk/libavcodec/x86/deinterlace.asm	Wed Dec  1 09:57:45 2010	(r25858)
+++ trunk/libavcodec/x86/deinterlace.asm	Wed Dec  1 14:12:39 2010	(r25859)
 <at>  <at>  -27,6 +27,8  <at>  <at>  SECTION_RODATA

 cextern pw_4

+SECTION .text
+
 %macro DEINTERLACE 1
 %ifidn %1, inplace
 ;void ff_deinterlace_line_inplace_mmx(const uint8_t *lum_m4, const uint8_t *lum_m3, const uint8_t
*lum_m2, const uint8_t *lum_m1, const uint8_t *lum,  int size)
elenril | 2 Dec 2010 10:56
Picon

r25860 - trunk/libavformat/mpc.c

Author: elenril
Date: Thu Dec  2 10:56:15 2010
New Revision: 25860

Log:
mpc: read id3v1 tags.

Modified:
   trunk/libavformat/mpc.c

Modified: trunk/libavformat/mpc.c
==============================================================================
--- trunk/libavformat/mpc.c	Wed Dec  1 14:12:39 2010	(r25859)
+++ trunk/libavformat/mpc.c	Thu Dec  2 10:56:15 2010	(r25860)
 <at>  <at>  -22,6 +22,7  <at>  <at> 
 #include "libavcodec/get_bits.h"
 #include "avformat.h"
 #include "apetag.h"
+#include "id3v1.h"

 #define MPC_FRAMESIZE  1152
 #define DELAY_FRAMES   32
 <at>  <at>  -95,6 +96,8  <at>  <at>  static int mpc_read_header(AVFormatConte
     if (!url_is_streamed(s->pb)) {
         int64_t pos = url_ftell(s->pb);
         ff_ape_parse_tag(s);
+        if (!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX))
+            ff_id3v1_read(s);
         url_fseek(s->pb, pos, SEEK_SET);
     }
(Continue reading)

stefano | 2 Dec 2010 20:49

r25861 - trunk/libavcore/imgutils.c

Author: stefano
Date: Thu Dec  2 20:49:55 2010
New Revision: 25861

Log:
Add missing overflow checks in av_image_fill_pointers() and
av_image_fill_linesizes().

Modified:
   trunk/libavcore/imgutils.c

Modified: trunk/libavcore/imgutils.c
==============================================================================
--- trunk/libavcore/imgutils.c	Thu Dec  2 10:56:15 2010	(r25860)
+++ trunk/libavcore/imgutils.c	Thu Dec  2 20:49:55 2010	(r25861)
 <at>  <at>  -71,6 +71,8  <at>  <at>  int av_image_fill_linesizes(int linesize
         return AVERROR(EINVAL);

     if (desc->flags & PIX_FMT_BITSTREAM) {
+        if (width > (INT_MAX -7) / (desc->comp[0].step_minus1+1))
+            return AVERROR(EINVAL);
         linesizes[0] = (width * (desc->comp[0].step_minus1+1) + 7) >> 3;
         return 0;
     }
 <at>  <at>  -78,7 +80,10  <at>  <at>  int av_image_fill_linesizes(int linesize
     av_image_fill_max_pixsteps(max_step, max_step_comp, desc);
     for (i = 0; i < 4; i++) {
         int s = (max_step_comp[i] == 1 || max_step_comp[i] == 2) ? desc->log2_chroma_w : 0;
-        linesizes[i] = max_step[i] * (((width + (1 << s) - 1)) >> s);
+        int shifted_w = ((width + (1 << s) - 1)) >> s;
(Continue reading)

stefano | 2 Dec 2010 21:12
Picon

r25862 - in trunk: doc/APIchanges ffmpeg.c ffplay.c libavfilter/avfilter.h libavfilter/avfiltergraph.c libavfilter/avfiltergraph.h

Author: stefano
Date: Thu Dec  2 21:12:27 2010
New Revision: 25862

Log:
Add avfilter_graph_create_filter().

Modified:
   trunk/doc/APIchanges
   trunk/ffmpeg.c
   trunk/ffplay.c
   trunk/libavfilter/avfilter.h
   trunk/libavfilter/avfiltergraph.c
   trunk/libavfilter/avfiltergraph.h

Modified: trunk/doc/APIchanges
==============================================================================
--- trunk/doc/APIchanges	Thu Dec  2 20:49:55 2010	(r25861)
+++ trunk/doc/APIchanges	Thu Dec  2 21:12:27 2010	(r25862)
 <at>  <at>  -12,6 +12,9  <at>  <at>  libavutil:   2009-03-08

 
 API changes, most recent first:
+2010-12-02 - r25862 - lavfi 1.67.0 - avfilter_graph_create_filter()
+  Add function avfilter_graph_create_filter() in avfiltergraph.h.
+
 2010-11-25 - r25826 - lavfi 1.65.0 - avfilter_get_video_buffer_ref_from_arrays()
   Add function avfilter_get_video_buffer_ref_from_arrays() in
   avfilter.h.

(Continue reading)

stefang | 3 Dec 2010 08:49
Picon

r25863 - trunk/libavformat/asfdec.c

Author: stefang
Date: Fri Dec  3 08:49:07 2010
New Revision: 25863

Log:
skip top-level objects to search for the simple index in ASF files

Modified:
   trunk/libavformat/asfdec.c

Modified: trunk/libavformat/asfdec.c
==============================================================================
--- trunk/libavformat/asfdec.c	Thu Dec  2 21:12:27 2010	(r25862)
+++ trunk/libavformat/asfdec.c	Fri Dec  3 08:49:07 2010	(r25863)
 <at>  <at>  -1138,7 +1138,20  <at>  <at>  static void asf_build_simple_index(AVFor

     url_fseek(s->pb, asf->data_object_offset + asf->data_object_size, SEEK_SET);
     get_guid(s->pb, &g);
-    if (!guidcmp(&g, &index_guid)) {
+
+    /* the data object can be followed by other top-level objects,
+       skip them until the simple index object is reached */
+    while (guidcmp(&g, &index_guid)) {
+        int64_t gsize= get_le64(s->pb);
+        if (gsize < 24 || url_feof(s->pb)) {
+            url_fseek(s->pb, current_pos, SEEK_SET);
+            return;
+        }
+        url_fseek(s->pb, gsize-24, SEEK_CUR);
+        get_guid(s->pb, &g);
(Continue reading)

thardin | 3 Dec 2010 14:26
Picon

r25864 - trunk/libavformat/mpegtsenc.c

Author: thardin
Date: Fri Dec  3 14:26:42 2010
New Revision: 25864

Log:
mpegtsenc: Improve PCR generation and output
This fixes PCR drift due to accumulating TS_PACKET_SIZE*8*90000LL/ts->mux_rate each packet, due to
rounding errors when mux_rate does not evenly divide 135360000.
This patch also increases the PCR precision to 27 MHz from 90 kHz and takes the location of the PCR data into
account (+11 bytes according to the spec).

Modified:
   trunk/libavformat/mpegtsenc.c

Modified: trunk/libavformat/mpegtsenc.c
==============================================================================
--- trunk/libavformat/mpegtsenc.c	Fri Dec  3 08:49:07 2010	(r25863)
+++ trunk/libavformat/mpegtsenc.c	Fri Dec  3 14:26:42 2010	(r25864)
 <at>  <at>  -27,6 +27,8  <at>  <at> 
 #include "mpegts.h"
 #include "adts.h"

+#define PCR_TIME_BASE 27000000
+
 /* write DVB SI sections */

 /*********************************************/
 <at>  <at>  -60,7 +62,7  <at>  <at>  typedef struct MpegTSWrite {
     int nb_services;
     int onid;
(Continue reading)

mstorsjo | 3 Dec 2010 22:17
Picon

r25865 - trunk/MAINTAINERS

Author: mstorsjo
Date: Fri Dec  3 22:17:23 2010
New Revision: 25865

Log:
Add myself as maintainer for g722.c

Modified:
   trunk/MAINTAINERS

Modified: trunk/MAINTAINERS
==============================================================================
--- trunk/MAINTAINERS	Fri Dec  3 14:26:42 2010	(r25864)
+++ trunk/MAINTAINERS	Fri Dec  3 22:17:23 2010	(r25865)
 <at>  <at>  -136,6 +136,7  <at>  <at>  Codecs:
   flac*                                 Justin Ruggles
   flashsv*                              Benjamin Larsson
   flicvideo.c                           Mike Melanson
+  g722.c                                Martin Storsjo
   g726.c                                Roman Shaposhnik
   gifdec.c                              Baptiste Coudurier
   h264*                                 Loren Merritt, Michael Niedermayer
mstorsjo | 3 Dec 2010 22:18
Picon

r25866 - trunk/libavcodec/g722.c

Author: mstorsjo
Date: Fri Dec  3 22:18:45 2010
New Revision: 25866

Log:
g722: Add a trellis encoder

The structure is largely based on the trellis encoder in adpcm.c.

Modified:
   trunk/libavcodec/g722.c

Modified: trunk/libavcodec/g722.c
==============================================================================
--- trunk/libavcodec/g722.c	Fri Dec  3 22:17:23 2010	(r25865)
+++ trunk/libavcodec/g722.c	Fri Dec  3 22:18:45 2010	(r25866)
 <at>  <at>  -43,6 +43,8  <at>  <at> 

 #define PREV_SAMPLES_BUF_SIZE 1024

+#define FREEZE_INTERVAL 128
+
 typedef struct {
     int16_t prev_samples[PREV_SAMPLES_BUF_SIZE]; ///< memory of past decoded samples
     int     prev_samples_pos;        ///< the number of values in prev_samples
 <at>  <at>  -61,6 +63,17  <at>  <at>  typedef struct {
         int16_t log_factor;          ///< delayed 2-logarithmic quantizer factor
         int16_t scale_factor;        ///< delayed quantizer scale factor
     } band[2];
+
(Continue reading)

aurel | 4 Dec 2010 01:23
Picon

r25867 - trunk/MAINTAINERS

Author: aurel
Date: Sat Dec  4 01:23:08 2010
New Revision: 25867

Log:
add myself as maintainer for ASS and SRT

Modified:
   trunk/MAINTAINERS

Modified: trunk/MAINTAINERS
==============================================================================
--- trunk/MAINTAINERS	Fri Dec  3 22:18:45 2010	(r25866)
+++ trunk/MAINTAINERS	Sat Dec  4 01:23:08 2010	(r25867)
 <at>  <at>  -114,6 +114,7  <at>  <at>  Codecs:
   alacenc.c                             Jaikrishnan Menon
   alsdec.c                              Thilo Borgmann
   apedec.c                              Kostya Shishkov
+  ass*                                  Aurelien Jacobs
   asv*                                  Michael Niedermayer
   atrac3*                               Benjamin Larsson
   bgmc.c, bgmc.h                        Thilo Borgmann
 <at>  <at>  -261,6 +262,7  <at>  <at>  Muxers/Demuxers:
   adtsenc.c                             Robert Swain
   aiff.c                                Baptiste Coudurier
   ape.c                                 Kostya Shishkov
+  ass*                                  Aurelien Jacobs
   avi*                                  Michael Niedermayer
   bink.c                                Peter Ross
   caf*                                  Peter Ross
(Continue reading)


Gmane