[FFmpeg-devel] [PATCH] matroskadec: execute seekheads recursively

2014-10-17 Thread Rodger Combs
This fixes https://trac.ffmpeg.org/ticket/3934 
https://trac.ffmpeg.org/ticket/3934, but I'm not sure if there was a good 
reason for this to be here to begin with. Perhaps a protection against infinite 
recursion (though I believe EBML_MAX_DEPTH serves that purpose to some degree)?
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] matroskadec: execute seekheads recursively

2014-10-17 Thread Rodger Combs

 On Oct 17, 2014, at 01:16, Rodger Combs rodger.co...@gmail.com wrote:
 
 This fixes https://trac.ffmpeg.org/ticket/3934 
 https://trac.ffmpeg.org/ticket/3934, but I'm not sure if there was a good 
 reason for this to be here to begin with. Perhaps a protection against 
 infinite recursion (though I believe EBML_MAX_DEPTH serves that purpose to 
 some degree)?
 0001-matroskadec-execute-seekheads-recursively.patch

Evidently either I or my mail client screwed up and the patch didn't get 
attached. Whoops.

Let's try that again...
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] matroskadec: execute seekheads recursively

2014-10-17 Thread Rodger Combs

 On Oct 17, 2014, at 01:52, Rodger Combs rodger.co...@gmail.com wrote:
 
 
 On Oct 17, 2014, at 01:16, Rodger Combs rodger.co...@gmail.com 
 mailto:rodger.co...@gmail.com wrote:
 
 This fixes https://trac.ffmpeg.org/ticket/3934 
 https://trac.ffmpeg.org/ticket/3934, but I'm not sure if there was a good 
 reason for this to be here to begin with. Perhaps a protection against 
 infinite recursion (though I believe EBML_MAX_DEPTH serves that purpose to 
 some degree)?
 0001-matroskadec-execute-seekheads-recursively.patch
 
 Evidently either I or my mail client screwed up and the patch didn't get 
 attached. Whoops.
 0001-matroskadec-execute-seekheads-recursively.patch
 Let's try that again...

Welp, apparently my email client's borked badly in some way. Here's a gist link 
instead: https://gist.github.com/08f111e72b8b5ddba078

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] PATCH: Make -copyts a tri-state

2014-10-17 Thread Rodger Combs

 On Oct 15, 2014, at 06:00, Rodger Combs rodger.co...@gmail.com wrote:
 
 
 On Oct 15, 2014, at 05:37, Nicolas George geo...@nsup.org wrote:
 
 Le quartidi 24 vendémiaire, an CCXXIII, Rodger Combs a écrit :
 Discussed this briefly on IRC; decided this was a good idea. I'm not sure
 if the commit message explains it well enough; please poke me here or on
 IRC if it doesn't.
 
 From 617b532c8a403c1cf06e60c99e9f36c787553b43 Mon Sep 17 00:00:00 2001
 From: Rodger Combs rodger.co...@gmail.com
 Date: Wed, 15 Oct 2014 05:00:02 -0500
 Subject: [PATCH] Make copyts a tri-state, with `no` normalizing input
 timestamps.
 
 This doesn't change the default or `-copyts` behavior, but allows
 `-nocopyts` to make e.g. `-ss 50` have timestamps starting at 50 seconds,
 even if the input file's timestamps start at a value other than zero.
 ---
 ffmpeg.c | 6 +++---
 ffmpeg_opt.c | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
 
 It looks like you forgot to update the documentation too.
 
 Regards,
 
 -- 
 Nicolas George
 ___
 ffmpeg-devel mailing list
 ffmpeg-devel@ffmpeg.org
 http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 
 Indeed I did. Here you go:
 0001-Make-copyts-a-tri-state-with-no-normalizing-input-ti.patch
 
 It occurs to me that it might be more useful in some cases to have one master 
 input file (the first one?) be shifted so its timestamps start at zero, and 
 the rest be shifted by the same amount as the master. That might be a good 
 argument for making this its own option, instead of making copyts a tri-state.
 
 I'm not particularly attached to the naming or implementation here, so 
 suggestions are plenty welcome :)
 
 
Upon some further testing, this seems to create some unusual and undesired 
behavior in some cases, and I'm not sure exactly why. The patch is definitely 
not ready, but I'd appreciate it if anyone could help work out a better design 
for the feature.

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avformat/id3v2: support buggy id3v2.3 tag length in id3v2.4

2014-10-17 Thread Benoit Fouet
Some encoders do not use syncsafe sizes in v2.4 id3 tags. Check the next
tag to try to choose between the two.

Fixes ticket #4003
---
 libavformat/id3v2.c | 64 +++--
 1 file changed, 62 insertions(+), 2 deletions(-)

diff --git a/libavformat/id3v2.c b/libavformat/id3v2.c
index 44df4ff..3e54620 100644
--- a/libavformat/id3v2.c
+++ b/libavformat/id3v2.c
@@ -170,6 +170,48 @@ static unsigned int get_size(AVIOContext *s, int len)
 return v;
 }
 
+static unsigned int size_to_syncsafe(unsigned int size)
+{
+return (((size)  (0x7f   0))  0) +
+   (((size)  (0x7f   8))  1) +
+   (((size)  (0x7f  16))  2) +
+   (((size)  (0x7f  24))  3);
+}
+
+/* No real verification, only check that the tag consists of
+ * a combination of capital alpha-numerical characters */
+static int is_tag(const char *buf, unsigned int len)
+{
+if (!len)
+return 0;
+
+while (len--)
+if ((buf[len]  'A' ||
+ buf[len]  'Z') 
+(buf[len]  '0' ||
+ buf[len]  '9'))
+return 0;
+
+return 1;
+}
+
+/**
+ * Return 1 if the tag of length len at the given offset is valid, 0 if not, 
-1 on error
+ */
+static int check_tag(AVIOContext *s, int offset, unsigned int len)
+{
+char tag[4];
+
+if (len  4 ||
+avio_seek(s, offset, SEEK_SET)  0 ||
+avio_read(s, tag, len)  len)
+return -1;
+else if (!AV_RB32(tag) || is_tag(tag, len))
+return 1;
+
+return 0;
+}
+
 /**
  * Free GEOB type extra metadata.
  */
@@ -734,8 +776,26 @@ static void id3v2_parse(AVIOContext *pb, AVDictionary 
**metadata,
 tag[4] = 0;
 if (version == 3) {
 tlen = avio_rb32(pb);
-} else
-tlen = get_size(pb, 4);
+} else {
+/* some encoders incorrectly uses v3 sizes instead of syncsafe 
ones
+ * so check the next tag to see which one to use */
+tlen = avio_rb32(pb);
+if (tlen  0x7f) {
+if (tlen  len) {
+int64_t cur = avio_tell(pb);
+
+if (ffio_ensure_seekback(pb, 2 /* tflags */ + tlen + 4 
/* next tag */))
+break;
+
+if (check_tag(pb, cur + 2 + size_to_syncsafe(tlen), 4) 
== 1)
+tlen = size_to_syncsafe(tlen);
+else if (check_tag(pb, cur + 2 + tlen, 4) != 1)
+break;
+avio_seek(pb, cur, SEEK_SET);
+} else
+tlen = size_to_syncsafe(tlen);
+}
+}
 tflags  = avio_rb16(pb);
 tunsync = tflags  ID3v2_FLAG_UNSYNCH;
 } else {
-- 
2.1.2.443.g670a3c1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avcodec/aacdec: map LFE[0] to SCE[1] for 4.0 audio.

2014-10-17 Thread Benoit Fouet
Hi,

- Mail original -
 On Mon, Oct 13, 2014 at 02:42:55PM +0200, Benoit Fouet wrote:
  Fixes ticket #3930
  ---
   libavcodec/aacdec.c | 10 ++
   1 file changed, 10 insertions(+)
 
 applied
 
 maybe these special case mappings should print some warning or
 some debug information, could help if they are ever wrong
 

See attached patch.

-- 
Ben
From bf370c0c2ec49881d7a2de1fd74e7bd5b2b2e12d Mon Sep 17 00:00:00 2001
From: Benoit Fouet benoit.fo...@free.fr
Date: Fri, 17 Oct 2014 11:44:55 +0200
Subject: [PATCH] avcodec/aacdec: warn user when remapping streams.

---
 libavcodec/aacdec.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
index ed12e7d..83cb384 100644
--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -621,6 +621,10 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id)
  * If we seem to have encountered such a stream, transfer
  * the LFE[0] element to the SCE[1]'s mapping */
 if (ac-tags_mapped == tags_per_config[ac-oc[1].m4ac.chan_config] - 1  (type == TYPE_LFE || type == TYPE_SCE)) {
+if (type != TYPE_LFE || elem_id != 0)
+av_log(ac-avctx, AV_LOG_WARNING,
+   This stream seems to incorrectly report its last channel as %s[%d], mapping to LFE[0]\n,
+   type == TYPE_SCE ? SCE : LFE, elem_id);
 ac-tags_mapped++;
 return ac-tag_che_map[type][elem_id] = ac-che[TYPE_LFE][0];
 }
