Tudor SUCIU | 10 Feb 13:32
Picon

[PATCH] Allow multi-pass encoding with libx264 for multi-video output files

After this patch a 2-pass encoding is possible.

/usr/local/bin/ffmpeg -i test.mov -map 0:0 -map 0:0 -map 0:1 -acodec
libfaac -ab 128000 -ac 2 -ar 48000 -vcodec libx264 -vcodec libx264
-pass 1 -b:v:0 300k -b:v:1 900k -stats:v:1 video2 -stats:v:0 video1 -t
10 -y x.ts
/usr/local/bin/ffmpeg -i test.mov -map 0:0 -map 0:0 -map 0:1 -acodec
libfaac -ab 128000 -ac 2 -ar 48000 -vcodec libx264 -vcodec libx264
-pass 2 -b:v:0 300k -b:v:1 900k -stats:v:1 video2 -stats:v:0 video1 -t
10 -y x.ts

The initial bug in ffmpeg is that -passlogfile is a global option, hot
a per stream as needed here.
It would be helpful if someone can point me the way for a permanent solution.
From 8671583f416a2e5abd04daecb79a8f62d189db06 Mon Sep 17 00:00:00 2001
From: Tudor Suciu <tudor.suciu <at> gmail.com>
Date: Fri, 10 Feb 2012 13:18:43 +0100
Subject: [PATCH 2/2] libx264 multiple pass for multi-video

---
 ffmpeg.c             |    2 +-
 libavcodec/libx264.c |    3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index a794dd3..cb5caa8 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
(Continue reading)

George | 9 Feb 22:23
Gravatar

Develop Reader for National Instruments: TDMS format

Dear Sirs;
I could not find any development for a reader of the National Instruments TDMS format.

I could really use FFmpeg to read these files, which are streamin type audio/data, as I would then import
them into Audacity, etc.

I'm only a small guy, but willing to pay something for this.  TDMS format documentation is Attached.

Anyone interested?

Kind Regards,

George Grinestaff
Katy, Tx
713-459-4348

NI TDMS Format

http://zone.ni.com/devzone/cda/tut/p/id/5696 <http://zone.ni.com/devzone/cda/tut/p/id/5696> 

Attachment (NI-Tutorial-5696.pdf): application/pdf, 96 KiB
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel <at> ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Aneesh Dogra | 10 Feb 07:08
Picon

[PATCH] sunrast: Remove the useless check.

in , else (1) { if (!1) } the if conditional will never evaluate to be true.
So as making the check useless.
---
 libavcodec/sunrast.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/libavcodec/sunrast.c b/libavcodec/sunrast.c