@@ -637,6 +641,10 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id)
  * If we seem to have encountered such a stream, transfer
  * the SCE[1] element to the LFE[0]'s mapping */
 if (ac-tags_mapped == tags_per_config[ac-oc[1].m4ac.chan_config] - 1  (type == TYPE_LFE || type == TYPE_SCE)) {
+if (type != TYPE_SCE || elem_id != 1)
+av_log(ac-avctx, AV_LOG_WARNING,
+   This stream seems to incorrectly report its last channel as %s[%d], mapping to SCE[1]\n,
+   type == TYPE_SCE ? SCE : LFE, elem_id);
 ac-tags_mapped++;
 return ac-tag_che_map[type][elem_id] = ac-che[TYPE_SCE][1];
 }
-- 
2.1.2.443.g670a3c1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] gitignore: add test_copy.ffmeta

2014-10-17 Thread Benoit Fouet
---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index 480fbe0..793d33a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,6 +64,7 @@
 /tests/data/
 /tests/pixfmts.mak
 /tests/rotozoom
+/tests/test_copy.ffmeta
 /tests/tiny_psnr
 /tests/tiny_ssim
 /tests/videogen
-- 
2.1.2.443.g670a3c1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] matroskadec: execute seekheads recursively

2014-10-17 Thread wm4
On Fri, 17 Oct 2014 01:55:35 -0500
Rodger Combs rodger.co...@gmail.com wrote:

 
  On Oct 17, 2014, at 01:52, Rodger Combs rodger.co...@gmail.com wrote:
  
  
  On Oct 17, 2014, at 01:16, Rodger Combs rodger.co...@gmail.com 
  mailto:rodger.co...@gmail.com wrote:
  
  This fixes https://trac.ffmpeg.org/ticket/3934 
  https://trac.ffmpeg.org/ticket/3934, but I'm not sure if there was a 
  good reason for this to be here to begin with. Perhaps a protection 
  against infinite recursion (though I believe EBML_MAX_DEPTH serves that 
  purpose to some degree)?
  0001-matroskadec-execute-seekheads-recursively.patch
  
  Evidently either I or my mail client screwed up and the patch didn't get 
  attached. Whoops.
  0001-matroskadec-execute-seekheads-recursively.patch
  Let's try that again...
 
 Welp, apparently my email client's borked badly in some way. Here's a gist 
 link instead: https://gist.github.com/08f111e72b8b5ddba078
 

Yes, seekheads can reference other seekheads. IMO it should perhaps
keep a list of elements to read (and which have already been read),
which includes the seakhead. Since it'd be a list, it'd be safe against
recursion.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] lavf/mov.c: Allocate buffer in case of long metadata entries.

2014-10-17 Thread Thilo Borgmann
Am 16.10.14 04:47, schrieb Michael Niedermayer:
 On Mon, Oct 13, 2014 at 09:40:42AM +0200, Thilo Borgmann wrote:
 Am 11.10.14 16:19, schrieb Nicolas George:
 [...]

 all remarks applied.

 -Thilo

 
  mov.c |   16 
  1 file changed, 12 insertions(+), 4 deletions(-)
 cabb6e51de7f9329603561773f209b6a948478ce  
 0001-lavf-mov.c-Allocate-buffer-in-case-of-long-metadata-.patch
 From 5a14ef97ffc7d82dea5644c736e6dc2de2079e89 Mon Sep 17 00:00:00 2001
 From: Thilo Borgmann thilo.borgm...@mail.de
 Date: Mon, 13 Oct 2014 09:36:17 +0200
 Subject: [PATCH] lavf/mov.c: Allocate buffer in case of long metadata 
 entries.

 ---
  libavformat/mov.c | 16 
  1 file changed, 12 insertions(+), 4 deletions(-)

 diff --git a/libavformat/mov.c b/libavformat/mov.c
 index 4ff46dd..8d6d074 100644
 --- a/libavformat/mov.c
 +++ b/libavformat/mov.c
 @@ -261,7 +261,9 @@ static int mov_read_udta_string(MOVContext *c, 
 AVIOContext *pb, MOVAtom atom)
  #ifdef MOV_EXPORT_ALL_METADATA
  char tmp_key[5];
  #endif
 -char str[1024], key2[16], language[4] = {0};
 +char str_small[1024], key2[16], language[4] = {0};
 +char *str = str_small;
 +char *pstr = NULL;
  const char *key = NULL;
  uint16_t langcode = 0;
  uint32_t data_type = 0, str_size;
 @@ -358,13 +360,17 @@ static int mov_read_udta_string(MOVContext *c, 
 AVIOContext *pb, MOVAtom atom)
  if (atom.size  0)
  return AVERROR_INVALIDDATA;
  
 -str_size = FFMIN3(sizeof(str)-1, str_size, atom.size);
 -
  if (parse)
  parse(c, pb, str_size, key);
  else {
 +if (str_size  sizeof(str_small)-1) { // allocate buffer for long 
 data field
 +pstr = str = av_malloc(str_size);
 +if (!pstr)
 +return AVERROR(ENOMEM);
 +}
 +
  if (data_type == 3 || (data_type == 0  (langcode  0x400 || 
 langcode == 0x7fff))) { // MAC Encoded
 -mov_read_mac_string(c, pb, str_size, str, sizeof(str));
 +mov_read_mac_string(c, pb, str_size, str, str_size);
 
 this seems to store UTF8, which can require more space than str_size

New patch attached using a worst-case size of twice the input string size if
the input is in utf8.

Tested only with non utf8 by now - I would appreciate it if someone could test
this with UTF8 metadata or tell me how to generate/where to get a suitable file.

-Thilo

From 1a59272e3d333c784e9f4857cd3aa6542ad28d6d Mon Sep 17 00:00:00 2001
From: Thilo Borgmann thilo.borgm...@mail.de
Date: Fri, 17 Oct 2014 14:30:30 +0200
Subject: [PATCH] lavf/mov.c: Allocate buffer in case of long metadata entries.

---
 libavformat/mov.c | 27 ++-
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 4ff46dd..a48877d 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -261,7 +261,9 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext 
*pb, MOVAtom atom)
 #ifdef MOV_EXPORT_ALL_METADATA
 char tmp_key[5];
 #endif
-char str[1024], key2[16], language[4] = {0};
+char str_small[1024], key2[16], language[4] = {0};
+char *str = str_small;
+char *pstr = NULL;
 const char *key = NULL;
 uint16_t langcode = 0;
 uint32_t data_type = 0, str_size;
@@ -358,15 +360,28 @@ static int mov_read_udta_string(MOVContext *c, 
AVIOContext *pb, MOVAtom atom)
 if (atom.size  0)
 return AVERROR_INVALIDDATA;
 
-str_size = FFMIN3(sizeof(str)-1, str_size, atom.size);
-
 if (parse)
 parse(c, pb, str_size, key);
 else {
+#define LONG_META_ALLOC() {   \
+if (str_size  sizeof(str_small)-1) { \
+pstr = str = av_malloc(str_size); \
+if (!pstr)\
+return AVERROR(ENOMEM);   \
+} \
+}
+
 if (data_type == 3 || (data_type == 0  (langcode  0x400 || langcode 
== 0x7fff))) { // MAC Encoded
-mov_read_mac_string(c, pb, str_size, str, sizeof(str));
+int str_size_in = str_size;
+str_size = 1; // worst-case requirement for output string in 
case of utf8 coded input
+// allocate buffer for long data field if necessary
+LONG_META_ALLOC();
+mov_read_mac_string(c, pb, str_size_in, str, str_size);
 } else {
-int ret = avio_read(pb, str, str_size);
+int ret;
+// allocate buffer for long data field if necessary
+LONG_META_ALLOC();
+ret = avio_read(pb, str, str_size);
 if (ret != str_size)
 return ret  0 ? ret : AVERROR_INVALIDDATA;
 str[str_size] = 0;
@@ -382,6 +397,8 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext 
*pb, MOVAtom atom)
 av_dlog(c-fc, tag \%s\ value \%s\ atom \%.4s\ %d %PRId64\n,
 key, str, (char*)atom.type, str_size, atom.size);
 
+av_freep(pstr);
+
 return 0;
 }
 
-- 

Re: [FFmpeg-devel] [PATCH] matroskadec: execute seekheads recursively

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 01:55:35AM -0500, Rodger Combs wrote:
 
  On Oct 17, 2014, at 01:52, Rodger Combs rodger.co...@gmail.com wrote:
  
  
  On Oct 17, 2014, at 01:16, Rodger Combs rodger.co...@gmail.com 
  mailto:rodger.co...@gmail.com wrote:
  
  This fixes https://trac.ffmpeg.org/ticket/3934 
  https://trac.ffmpeg.org/ticket/3934, but I'm not sure if there was a 
  good reason for this to be here to begin with. Perhaps a protection 
  against infinite recursion (though I believe EBML_MAX_DEPTH serves that 
  purpose to some degree)?
  0001-matroskadec-execute-seekheads-recursively.patch
  
  Evidently either I or my mail client screwed up and the patch didn't get 
  attached. Whoops.
  0001-matroskadec-execute-seekheads-recursively.patch
  Let's try that again...
 
 Welp, apparently my email client's borked badly in some way. Here's a gist 
 link instead: https://gist.github.com/08f111e72b8b5ddba078

copy and pasted so our archives dont depend on external links as well
as for easy revieweing

From 4cf14a9d117da69b64c267e6f982931cfa60a300 Mon Sep 17 00:00:00 2001
From: Rodger Combs rodger.co...@gmail.com
Date: Fri, 17 Oct 2014 00:35:12 -0500
Subject: [PATCH] matroskadec: execute seekheads recursively

Fixes https://trac.ffmpeg.org/ticket/3934
---
 libavformat/matroskadec.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index b742319..b437e74 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1368,7 +1368,6 @@ static int 
matroska_parse_seekhead_entry(MatroskaDemuxContext *matroska,
 int ret = 0;

 if (idx = seekhead_list-nb_elem||
-seekhead[idx].id == MATROSKA_ID_SEEKHEAD ||
 seekhead[idx].id == MATROSKA_ID_CLUSTER)
 return 0;

--
1.9.1

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Breaking DRM is a little like attempting to break through a door even
though the window is wide open and the only thing in the house is a bunch
of things you dont want and which you would get tomorrow for free anyway


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] gitignore: add test_copy.ffmeta

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 11:50:53AM +0200, Benoit Fouet wrote:
 ---
  .gitignore | 1 +
  1 file changed, 1 insertion(+)

applied

thanks

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Let us carefully observe those good qualities wherein our enemies excel us
and endeavor to excel them, by avoiding what is faulty, and imitating what
is excellent in them. -- Plutarch


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avformat/id3v2: support buggy id3v2.3 tag length in id3v2.4

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 10:56:59AM +0200, Benoit Fouet wrote:
 Some encoders do not use syncsafe sizes in v2.4 id3 tags. Check the next
 tag to try to choose between the two.
 
 Fixes ticket #4003
 ---
  libavformat/id3v2.c | 64 
 +++--
  1 file changed, 62 insertions(+), 2 deletions(-)

applied

thanks

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I do not agree with what you have to say, but I'll defend to the death your
right to say it. -- Voltaire


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] configure: add pkg-config support for libx264

2014-10-17 Thread Benoit Fouet
---
 configure | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 3e7143c..5b16af9 100755
--- a/configure
+++ b/configure
@@ -4880,7 +4880,10 @@ enabled libvpx {
 enabled libvpx_vp9_encoder  { check_lib2 vpx/vpx_encoder.h vpx/vp8cx.h 
vpx_codec_vp9_cx VP9E_SET_AQ_MODE -lvpx || disable libvpx_vp9_encoder; } }
 enabled libwavpack require libwavpack wavpack/wavpack.h 
WavpackOpenFileOutput  -lwavpack
 enabled libwebprequire_pkg_config libwebp = 0.2.0 
webp/encode.h WebPGetEncoderVersion
-enabled libx264require libx264 x264.h x264_encoder_encode -lx264 

+enabled libx264{ { check_pkg_config x264 stdint.h x264.h 
x264_encoder_encode 
+ require_pkg_config x264 stdint.h x264.h 
x264_encoder_encode; } ||
+   { require libx264 x264.h x264_encoder_encode 
-lx264 
+ warn using libx264 without pkg-config; } } 

  { check_cpp_condition x264.h X264_BUILD = 118 
||
die ERROR: libx264 must be installed and 
version must be = 0.118.; }
 enabled libx265require_pkg_config x265 x265.h 