index aa12947..8562e11 100644
--- a/libavcodec/sunrast.c
+++ b/libavcodec/sunrast.c
@@ -153,10 +153,6 @@ static int sunrast_decode_frame(AVCodecContext *avctx, void *data,
     } else if (maplength) {
         unsigned int len = maplength / 3;

-        if (!maplength) {
-            av_log(avctx, AV_LOG_ERROR, "colormap expected\n");
-            return -1;
-        }
         if (maplength % 3 || maplength > 768) {
             av_log(avctx, AV_LOG_WARNING, "invalid colormap length\n");
             return -1;
--

-- 
1.7.1
Michael Niedermayer | 10 Feb 02:44
Picon
Picon

[PATCH] lavf: Rewrite metadata printing from dump_metadata().

This code contained several bugs that mis-formated the output.

Signed-off-by: Michael Niedermayer <michaelni <at> gmx.at>
---
 libavformat/utils.c |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 71baf58..4989437 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3483,11 +3483,19 @@ static void dump_metadata(void *ctx, AVDictionary *m, const char *indent)
         av_log(ctx, AV_LOG_INFO, "%sMetadata:\n", indent);
         while((tag=av_dict_get(m, "", tag, AV_DICT_IGNORE_SUFFIX))) {
             if(strcmp("language", tag->key)){
-                char tmp[256];
-                int i;
-                av_strlcpy(tmp, tag->value, sizeof(tmp));
-                for(i=0; i<strlen(tmp); i++) if(tmp[i]==0xd) tmp[i]=' ';
-                av_log(ctx, AV_LOG_INFO, "%s  %-16s: %s\n", indent, tag->key, tmp);
+                const char *p = tag->value;
+                av_log(ctx, AV_LOG_INFO, "%s  %-16s: ", indent, tag->key);
+                while(*p) {
+                    char tmp[256];
+                    size_t len = strcspn(p, "\xd\xa");
+                    av_strlcpy(tmp, p, FFMIN(sizeof(tmp), len+1));
+                    av_log(ctx, AV_LOG_INFO, "%s", tmp);
+                    p += len;
+                    if (*p == 0xd) av_log(ctx, AV_LOG_INFO, " ");
+                    if (*p == 0xa) av_log(ctx, AV_LOG_INFO, "\n%s  %-16s: ", indent, "");
(Continue reading)

Pavel Koshevoy | 10 Feb 01:45
Picon

what to do when a patch breaks regression test

Hi,

I am trying to solve an issue JW Player is having with TS fragments 
produced by httpsegmenter -- 
http://code.google.com/p/httpsegmenter/source/browse/trunk/segmenter.c

Essentially, JW Player can't handle fragments that do not start with a 
PAT/PMT packet.  Currently TS muxer outputs PAT/PMT periodically every 
40 packets.  What I did was to force it to output PAT/PMT on every video 
keyframe as well.  I think this change is justified because of this 
comment in mpegtsenc.c --  /* Arbitrary values, PAT/PMT could be written 
on key frames */.

Of course this breaks the TS muxer regression test:

TEST    lavf-swf
TEST    lavf-tga
TEST    lavf-tiff
TEST    lavf-ts
--- /Users/pkoshevoy/src/ffmpeg/tests/ref/lavf/ts       2012-02-09 
13:39:47.000000000 -0700
+++ tests/data/fate/lavf-ts     2012-02-09 17:29:41.000000000 -0700
@@ -1,3 +1,3 @@
-8f61dad7652abbab9e49fca274dabf30 *./tests/data/lavf/lavf.ts
+34f95a300355d474767b436430eba15b *./tests/data/lavf/lavf.ts
  406644 ./tests/data/lavf/lavf.ts
  ./tests/data/lavf/lavf.ts CRC=0x133216c1
Test lavf-ts failed. Look at tests/data/fate/lavf-ts.err for details.
make: *** [fate-lavf-ts] Error 1

(Continue reading)

Stefano Sabatini | 10 Feb 00:07
Picon

[PATCH] lavfi/ashowinfo: only print checksum for the existing planes

Make the output a bit nicer.
---
 libavfilter/af_ashowinfo.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c
index e4dc6b3..12d0315 100644
--- a/libavfilter/af_ashowinfo.c
+++ b/libavfilter/af_ashowinfo.c
@@ -66,7 +66,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
     av_log(ctx, AV_LOG_INFO,
            "n:%d pts:%s pts_time:%s pos:%"PRId64" "
            "fmt:%s chlayout:%s nb_samples:%d rate:%d planar:%d "
-           "checksum:%08X plane_checksum[%08X %08X %08X %08X %08X %08X %08X %08X]\n",
+           "checksum:%08X plane_checksum[%08X",
            showinfo->frame,
            av_ts2str(samplesref->pts), av_ts2timestr(samplesref->pts, &inlink->time_base),
            samplesref->pos,
@@ -76,11 +76,13 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
            samplesref->audio->sample_rate,
            samplesref->audio->planar,
            checksum,
-           plane_checksum[0], plane_checksum[1], plane_checksum[2], plane_checksum[3],
-           plane_checksum[4], plane_checksum[5], plane_checksum[6], plane_checksum[7]);
+           plane_checksum[0]);

-    showinfo->frame++;
+    for (plane = 1; samplesref->data[plane] && plane < 8; plane++)
+        av_log(ctx, AV_LOG_INFO, " %08X", plane_checksum[plane]);
+    av_log(ctx, AV_LOG_INFO, "]\n");
(Continue reading)

Stefano Sabatini | 10 Feb 00:06
Picon

[PATCH] lavfi/showinfo: only print checksum for the existing planes

Make the output a bit nicer.
---
 libavfilter/vf_showinfo.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
index 92f10fa..657e6e6 100644
--- a/libavfilter/vf_showinfo.c
+++ b/libavfilter/vf_showinfo.c
@@ -62,7 +62,7 @@ static void end_frame(AVFilterLink *inlink)
     av_log(ctx, AV_LOG_INFO,
            "n:%d pts:%s pts_time:%s pos:%"PRId64" "
            "fmt:%s sar:%d/%d s:%dx%d i:%c iskey:%d type:%c "
-           "checksum:%08X plane_checksum:[%08X %08X %08X %08X]\n",
+           "checksum:%08X plane_checksum:[%08X",
            showinfo->frame,
            av_ts2str(picref->pts), av_ts2timestr(picref->pts, &inlink->time_base), picref->pos,
            av_pix_fmt_descriptors[picref->format].name,
@@ -72,7 +72,11 @@ static void end_frame(AVFilterLink *inlink)
            picref->video->top_field_first ? 'T' : 'B',    /* Top / Bottom */
            picref->video->key_frame,
            av_get_picture_type_char(picref->video->pict_type),
-           checksum, plane_checksum[0], plane_checksum[1], plane_checksum[2], plane_checksum[3]);
+           checksum, plane_checksum[0]);
+
+    for (plane = 1; picref->data[plane] && plane < 4; plane++)
+        av_log(ctx, AV_LOG_INFO, " %08X", plane_checksum[plane]);
+    av_log(ctx, AV_LOG_INFO, "]\n");

     showinfo->frame++;
(Continue reading)

Stefano Sabatini | 10 Feb 00:06
Picon

[PATCH] lavfi/*showinfo: use av_ts2* macros in showinfo and ashowinfo

---
 libavfilter/af_ashowinfo.c |    5 +++--
 libavfilter/vf_showinfo.c  |    5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c
index deb4eb9..e4dc6b3 100644
--- a/libavfilter/af_ashowinfo.c
+++ b/libavfilter/af_ashowinfo.c
@@ -25,6 +25,7 @@

 #include "libavutil/adler32.h"
 #include "libavutil/audioconvert.h"
+#include "libavutil/timestamp.h"
 #include "avfilter.h"

 typedef struct {
@@ -63,11 +64,11 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
                                  samplesref->audio->channel_layout);

     av_log(ctx, AV_LOG_INFO,
-           "n:%d pts:%"PRId64" pts_time:%f pos:%"PRId64" "
+           "n:%d pts:%s pts_time:%s pos:%"PRId64" "
            "fmt:%s chlayout:%s nb_samples:%d rate:%d planar:%d "
            "checksum:%08X plane_checksum[%08X %08X %08X %08X %08X %08X %08X %08X]\n",
            showinfo->frame,
-           samplesref->pts, samplesref->pts * av_q2d(inlink->time_base),
+           av_ts2str(samplesref->pts), av_ts2timestr(samplesref->pts, &inlink->time_base),
            samplesref->pos,
            av_get_sample_fmt_name(samplesref->format),
(Continue reading)

Carl Eugen Hoyos | 9 Feb 22:51
Picon

[PATCH]Support 64bit rawvideo

Hi!

Attached is an updated patch to save 64bit rawvideo.

Please comment, Carl Eugen
diff --git a/libavcodec/raw.c b/libavcodec/raw.c
index 5d7104c..763c6db 100644
--- a/libavcodec/raw.c
+++ b/libavcodec/raw.c
@@ -82,6 +82,10 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
     { PIX_FMT_BGR444LE, MKTAG('B', 'G', 'R', 12) },
     { PIX_FMT_RGB444BE, MKTAG(12 , 'B', 'G', 'R') },
     { PIX_FMT_BGR444BE, MKTAG(12 , 'R', 'G', 'B') },
+    { PIX_FMT_RGBA64LE, MKTAG('R', 'B', 'A', 64 ) },
+    { PIX_FMT_BGRA64LE, MKTAG('B', 'R', 'A', 64 ) },
+    { PIX_FMT_RGBA64BE, MKTAG(64 , 'R', 'B', 'A') },
+    { PIX_FMT_BGRA64BE, MKTAG(64 , 'B', 'R', 'A') },
     { PIX_FMT_RGBA,     MKTAG('R', 'G', 'B', 'A') },
     { PIX_FMT_RGB0,     MKTAG('R', 'G', 'B', '0') },
     { PIX_FMT_BGRA,     MKTAG('B', 'G', 'R', 'A') },
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel <at> ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Carl Eugen Hoyos | 9 Feb 22:27
Picon

[nut]Add RGB0 and RGBA64BE

Hi!

Adds missing pix_fmts to nut4cc.txt.

Please review, Carl Eugen
Index: docs/nut4cc.txt
===================================================================
--- docs/nut4cc.txt	(revision 675)
+++ docs/nut4cc.txt	(working copy)
@@ -94,6 +94,10 @@
 BGRA    Packed RGBA 8:8:8:8, 32bpp, BGRA [NOT in AVI]
 ABGR    Packed RGBA 8:8:8:8, 32bpp, ABGR [NOT in AVI]
 ARGB    Packed RGBA 8:8:8:8, 32bpp, ARGB [NOT in AVI]
+RGB[0]  Packed RGB 8:8:8, 32bpp, RGBx, 4th byte ignored [NOT in AVI]
+BGR[0]  Packed RGB 8:8:8, 32bpp, BGRx, 4th byte ignored [NOT in AVI]
+[0]BGR  Packed RGB 8:8:8, 32bpp, xBGR, 1st byte ignored [NOT in AVI]
+[0]RGB  Packed RGB 8:8:8, 32bpp, xRGB, 1st byte ignored [NOT in AVI]
 RGB[24] Packed RGB 8:8:8, 24bpp RGB [NOT in AVI]
 BGR[24] Packed RGB 8:8:8, 24bpp BGR [NOT in AVI]
 BGR[48] Packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as
little-endian [NOT in AVI]
@@ -112,6 +116,10 @@
 ARB[64] Packed ARGB 16:16:16:16, 64bpp, 16A, 16R, 16G, 16B, the 2-byte value for each R/G/B component is
stored as little-endian [NOT in AVI]
 BRA[64] Packed BGRA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B component is
stored as little-endian [NOT in AVI]
 ABR[64] Packed ABGR 16:16:16:16, 64bpp, 16A, 16B, 16G, 16R, the 2-byte value for each R/G/B component is
stored as little-endian [NOT in AVI]
(Continue reading)

robert hawkin | 9 Feb 10:52
Picon
Gravatar

configure does not detect correct version of zlib


hi. 
I have succesfully compiled ffmpeg-0.10 on a very old machine (kids bedroom for converting videos) 
initially compilation failed whilst linking  flashsv.o which needs deflateBound. the machine had zlib
1.1.1, and deflateBound was introduced in zlib 1.2.0
 updating zlib to 1.2.3 (which I had on the machine somewhere) sorted it.
it's a bit picky, but "configure" is supposed to know these things.

keep up the good work,

Robert.

 		 	   		  

Gmane