x265_encoder_encode 
-- 
2.1.2.443.g670a3c1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] lavf/mov.c: Allocate buffer in case of long metadata entries.

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 02:33:27PM +0200, Thilo Borgmann wrote:
 Am 16.10.14 04:47, schrieb Michael Niedermayer:
  On Mon, Oct 13, 2014 at 09:40:42AM +0200, Thilo Borgmann wrote:
  Am 11.10.14 16:19, schrieb Nicolas George:
  [...]
 
  all remarks applied.
 
  -Thilo
 
  
   mov.c |   16 
   1 file changed, 12 insertions(+), 4 deletions(-)
  cabb6e51de7f9329603561773f209b6a948478ce  
  0001-lavf-mov.c-Allocate-buffer-in-case-of-long-metadata-.patch
  From 5a14ef97ffc7d82dea5644c736e6dc2de2079e89 Mon Sep 17 00:00:00 2001
  From: Thilo Borgmann thilo.borgm...@mail.de
  Date: Mon, 13 Oct 2014 09:36:17 +0200
  Subject: [PATCH] lavf/mov.c: Allocate buffer in case of long metadata 
  entries.
 
  ---
   libavformat/mov.c | 16 
   1 file changed, 12 insertions(+), 4 deletions(-)
 
  diff --git a/libavformat/mov.c b/libavformat/mov.c
  index 4ff46dd..8d6d074 100644
  --- a/libavformat/mov.c
  +++ b/libavformat/mov.c
  @@ -261,7 +261,9 @@ static int mov_read_udta_string(MOVContext *c, 
  AVIOContext *pb, MOVAtom atom)
   #ifdef MOV_EXPORT_ALL_METADATA
   char tmp_key[5];
   #endif
  -char str[1024], key2[16], language[4] = {0};
  +char str_small[1024], key2[16], language[4] = {0};
  +char *str = str_small;
  +char *pstr = NULL;
   const char *key = NULL;
   uint16_t langcode = 0;
   uint32_t data_type = 0, str_size;
  @@ -358,13 +360,17 @@ static int mov_read_udta_string(MOVContext *c, 
  AVIOContext *pb, MOVAtom atom)
   if (atom.size  0)
   return AVERROR_INVALIDDATA;
   
  -str_size = FFMIN3(sizeof(str)-1, str_size, atom.size);
  -
   if (parse)
   parse(c, pb, str_size, key);
   else {
  +if (str_size  sizeof(str_small)-1) { // allocate buffer for long 
  data field
  +pstr = str = av_malloc(str_size);
  +if (!pstr)
  +return AVERROR(ENOMEM);
  +}
  +
   if (data_type == 3 || (data_type == 0  (langcode  0x400 || 
  langcode == 0x7fff))) { // MAC Encoded
  -mov_read_mac_string(c, pb, str_size, str, sizeof(str));
  +mov_read_mac_string(c, pb, str_size, str, str_size);
  
  this seems to store UTF8, which can require more space than str_size
 
 New patch attached using a worst-case size of twice the input string size if
 the input is in utf8.
 
 Tested only with non utf8 by now - I would appreciate it if someone could test
 this with UTF8 metadata or tell me how to generate/where to get a suitable 
 file.
 
 -Thilo
 

  mov.c |   27 ++-
  1 file changed, 22 insertions(+), 5 deletions(-)
 c6706cd53f0c804d993ba5dec8112faf1b9e84e5  
 0001-lavf-mov.c-Allocate-buffer-in-case-of-long-metadata-.patch
 From 1a59272e3d333c784e9f4857cd3aa6542ad28d6d Mon Sep 17 00:00:00 2001
 From: Thilo Borgmann thilo.borgm...@mail.de
 Date: Fri, 17 Oct 2014 14:30:30 +0200
 Subject: [PATCH] lavf/mov.c: Allocate buffer in case of long metadata entries.
 
 ---
  libavformat/mov.c | 27 ++-
  1 file changed, 22 insertions(+), 5 deletions(-)
 
 diff --git a/libavformat/mov.c b/libavformat/mov.c
 index 4ff46dd..a48877d 100644
 --- a/libavformat/mov.c
 +++ b/libavformat/mov.c
 @@ -261,7 +261,9 @@ static int mov_read_udta_string(MOVContext *c, 
 AVIOContext *pb, MOVAtom atom)
  #ifdef MOV_EXPORT_ALL_METADATA
  char tmp_key[5];
  #endif
 -char str[1024], key2[16], language[4] = {0};
 +char str_small[1024], key2[16], language[4] = {0};
 +char *str = str_small;
 +char *pstr = NULL;
  const char *key = NULL;
  uint16_t langcode = 0;
  uint32_t data_type = 0, str_size;
 @@ -358,15 +360,28 @@ static int mov_read_udta_string(MOVContext *c, 
 AVIOContext *pb, MOVAtom atom)
  if (atom.size  0)
  return AVERROR_INVALIDDATA;
  
 -str_size = FFMIN3(sizeof(str)-1, str_size, atom.size);
 -
  if (parse)
  parse(c, pb, str_size, key);
  else {
 +#define LONG_META_ALLOC() {   \
 +if (str_size  sizeof(str_small)-1) { \
 +pstr = str = av_malloc(str_size); \
 +if (!pstr)\
 +return AVERROR(ENOMEM);   \
 +} \
 +}
 +
  if (data_type == 3 || (data_type == 0  (langcode  0x400 || 
 langcode == 0x7fff))) { // MAC Encoded
 -mov_read_mac_string(c, pb, str_size, str, sizeof(str));
 +int str_size_in = str_size;
 +str_size = 1; // worst-case requirement for output string in 
 case of utf8 coded input
 +// allocate buffer for long data field if necessary
 +LONG_META_ALLOC();
 +mov_read_mac_string(c, pb, str_size_in, str, str_size);
  } else {
 -int ret = avio_read(pb, str, str_size);
 +int ret;
 +// allocate buffer for long data field if necessary
 +LONG_META_ALLOC();
 +ret = avio_read(pb, str, str_size);

i 

Re: [FFmpeg-devel] Fix bug for POWER LE: libswscale/ppc/swscale_altivec.c

2014-10-17 Thread Michael Niedermayer
On Thu, Oct 16, 2014 at 10:48:14AM +0800, rongyan wrote:
 Hi,
  I created a patch to fix the bug in file libswscale/ppc/swscale_altivec.c 
 for POWER LE. The fixed functions including 'hScale_altivec_real()', 
 'yuv2planeX_16_altivec()', and 'yuv2planeX_8()'. The fate test result can be 
 found on http://fate.ffmpeg.org/ by search ibmcrl, also attached here to 
 facilitate the review:


[...]
 +#if !HAVE_BIGENDIAN
 +#define yuv2planeX_8(d1, d2, l1, src, x, filter) do { \
 +vector signed int   i1  = vec_mule(filter, l1); \
 +vector signed int   i2  = vec_mulo(filter, l1); \
 +vector signed int   vf1 = vec_mergel(i2, i1);   \
 +vector signed int   vf2 = vec_mergeh(i2, i1);   \
 +d1 = vec_add(d1, vf1);  \
 +d2 = vec_add(d2, vf2);  \
 +} while (0)
 +#else
  #define yuv2planeX_8(d1, d2, l1, src, x, perm, filter) do { \
  vector signed short l2  = vec_ld(((x)  1) + 16, src); \
  vector signed short ls  = vec_perm(l1, l2, perm);   \
 @@ -44,11 +54,49 @@
  d2 = vec_add(d2, vf2);  \
  l1 = l2;\
  } while (0)
 +#endif
  
  static void yuv2planeX_16_altivec(const int16_t *filter, int filterSize,
const int16_t **src, uint8_t *dest,
const uint8_t *dither, int offset, int x)
  {
 +#if !HAVE_BIGENDIAN
 +register int i, j;
 +DECLARE_ALIGNED(16, int, val)[16];
 +vector signed int vo1, vo2, vo3, vo4;
 +vector unsigned short vs1, vs2;
 +vector unsigned char vf;
 +vector unsigned int altivec_vectorShiftInt19 =
 +vec_add(vec_splat_u32(10), vec_splat_u32(9));
 +
 +for (i = 0; i  16; i++)
 +val[i] = dither[(x + i + offset)  7]  12;
 +
 +vo1 = vec_ld(0,  val);
 +vo2 = vec_ld(16, val);
 +vo3 = vec_ld(32, val);
 +vo4 = vec_ld(48, val);
 +
 +for (j = 0; j  filterSize; j++) {
 +vector signed short l1, l2, vLumFilter = vec_vsx_ld(j  1, filter);
 +vLumFilter = vec_splat(vLumFilter, 0); // lumFilter[j] is loaded 8 
 times in vLumFilter
 +
 +l1  = vec_vsx_ld(x  1, src[j]);
 +l2  = vec_vsx_ld(((x)  1) + 16, src[j]);
 +
 +yuv2planeX_8(vo1, vo2, l1, src[j], x, vLumFilter);
 +yuv2planeX_8(vo3, vo4, l2, src[j], x + 8, vLumFilter);
 +}
 +
 +vo1 = vec_sra(vo1, altivec_vectorShiftInt19);
 +vo2 = vec_sra(vo2, altivec_vectorShiftInt19);
 +vo3 = vec_sra(vo3, altivec_vectorShiftInt19);
 +vo4 = vec_sra(vo4, altivec_vectorShiftInt19);
 +vs1 = vec_packsu(vo1, vo2);
 +vs2 = vec_packsu(vo3, vo4);
 +vf  = vec_packsu(vs1, vs2);
 +vec_vsx_st(vf, 0, dest);
 +#else /* else of #if !HAVE_BIGENDIAN */

  register int i, j;
  DECLARE_ALIGNED(16, int, val)[16];
  vector signed int vo1, vo2, vo3, vo4;

code duplication, this is identical to the code in the #if



 @@ -86,6 +134,7 @@ static void yuv2planeX_16_altivec(const int16_t *filter, 
 int filterSize,
  vs2 = vec_packsu(vo3, vo4);
  vf  = vec_packsu(vs1, vs2);
  vec_st(vf, 0, dest);

this is identical as well, except vec_st, the following avoids more
code duplication:

#if HAVE_VSX
#define VEC_ST vec_vsx_st
#else
#define VEC_ST vec_st)
#endif

similar for the other functions, please dont duplicate code
unless there is a reason

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Into a blind darkness they enter who follow after the Ignorance,
they as if into a greater darkness enter who devote themselves
to the Knowledge alone. -- Isha Upanishad


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] Fw: [FFmpeg-user] How to create trapezoid videos with ffmpeg?

2014-10-17 Thread Nicholas Robbins
 On Thursday, October 16, 2014 11:59 AM, Moritz Barsnick barsn...@gmx.net 
 wrote:


  Hi Zenny,
 
 On Wed, Oct 15, 2014 at 10:55:40 +0200, Zenny wrote:
  New to ffmpeg. How can one create a trapezoid shaped video as a
  overlay to the background as seen at
  http://www.youtube.com/watch?v=_380o5B9MrA (starts at 00:02:25) using
  ffmpeg command?
 
 I can't seem to find a filter which does that directly, but the
 perspective does a similar transformation, in an inverse way. I
 believe it virtually pulls the given viewpoints to the corners. 
 Using
 it with values pointing at viewpoints outside of the frame gives the
 approximate effect of what you're trying to achieve, see my example
 below. Interestingly, that filter smears the edges colors of the input
 across the rest of the output frame. (I'm not sure whether that's a bug
 or a feature.)
 
 Here's an example, using a test source with an overlayed outline and
 grid lines, to may the effect more clearly visible. It uses the SDL
 display driver as output to screen, but you can output to a file
 alternatively:
 
 ffmpeg -re -f lavfi -i 
 testsrc,drawbox=x=1:y=1:w=iw-2:h=ih-2:t=1:c=white,drawgrid=w=iw/10:h=ih/10:t=1:c=white@0.5
  
 -filter_complex [0:v]perspective=x0=-100:y0=-100:x2=-100:y2=H+100[ovl1]; 
 [0:v]pad=w=iw*2[ovl0]; [ovl0][ovl1]overlay=x=W/2[vidout] -map 
 [vidout] -pix_fmt yuv420p -f sdl -
 
 I use the -filter_complex chain to combine the original and the
 transformed output side-by-side. The relevant perspective filter
 section is:
 
 perspective=x0=-100:y0=-100:x2=-100:y2=H+100
 
 Note the reference points _outside_ of the frame to achieve a trapezoid
 size reduction. The filter you are looking for should probably accept
 actual corner values. That said, such a filter could probably be
 derived from the perspective filter's code. (I failed at finding 
 an
 easy way to do this though.)
 
 Moritz


Ok, it seems like this should be easier. If we had a filter that did the same 
thing as vf_perspective but with inverse options this would be easy. So instead 
telling it what points you want to send to the corners, you tell it where you 
want the corners sent. 

I ran the math and the formulas to map between the two different ways of 
specifying the projective transformation are a bit messy. For instance, if you 
want to send the corners to  x0:y0:x1:y1:x2:y2:x3:y3 the first option for the 
vf_perspective should be 

(W (x2 y0 - x0 y2) (x3 (y0 - y1) + x0 (y1 - y3) +
x1 (-y0 + y3)) (x3 (y1 - y2) + x1 (y2 - y3) +
x2 (-y1 + y3)))/(-x0 (x3^2 (y1 - y2) (-2 y1 y2 + y0 (y1 + y2)) -
  2 x2 x3 y1 (y1 - y2) (y0 - y3) + x2^2 y0 (y1 - y3)^2) +
  x2 x3 (y0 - y1)^2 (-x3 y2 + x2 y3) +
  x1 (x3^2 y1 (y0 - y2)^2 + 2 x0 x3 (y1 - y2) y2 (y0 - y3) -
  x0^2 y1 (y2 - y3)^2 - 2 x2 (y1 - y2) (y0 - y3) (x3 y0 + x0 y3) +
  x2^2 (y0 - y3) (y0 (y1 - 2 y3) + y1 y3)) +
  x0^2 (x2 y2 (y1 - y3)^2 - x3 (y1 - y2) (2 y1 y2 - y1 y3 - y2 y3)) +
x1^2 (x0 y0 (y2 - y3)^2 - x3 (y0 - y2)^2 y3 -
  x2 (y0 - y3) (y0 (y2 - 2 y3) + y2 y3)))

not something you can put on the command line or even want to work out by hand. 
However, it would be totally doable to calculate in filter initialization. 

So is it possible to make a filter that is basically just a wrapper around 
another filter? This hypothetical filter (call it vf_keystone) would just call 
vf_perspective with crazy options. Clearly I could just copy the vf_perspective 
filter and then insert these changes, but than any future changes to 
vf_perspective wouldn't filter down to vf_keystone.

Is this possible?

-Nick

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] hlsenc.c, segment.c: propagate defaults to mpegts

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 07:28:47PM +0300, Mika Raento wrote:
 This fixes the abnormally high ts overhead in the files produced by the
 HLS and segments muxers. See https://trac.ffmpeg.org/ticket/2857 . For
 example makes it much more likely that it can produces streams that fit
 under the 64kb App store limit.
 ---
  libavformat/hlsenc.c  | 10 ++
  libavformat/segment.c |  1 +
  2 files changed, 7 insertions(+), 4 deletions(-)

applied

thanks

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have often repented speaking, but never of holding my tongue.
-- Xenocrates


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 1/5] Introduce new error codes for 4XX and 5XX replies from remote servers

2014-10-17 Thread Andrey Utkin
---
 libavutil/error.c | 6 ++
 libavutil/error.h | 7 +++
 2 files changed, 13 insertions(+)

diff --git a/libavutil/error.c b/libavutil/error.c
index 9be78bc..d2868ac 100644
--- a/libavutil/error.c
+++ b/libavutil/error.c
@@ -53,6 +53,12 @@ static const struct error_entry error_entries[] = {
 { ERROR_TAG(UNKNOWN),Unknown error occurred  
   },
 { ERROR_TAG(EXPERIMENTAL),   Experimental feature
   },
 { ERROR_TAG(INPUT_AND_OUTPUT_CHANGED), Input and output changed  
   },
+{ ERROR_TAG(HTTP_BAD_REQUEST),   Server returned 400 Bad Request 
},
+{ ERROR_TAG(HTTP_UNAUTHORIZED),  Server returned 401 Unauthorized 
(authorization failed) },
+{ ERROR_TAG(HTTP_FORBIDDEN), Server returned 403 Forbidden (access 
denied) },
+{ ERROR_TAG(HTTP_NOT_FOUND), Server returned 404 Not Found   
},
+{ ERROR_TAG(HTTP_OTHER_4XX), Server returned 4XX Client Error, but 
not one of 40{0,1,3,4} },
+{ ERROR_TAG(HTTP_SERVER_ERROR),  Server returned 5XX Server Error reply 
},
 };
 
 int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
diff --git a/libavutil/error.h b/libavutil/error.h
index 621279a..71df4da 100644
--- a/libavutil/error.h
+++ b/libavutil/error.h
@@ -72,6 +72,13 @@
 #define AVERROR_EXPERIMENTAL   (-0x2bb2afa8) /// Requested feature is 
flagged experimental. Set strict_std_compliance if you really want to use it.
 #define AVERROR_INPUT_CHANGED  (-0x636e6701) /// Input changed between 
calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED)
 #define AVERROR_OUTPUT_CHANGED (-0x636e6702) /// Output changed between 
calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED)
+/* HTTP  RTSP errors */
+#define AVERROR_HTTP_BAD_REQUEST   FFERRTAG(0xF8,'4','0','0')
+#define AVERROR_HTTP_UNAUTHORIZED  FFERRTAG(0xF8,'4','0','1')
+#define AVERROR_HTTP_FORBIDDEN FFERRTAG(0xF8,'4','0','3')
+#define AVERROR_HTTP_NOT_FOUND FFERRTAG(0xF8,'4','0','4')
+#define AVERROR_HTTP_OTHER_4XX FFERRTAG(0xF8,'4','X','X')
+#define AVERROR_HTTP_SERVER_ERROR  FFERRTAG(0xF8,'5','X','X')
 
 #define AV_ERROR_MAX_STRING_SIZE 64
 
-- 
1.8.5.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 2/5] Introduce ff_http_averror()

2014-10-17 Thread Andrey Utkin
int ff_http_averror(int status_code, int default_averror)

This helper function returns AVERROR_ value from 3-digit HTTP status
code.

Second argument, default_averror, is used if no specific AVERROR_ is
available. It is introduced because in different places of code
different return codes are used - -1, AVERROR(EIO), AVERROR_INVALIDDATA.
---
 libavformat/http.c | 17 +
 libavformat/http.h |  2 ++
 2 files changed, 19 insertions(+)

diff --git a/libavformat/http.c b/libavformat/http.c
index 018d25c..1958a1b 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -272,6 +272,23 @@ int ff_http_do_new_request(URLContext *h, const char *uri)
 return ret;
 }
 
+int ff_http_averror(int status_code, int default_averror)
+{
+switch (status_code) {
+case 400: return AVERROR_HTTP_BAD_REQUEST;
+case 401: return AVERROR_HTTP_UNAUTHORIZED;
+case 403: return AVERROR_HTTP_FORBIDDEN;
+case 404: return AVERROR_HTTP_NOT_FOUND;
+default: break;
+}
+if (status_code = 400  status_code = 499)
+return AVERROR_HTTP_OTHER_4XX;
+else if (status_code = 500)
+return AVERROR_HTTP_SERVER_ERROR;
+else
+return default_averror;
+}
+
 static int http_open(URLContext *h, const char *uri, int flags,
  AVDictionary **options)
 {
diff --git a/libavformat/http.h b/libavformat/http.h
index be8ae7f..7d02713 100644
--- a/libavformat/http.h
+++ b/libavformat/http.h
@@ -47,4 +47,6 @@ void ff_http_init_auth_state(URLContext *dest, const 
URLContext *src);
  */
 int ff_http_do_new_request(URLContext *h, const char *uri);
 
+int ff_http_averror(int status_code, int default_averror);
+
 #endif /* AVFORMAT_HTTP_H */
-- 
1.8.5.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 5/5] Use ff_rtsp_averror()

2014-10-17 Thread Andrey Utkin
---
 libavformat/rtsp.c|  4 ++--
 libavformat/rtspdec.c | 27 ++-
 libavformat/rtspenc.c |  4 ++--
 3 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 77f03ba..1682db8 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1478,7 +1478,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const 
char *host, int port,
 goto fail;
 } else if (reply-status_code != RTSP_STATUS_OK ||
reply-nb_transports != 1) {
-err = AVERROR_INVALIDDATA;
+err = ff_rtsp_averror(reply-status_code, AVERROR_INVALIDDATA);
 goto fail;
 }
 
@@ -1778,7 +1778,7 @@ redirect:
sizeof(cmd));
 ff_rtsp_send_cmd(s, OPTIONS, rt-control_uri, cmd, reply, NULL);
 if (reply-status_code != RTSP_STATUS_OK) {
-err = AVERROR_INVALIDDATA;
+err = ff_rtsp_averror(reply-status_code, AVERROR_INVALIDDATA);
 goto fail;
 }
 
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index cf073b3..cad8de3 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -532,7 +532,7 @@ static int rtsp_read_play(AVFormatContext *s)
 }
 ff_rtsp_send_cmd(s, PLAY, rt-control_uri, cmd, reply, NULL);
 if (reply-status_code != RTSP_STATUS_OK) {
-return -1;
+return ff_rtsp_averror(reply-status_code, -1);
 }
 if (rt-transport == RTSP_TRANSPORT_RTP 
 reply-range_start != AV_NOPTS_VALUE) {
@@ -564,7 +564,7 @@ static int rtsp_read_pause(AVFormatContext *s)
 else if (!(rt-server_type == RTSP_SERVER_REAL  rt-need_subscription)) {
 ff_rtsp_send_cmd(s, PAUSE, rt-control_uri, NULL, reply, NULL);
 if (reply-status_code != RTSP_STATUS_OK) {
-return -1;
+return ff_rtsp_averror(reply-status_code, -1);
 }
 }
 rt-state = RTSP_STATE_PAUSED;
@@ -591,12 +591,12 @@ int ff_rtsp_setup_input_streams(AVFormatContext *s, 
RTSPMessageHeader *reply)
sizeof(cmd));
 }
 ff_rtsp_send_cmd(s, DESCRIBE, rt-control_uri, cmd, reply, content);
-if (!content)
-return AVERROR_INVALIDDATA;
 if (reply-status_code != RTSP_STATUS_OK) {
 av_freep(content);
-return AVERROR_INVALIDDATA;
+return ff_rtsp_averror(reply-status_code, AVERROR_INVALIDDATA);
 }
+if (!content)
+return AVERROR_INVALIDDATA;
 
 av_log(s, AV_LOG_VERBOSE, SDP:\n%s\n, content);
 /* now we got the SDP description, we parse it */
@@ -717,10 +717,10 @@ static int rtsp_read_header(AVFormatContext *s)
 if (rt-initial_pause) {
 /* do not start immediately */
 } else {
-if (rtsp_read_play(s)  0) {
+if ((ret = rtsp_read_play(s))  0) {
 ff_rtsp_close_streams(s);
 ff_rtsp_close_connections(s);
-return AVERROR_INVALIDDATA;
+return ret;
 }
 }
 }
@@ -814,7 +814,7 @@ retry:
 ff_rtsp_send_cmd(s, SET_PARAMETER, rt-control_uri,
  cmd, reply, NULL);
 if (reply-status_code != RTSP_STATUS_OK)
-return AVERROR_INVALIDDATA;
+return ff_rtsp_averror(reply-status_code, 
AVERROR_INVALIDDATA);
 rt-need_subscription = 1;
 }
 }
@@ -849,7 +849,7 @@ retry:
 ff_rtsp_send_cmd(s, SET_PARAMETER, rt-control_uri,
  cmd, reply, NULL);
 if (reply-status_code != RTSP_STATUS_OK)
-return AVERROR_INVALIDDATA;
+return ff_rtsp_averror(reply-status_code, 
AVERROR_INVALIDDATA);
 rt-need_subscription = 0;
 
 if (rt-state == RTSP_STATE_STREAMING)
@@ -910,6 +910,7 @@ static int rtsp_read_seek(AVFormatContext *s, int 
stream_index,
   int64_t timestamp, int flags)
 {
 RTSPState *rt = s-priv_data;
+int ret;
 
 rt-seek_timestamp = av_rescale_q(timestamp,
   s-streams[stream_index]-time_base,
@@ -919,11 +920,11 @@ static int rtsp_read_seek(AVFormatContext *s, int 
stream_index,
 case RTSP_STATE_IDLE:
 break;
 case RTSP_STATE_STREAMING:
-if (rtsp_read_pause(s) != 0)
-return -1;
+if ((ret = rtsp_read_pause(s)) != 0)
+return ret;
 rt-state = RTSP_STATE_SEEKING;
-if (rtsp_read_play(s) != 0)
-return -1;
+if ((ret = rtsp_read_play(s)) != 0)
+return ret;
 break;
 case RTSP_STATE_PAUSED:
 rt-state = RTSP_STATE_IDLE;
diff --git a/libavformat/rtspenc.c b/libavformat/rtspenc.c
index 12fb410..e7707bb 100644
--- a/libavformat/rtspenc.c
+++ b/libavformat/rtspenc.c
@@ -84,7 +84,7 @@ int ff_rtsp_setup_output_streams(AVFormatContext *s, const 
char *addr)
  

[FFmpeg-devel] [PATCH 3/5] Use ff_http_averror()

2014-10-17 Thread Andrey Utkin
---
 libavformat/http.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavformat/http.c b/libavformat/http.c
index 1958a1b..d12dcaa 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -250,7 +250,7 @@ redo:
 fail:
 if (s-hd)
 ffurl_closep(s-hd);
-return AVERROR(EIO);
+return ff_http_averror(s-http_code, AVERROR(EIO));
 }
 
 int ff_http_do_new_request(URLContext *h, const char *uri)
@@ -371,7 +371,7 @@ static int check_http_code(URLContext *h, int http_code, 
const char *end)
 (http_code != 407 || s-proxy_auth_state.auth_type != HTTP_AUTH_NONE)) 
{
 end += strspn(end, SPACE_CHARS);
 av_log(h, AV_LOG_WARNING, HTTP error %d %s\n, http_code, end);
-return AVERROR(EIO);
+return ff_http_averror(http_code, AVERROR(EIO));
 }
 return 0;
 }
@@ -1284,7 +1284,7 @@ redo:
 
 if (s-http_code  400)
 return 0;
-ret = AVERROR(EIO);
+ret = ff_http_averror(s-http_code, AVERROR(EIO));
 
 fail:
 http_proxy_close(h);
-- 
1.8.5.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 4/5] Introduce ff_rtsp_averror()

2014-10-17 Thread Andrey Utkin
Currently this is another name for ff_http_averror()
---
 libavformat/rtspcodes.h | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/libavformat/rtspcodes.h b/libavformat/rtspcodes.h
index d4ae0a8..0ae490a 100644
--- a/libavformat/rtspcodes.h
+++ b/libavformat/rtspcodes.h
@@ -25,6 +25,7 @@
 #define AVFORMAT_RTSPCODES_H
 
 #include libavutil/common.h
+#include libavformat/http.h
 
 /** RTSP handling */
 enum RTSPStatusCode {
@@ -139,4 +140,10 @@ enum RTSPMethod {
 RECORD,
 UNKNOWN = -1,
 };
+
+static inline int ff_rtsp_averror(enum RTSPStatusCode status_code, int 
default_averror)
+{
+return ff_http_averror(status_code, default_averror);
+}
+
 #endif /* AVFORMAT_RTSPCODES_H */
-- 
1.8.5.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [FFmpeg-user] How to create trapezoid videos with ffmpeg?

2014-10-17 Thread Nicholas Robbins
 On Friday, October 17, 2014 2:30 PM, Nicholas Robbins nickrobb...@yahoo.com 
 wrote:


snip actual request

 Ok, it seems like this should be easier. If we had a filter that did the same 
 thing as vf_perspective but with inverse options this would be easy. So 
 instead 
 telling it what points you want to send to the corners, you tell it where you 
 want the corners sent. 
 
 I ran the math and the formulas to map between the two different ways of 
 specifying the projective transformation are a bit messy. For instance, if 
 you 
 want to send the corners to  x0:y0:x1:y1:x2:y2:x3:y3 the first option for the 
 vf_perspective should be 
 
snip messy formula

 not something you can put on the command line or even want to work out by 
 hand. 
 However, it would be totally doable to calculate in filter initialization. 
 
 So is it possible to make a filter that is basically just a wrapper around 
 another filter? This hypothetical filter (call it vf_keystone) would just 
 call 
 vf_perspective with crazy options. Clearly I could just copy the 
 vf_perspective 
 filter and then insert these changes, but than any future changes to 
 vf_perspective wouldn't filter down to vf_keystone.
 
 Is this possible?

 -Nick

Upon further thought and a closer read of the vf_perspective code, I think an 
easier option would be to insert an option of sense or mode or something. 
Then condition the code at lines 144-160 (these lines calculate the matrix used 
for the transformation) and then put in another block conditioned on the mode 
that finds the inverse matrix rather than the matrix currently found.

Is this a reasonable approach? If so, I think I'll put this in in a little 
while.

-Nick
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 0/5] Add HTTP/RTSP specific AVERROR codes

2014-10-17 Thread Andrey Utkin
On Sat, Oct 18, 2014 at 1:19 AM, Carl Eugen Hoyos ceho...@ag.or.at wrote:
 Andrey Utkin andrey.utkin at corp.bluecherry.net writes:

 Any comments and testing are appreciated. I
 have made a little amount of testing, but RTSP,
 HTTP and HTTPS 401 and 404 work as expected.

 Is the patchset related to ticket #4039?
 If yes, please mention it.

No, it is not related. Primarily I care about error codes application
gets from av_read_frame().

-- 
Bluecherry developer.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] matroskadec: execute seekheads recursively

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 03:27:49PM +0200, Michael Niedermayer wrote:
 On Fri, Oct 17, 2014 at 01:55:35AM -0500, Rodger Combs wrote:
  
   On Oct 17, 2014, at 01:52, Rodger Combs rodger.co...@gmail.com wrote:
   
   
   On Oct 17, 2014, at 01:16, Rodger Combs rodger.co...@gmail.com 
   mailto:rodger.co...@gmail.com wrote:
   
   This fixes https://trac.ffmpeg.org/ticket/3934 
   https://trac.ffmpeg.org/ticket/3934, but I'm not sure if there was a 
   good reason for this to be here to begin with. Perhaps a protection 
   against infinite recursion (though I believe EBML_MAX_DEPTH serves that 
   purpose to some degree)?
   0001-matroskadec-execute-seekheads-recursively.patch
   
   Evidently either I or my mail client screwed up and the patch didn't get 
   attached. Whoops.
   0001-matroskadec-execute-seekheads-recursively.patch
   Let's try that again...
  
  Welp, apparently my email client's borked badly in some way. Here's a gist 
  link instead: https://gist.github.com/08f111e72b8b5ddba078
 
 copy and pasted so our archives dont depend on external links as well
 as for easy revieweing
 
 From 4cf14a9d117da69b64c267e6f982931cfa60a300 Mon Sep 17 00:00:00 2001
 From: Rodger Combs rodger.co...@gmail.com
 Date: Fri, 17 Oct 2014 00:35:12 -0500
 Subject: [PATCH] matroskadec: execute seekheads recursively
 
 Fixes https://trac.ffmpeg.org/ticket/3934
 ---
  libavformat/matroskadec.c | 1 -
  1 file changed, 1 deletion(-)
 
 diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
 index b742319..b437e74 100644
 --- a/libavformat/matroskadec.c
 +++ b/libavformat/matroskadec.c
 @@ -1368,7 +1368,6 @@ static int 
 matroska_parse_seekhead_entry(MatroskaDemuxContext *matroska,
  int ret = 0;
 
  if (idx = seekhead_list-nb_elem||
 -seekhead[idx].id == MATROSKA_ID_SEEKHEAD ||
  seekhead[idx].id == MATROSKA_ID_CLUSTER)
  return 0;

ebml_parse() that gets called as a result of this change does not
succeed and causes the one and only seekhead entry to return failure
so i think this doesnt execute seekheads recursively

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [FFmpeg-user] How to create trapezoid videos with ffmpeg?

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 02:09:49PM -0700, Nicholas Robbins wrote:
  On Friday, October 17, 2014 2:30 PM, Nicholas Robbins 
  nickrobb...@yahoo.com wrote:
 
 
 snip actual request
 
  Ok, it seems like this should be easier. If we had a filter that did the 
  same 
  thing as vf_perspective but with inverse options this would be easy. So 
  instead 
  telling it what points you want to send to the corners, you tell it where 
  you 
  want the corners sent. 
  
  I ran the math and the formulas to map between the two different ways of 
  specifying the projective transformation are a bit messy. For instance, if 
  you 
  want to send the corners to  x0:y0:x1:y1:x2:y2:x3:y3 the first option for 
  the 
  vf_perspective should be 
  
 snip messy formula
 
  not something you can put on the command line or even want to work out by 
  hand. 
  However, it would be totally doable to calculate in filter initialization. 
  
  So is it possible to make a filter that is basically just a wrapper around 
  another filter? This hypothetical filter (call it vf_keystone) would just 
  call 
  vf_perspective with crazy options. Clearly I could just copy the 
  vf_perspective 
  filter and then insert these changes, but than any future changes to 
  vf_perspective wouldn't filter down to vf_keystone.
  
  Is this possible?
 
  -Nick
 
 Upon further thought and a closer read of the vf_perspective code, I think an 
 easier option would be to insert an option of sense or mode or something. 
 Then condition the code at lines 144-160 (these lines calculate the matrix 
 used for the transformation) and then put in another block conditioned on the 
 mode that finds the inverse matrix rather than the matrix currently found.
 
 Is this a reasonable approach? If so, I think I'll put this in in a little 
 while.

yes, thats an option too

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] Add support for Opus in MPEG-TS

2014-10-17 Thread Kieran Kunhya
---
 libavcodec/opus.c|   11 +---
 libavcodec/opus.h|9 +++
 libavcodec/opus_parser.c |  139 +-
 libavformat/mpegts.c |   54 +-
 4 files changed, 191 insertions(+), 22 deletions(-)

diff --git a/libavcodec/opus.c b/libavcodec/opus.c
index 91021ce..1bc417b 100644
--- a/libavcodec/opus.c
+++ b/libavcodec/opus.c
@@ -290,10 +290,6 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx,
 OpusContext *s)
 {
 static const uint8_t default_channel_map[2] = { 0, 1 };
-uint8_t default_extradata[19] = {
-'O', 'p', 'u', 's', 'H', 'e', 'a', 'd',
-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-};
 
 int (*channel_reorder)(int, int) = channel_reorder_unknown;
 
@@ -308,9 +304,8 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx,
Multichannel configuration without extradata.\n);
 return AVERROR(EINVAL);
 }
-default_extradata[9] = (avctx-channels == 1) ? 1 : 2;
-extradata  = default_extradata;
-extradata_size = sizeof(default_extradata);
+extradata  = opus_default_extradata;
+extradata_size = sizeof(opus_default_extradata);
 } else {
 extradata = avctx-extradata;
 extradata_size = avctx-extradata_size;
@@ -330,7 +325,7 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx,
 
 avctx-delay = AV_RL16(extradata + 10);
 
-channels = extradata[9];
+channels = avctx-extradata ? extradata[9] : (avctx-channels == 1) ? 1 : 
2;
 if (!channels) {
 av_log(avctx, AV_LOG_ERROR, Zero channel count specified in the 
extadata\n);
 return AVERROR_INVALIDDATA;
diff --git a/libavcodec/opus.h b/libavcodec/opus.h
index c2fac06..94993d6 100644
--- a/libavcodec/opus.h
+++ b/libavcodec/opus.h
@@ -61,6 +61,15 @@
 #define ROUND_MUL16(a,b)  ((MUL16(a, b) + 16384)  15)
 #define opus_ilog(i) (av_log2(i) + !!(i))
 
+#define OPUS_TS_HEADER 0x7FE0// 0x3ff (11 bits)
+#define OPUS_TS_MASK   0xFFE0// top 11 bits
+
+static const uint8_t opus_default_extradata[30] = {
+'O', 'p', 'u', 's', 'H', 'e', 'a', 'd',
+1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+};
+
 enum OpusMode {
 OPUS_MODE_SILK,
 OPUS_MODE_HYBRID,
diff --git a/libavcodec/opus_parser.c b/libavcodec/opus_parser.c
index 8a2bc22..3ef3558 100644
--- a/libavcodec/opus_parser.c
+++ b/libavcodec/opus_parser.c
@@ -27,49 +27,162 @@
 
 #include avcodec.h
 #include opus.h
+#include parser.h
+#include bytestream.h
 
 typedef struct OpusParseContext {
 OpusContext ctx;
 OpusPacket pkt;
 int extradata_parsed;
+ParseContext pc;
+int ts_framing;
 } OpusParseContext;
 
-static int opus_parse(AVCodecParserContext *ctx, AVCodecContext *avctx,
-  const uint8_t **poutbuf, int *poutbuf_size,
-  const uint8_t *buf, int buf_size)
+static const uint8_t *parse_opus_ts_header(const uint8_t *start, int 
*payload_len, int buf_len)
+{
+const uint8_t *buf = start + 1;
+int start_trim_flag, end_trim_flag, control_extension_flag, 
control_extension_length, i;
+uint8_t flags;
+
+GetByteContext gb;
+bytestream2_init(gb, buf, buf_len);
+
+flags = bytestream2_get_byte(gb);
+start_trim_flag= (flags  4)  1;
+end_trim_flag  = (flags  3)  1;
+control_extension_flag = (flags  2)  1;
+
+*payload_len = 0;
+while (bytestream2_peek_byte(gb) == 0xff)
+*payload_len += bytestream2_get_byte(gb);
+
+*payload_len += bytestream2_get_byte(gb);
+
+if (start_trim_flag)
+bytestream2_skip(gb, 2);
+if (end_trim_flag)
+bytestream2_skip(gb, 2);
+if (control_extension_flag) {
+control_extension_length = bytestream2_get_byte(gb);
+bytestream2_skip(gb, control_extension_length);
+}
+
+return buf + bytestream2_tell(gb);
+}
+
+/**
+ * Find the end of the current frame in the bitstream.
+ * @return the position of the first byte of the next frame, or -1
+ */
+static int opus_find_frame_end(AVCodecParserContext *ctx, AVCodecContext 
*avctx,
+   const uint8_t *buf, int buf_size, int 
*header_len)
 {
 OpusParseContext *s = ctx-priv_data;
-int ret;
+ParseContext *pc= s-pc;
+int ret, start_found, i = 0, payload_len = 0;
+const uint8_t *payload;
+uint32_t state;
+uint16_t hdr;
+*header_len = 0;
 
 if (!buf_size)
 return 0;
 
+start_found = pc-frame_start_found;
+state = pc-state;
+payload = buf;
+
+/* Check if we're using Opus in MPEG-TS framing */
+if (!s-ts_framing  buf_size  2) {
+hdr = AV_RB16(buf);
+if ((hdr  OPUS_TS_MASK) == OPUS_TS_HEADER)
+s-ts_framing = 1;
+}
+
+if (s-ts_framing  !start_found) {
+for (i = 0; i  buf_size-2; i++) {
+state = (state  8) | payload[i];
+

Re: [FFmpeg-devel] [PATCHv2] ffplay: update documentation

2014-10-17 Thread Michael Niedermayer
On Sat, Oct 18, 2014 at 01:22:03AM +0200, Marton Balint wrote:
 
 On Thu, 16 Oct 2014, Lou Logan wrote:
 
 On Wed, 15 Oct 2014 23:46:21 +0200, Marton Balint wrote:
 
 Thank you for all your feedback, apparently there was some confusion 
 because I
 have used set both as a synonym to enabled and as an imperative. I have
 changed all occurences of it to enabled or use, so hopefully it will be
 more clear now. I have also done minor modifications in the text mostly 
 based
 on your comments.
 
 Here is v2 of the patch.
 
 ---
 
 Signed-off-by: Marton Balint c...@passwd.hu
 ---
  doc/ffplay.texi | 26 --
  1 file changed, 20 insertions(+), 6 deletions(-)
 
 Docs LGTM.
 
 Hi Michael,
 
 Please merge from my stable branch for this patch and the rest of
 the pending ffplay patches:
 
 9dac797 ffplay: remove delays when paused from video and subtitle thread
 0edf3e7 ffplay: remove manual bug option handling code
 2c4d6a3 ffplay: update documentation

merged

thanks
[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

You can kill me, but you cannot change the truth.


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: add pkg-config support for libx264

2014-10-17 Thread Carl Eugen Hoyos
Benoit Fouet benoit.fouet at free.fr writes:

 +enabled libx264{ { check_pkg_config x264 stdint.h x264.h 
 x264_encoder_encode 
 + require_pkg_config x264 stdint.h 
 x264.h x264_encoder_encode; } ||
 +   { require libx264 x264.h 
 x264_encoder_encode -lx264

No objections from me.
(Works fine here.)

Carl Eugen

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: add pkg-config support for libx264

2014-10-17 Thread Carl Eugen Hoyos
Benoit Fouet benoit.fouet at free.fr writes:

 +enabled libx264{ { check_pkg_config x264

I forgot:
You could add a line to the Changelog pkg-config is now 
preferred over --extra-*flags for x264 detection.

Carl Eugen

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: add pkg-config support for libx264

2014-10-17 Thread James Almer
On 17/10/14 8:49 PM, Carl Eugen Hoyos wrote:
 Benoit Fouet benoit.fouet at free.fr writes:
 
 +enabled libx264{ { check_pkg_config x264
 
 I forgot:
 You could add a line to the Changelog pkg-config is now 
 preferred over --extra-*flags for x264 detection.

No need to mention it's preferred over anything (especially when --extra-cflags 
wasn't even necessary in 99% of cases and only a small portion of users ever 
needed to use that).
A line saying something like x264 may now also be detected with pkg-config is 
enough.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: add pkg-config support for libx264

2014-10-17 Thread Carl Eugen Hoyos
James Almer jamrial at gmail.com writes:

  You could add a line to the Changelog pkg-config is now 
  preferred over --extra-*flags for x264 detection.

 A line saying something like x264 may now also 
 be detected with pkg-config is enough.

I disagree (this would be the change that I 
originally suggested) but it is not that important.

Carl Eugen

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] Patch for Cast128 algorithm implementation

2014-10-17 Thread Michael Niedermayer
On Sat, Oct 18, 2014 at 12:00:28AM +0530, supraja reddy wrote:
 Hello ,
 
 Updated the changes in the patch .
 Please let me know if any further changes required .
[...]
  Changelog|1
  libavutil/Makefile   |3 
  libavutil/cast5.c|  541 
 +++
  libavutil/cast5.h|   67 +
  tests/fate/libavutil.mak |5 
  5 files changed, 617 insertions(+)
 411c2b7394c93b909648890e5e97bda2b5a13077  0001-add-cipher.patch
 From b542575061026d918ef3cb9ab5b9dfb9aeb6a6e5 Mon Sep 17 00:00:00 2001
 From: Supraja Meedinti supraja0...@gmail.com
 Date: Fri, 17 Oct 2014 23:52:25 +0530
 Subject: [PATCH] libavutil: Add CAST128 symmetric block cipher
 
 Only ECB mode is supported at the moment
 
 Signed-off-by: Supraja Meedinti supraja0...@gmail.com
 ---
  Changelog|   1 +
  libavutil/Makefile   |   3 +
  libavutil/cast5.c| 541 
 +++
  libavutil/cast5.h|  67 ++
  tests/fate/libavutil.mak |   5 +
  5 files changed, 617 insertions(+)
  create mode 100644 libavutil/cast5.c
  create mode 100644 libavutil/cast5.h

patch applied

thanks

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No great genius has ever existed without some touch of madness. -- Aristotle


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: add pkg-config support for libx264

2014-10-17 Thread Michael Niedermayer
On Fri, Oct 17, 2014 at 11:48:12PM +, Carl Eugen Hoyos wrote:
 Benoit Fouet benoit.fouet at free.fr writes:
 
  +enabled libx264{ { check_pkg_config x264 stdint.h x264.h 
  x264_encoder_encode 
  + require_pkg_config x264 stdint.h 
  x264.h x264_encoder_encode; } ||
  +   { require libx264 x264.h 
  x264_encoder_encode -lx264
 
 No objections from me.
 (Works fine here.)

applied

thanks

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Rewriting code that is poorly written but fully understood is good.
Rewriting code that one doesnt understand is a sign that one is less smart
then the original author, trying to rewrite it will not make it better.


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel