Re: [FFmpeg-devel] compiling on MAC OSX10.9 crashes on <=10.85

2014-09-27 Thread Hendrik Leppkes
On Sat, Sep 27, 2014 at 5:45 AM, Georg Stein 
wrote:

> Hello,
>
> i compiled ffmpeg under macosx 10.9 and had to find out, that my app what
> uses libavformat is crashing on mac osx up to 10.85
>
>
Use --extra-cflags="-mmacosx-version-min=10.8" .. or 10.6, or whatever is
your minimal target.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avfilter/signalstats: add more pixel formats

2014-09-27 Thread Paul B Mahol
On 9/26/14, Dave Rice  wrote:
> On Sep 25, 2014, at 1:26 PM, Paul B Mahol  wrote:
>> Signed-off-by: Paul B Mahol 
>> ---
>> libavfilter/vf_signalstats.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/libavfilter/vf_signalstats.c b/libavfilter/vf_signalstats.c
>> index 53f7401..47545aa 100644
>> --- a/libavfilter/vf_signalstats.c
>> +++ b/libavfilter/vf_signalstats.c
>> @@ -96,6 +96,9 @@ static int query_formats(AVFilterContext *ctx)
>> // TODO: add more
>> static const enum AVPixelFormat pix_fmts[] = {
>> AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P,
>> AV_PIX_FMT_YUV411P,
>> +AV_PIX_FMT_YUV440P,
>> +AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ420P,
>> AV_PIX_FMT_YUVJ411P,
>> +AV_PIX_FMT_YUVJ440P,
>> AV_PIX_FMT_NONE
>> };
>>
>> --
>> 1.7.11.2
>
> Tested and works for me.
> Thanks,
> Dave Rice
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

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


[FFmpeg-devel] [PATCH]Do not add extradata size to bitmapinfoheader size

2014-09-27 Thread Carl Eugen Hoyos
Hi!

Attached patch is one of two patches necessary to fix ticket #1304.
The MSDN documentation indicates that the palette is not part of the 
bitmapinfoheader but the bitmapinfoheader is part of the bitmapinfo 
structure that also contains the palette.

An alternative is to add the extradata_size except if it is a palette 
but imo, attached is more correct.

The second issue to fix ticket #1304 is that a too small frame size 
is written to the bitmapinfoheader, it is 192x127 for a 189x127 pal8 
frame. 0 is allowed if the pix_fmt is rawvideo.

Please comment, Carl Eugen
diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c
index 2eb2ae1..db35af4 100644
--- a/libavformat/riffenc.c
+++ b/libavformat/riffenc.c
@@ -214,7 +214,7 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecContext *enc,
 int extradata_size = enc->extradata_size - 9*keep_height;
 
 /* size */
-avio_wl32(pb, 40 + (ignore_extradata ? 0 :extradata_size));
+avio_wl32(pb, 40);
 avio_wl32(pb, enc->width);
 //We always store RGB TopDown
 avio_wl32(pb, enc->codec_tag || keep_height ? enc->height : -enc->height);
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/4] hevc: remove CodingTree

2014-09-27 Thread Michael Niedermayer
On Tue, Sep 23, 2014 at 09:36:41PM +, Christophe Gisquet wrote:
> ---
>  libavcodec/hevc.c   | 4 ++--
>  libavcodec/hevc.h   | 6 +-
>  libavcodec/hevc_cabac.c | 2 +-
>  3 files changed, 4 insertions(+), 8 deletions(-)

applied

thanks

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

The bravest are surely those who have the clearest vision
of what is before them, glory and danger alike, and yet
notwithstanding go out to meet it. -- Thucydides


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


[FFmpeg-devel] 111

2014-09-27 Thread 朱伟滔
[h264 @ 0xe84fc0] A non-intra slice in an IDR NAL unit.
[h264 @ 0xe84fc0] decode_slice_header error 
 
[h264 @ 0xc95530] cabac_init_idc 26 overflow
 
[h264 @ 0xc95530] decode_slice_header error 
 
[h264 @ 0xdb1970] Partitioned H.264 support is incomplete   
 
[h264 @ 0xdc5490] Partitioned H.264 support is incomplete   
 
[h264 @ 0xf33890] Partitioned H.264 support is incomplete   
 
[h264 @ 0xe84fc0] SEI type 208 size 1320 truncated at 8 
 
[h264 @ 0xe84fc0] SEI type 208 size 1320 truncated at 7 
 
[h264 @ 0xc95530] cabac_init_idc 19 overflow
 
[h264 @ 0xc95530] decode_slice_header error 
 
[h264 @ 0xdb1970] A non-intra slice in an IDR NAL unit. 
 
[h264 @ 0xdb1970] decode_slice_header error 
 
[h264 @ 0xdc5490] A non-intra slice in an IDR NAL unit. 
 
[h264 @ 0xdc5490] decode_slice_header error 
 
[h264 @ 0xf33890] A non-intra slice in an IDR NAL unit. 
 
[h264 @ 0xf33890] decode_slice_header error 
 
[h264 @ 0xe84fc0] Overread VUI by 8 bits
 
[h264 @ 0xe84fc0] illegal aspect ratio  
 
[h264 @ 0xe84fc0] [IMGUTILS @ 0x7fffc2ffc8f0] Picture size 64x0 is invalid  
 
[h264 @ 0xe84fc0] mb_width/height overflow  
 
[h264 @ 0xdb1970] SEI type 246 size 1832 truncated at 8 
 
[h264 @ 0xdb1970] SEI type 246 size 1832 truncated at 7 
 
[h264 @ 0xdc5490] SEI type 246 size 1832 truncated at 8 
 
[h264 @ 0xdc5490] SEI type 246 size 1832 truncated at 7 
 
[h264 @ 0xf33890] SEI type 246 size 1832 truncated at 8 
 
[h264 @ 0xf33890] SEI type 246 size 1832 truncated at 7 
 
[h264 @ 0xe84fc0] FMO not supported 
 
[h264 @ 0xe84fc0] FMO not supported 
 
[h264 @ 0xc95530] Partitioned H.264 support is incomplete   
 
[h264 @ 0xc81d80] slice type 32 too large at 0 0
 
[h264 @ 0xc81d80] decode_slice_header error 
 
[h264 @ 0xf33890] illegal reordering_of_pic_nums_idc 6  
 
[h264 @ 0xf33890] Reinit context to 512x20448, pix_fmt: vaapi_vld   
 
[h264 @ 0xdc5490] illegal reordering_of_pic_nums_idc 6
[h264 @ 0xdb1970] illegal reordering_of_pic_nums_idc 6  
 
[h264 @ 0xdc5490] Reinit context to 512x20448, pix_fmt: vaapi_vld   
 
[h264 @ 0xdb1970] Reinit context to 512x20448, pix_fmt: vaapi_vld
[h264 @ 0xf33890] reference picture missing during reorder
[h264 @ 0xf33890] illegal modification_of_pic_nums_idc 6
 
[h264 @ 0xf33890] decode_slice_header error

[FFmpeg-devel] Please help update tasks and mentor/backups for OPW

2014-09-27 Thread Reynaldo H. Verdejo Pinochet
Hello

As you might already know, Samsung has decided to back up our
initiative with the required 6K USD (Thanks!) and as result,
we have got at least one mentee covered for this round of the
Outreach Program for Women (http://gnome.org/opw/). We couldn't
be happier about this but there's quite some work to do to
ensure our prospective applicants get all the info they need.

What we need now is everyone's help updating and copyediting
our program landing page at
https://trac.ffmpeg.org/wiki/SponsoringPrograms/OPW/2014-12

Things that need urgent attention are ensuring listed projects
are still relevant as well as making sure their mentors are
still available and willing to take part on the program. I took
the liberty of CCing some of the currently listed mentors so
they can hopefully help with the latter.

If you were listed as a mentor please update your availability
and/or willingness status on the wiki. If you were listed as a
backup mentor for a mentorless project, please consider becoming
a full fledged mentor for it. Whatever the case, if you are updating
your availability or status on the wiki, please also let us
know on this same thread so we can easily keep tabs on who do we
still need to chase down ;)

Please do feel free to also add your own ideas (specially if you
are willing to mentor them ;). If you do so, please consider
sending a short note to the lists so we can do some back and
forth on them if needed. The more, the merrier!

Thanks in advance!

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


Re: [FFmpeg-devel] x86: inline asm cpuid vs. yasm cpuid

2014-09-27 Thread Michael Niedermayer
On Sat, Sep 27, 2014 at 12:34:21AM +0400, lvqcl wrote:
> ff_cpu_cpuid routine (in libavutil/x86/cpuid.asm) clears ECX
> register before cpuid instruction. Inline asm version
> (in libavutil/x86/cpu.c) doesn't do this.
> 
> As a result, FFmpeg will probably misdetect AVX2/BMI1/BMI2
> if yasm is not enabled.
> As far as I understand GNU asm, the last line of cpuid macro
> should be changed from
> : "0" (index))
> to
> : "0" (index), "2"(0))

fixed

thanks

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

Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope


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


Re: [FFmpeg-devel] [PATCH]Do not add extradata size to bitmapinfoheader size

2014-09-27 Thread Michael Niedermayer
On Sat, Sep 27, 2014 at 10:51:25AM +0200, Carl Eugen Hoyos wrote:
> Hi!
> 
> Attached patch is one of two patches necessary to fix ticket #1304.
> The MSDN documentation indicates that the palette is not part of the 
> bitmapinfoheader but the bitmapinfoheader is part of the bitmapinfo 
> structure that also contains the palette.
> 
> An alternative is to add the extradata_size except if it is a palette 
> but imo, attached is more correct.
> 
> The second issue to fix ticket #1304 is that a too small frame size 
> is written to the bitmapinfoheader, it is 192x127 for a 189x127 pal8 
> frame. 0 is allowed if the pix_fmt is rawvideo.
> 
> Please comment, Carl Eugen

>  riffenc.c |2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> e48c17bcadec1740fd8216c883b943ae7a7642ee  patchbmpextradata.diff

this breaks "make fate" (changing 39 checksums)

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 2
"100% positive feedback" - "All either got their money back or didnt complain"
"Best seller ever, very honest" - "Seller refunded buyer after failed scam"


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


[FFmpeg-devel] [PATCH] avcodec, avutil: allow more control about how samples are skipped

2014-09-27 Thread wm4
Add CODEC_FLAG2_SKIP_MANUAL (exposed as "skip_manual"), which makes
the decoder export sample skip information via side data, instead
of applying it automatically. The format of the side data is the
same as AV_PKT_DATA_SKIP_SAMPLES, but since AVPacket and AVFrame
side data constants overlap, AV_FRAME_DATA_SKIP_SAMPLES needs to
be introduced.

This is useful for applications which want to do the timestamp
calculations manually, or which actually want to retrieve the
padding.
---
I'm doing this because my timestamps are doubles, and can't be
expressed in integer timebases. I also think libavcodec shouldn't
mess with timestamps at all, just pass them through.
---
 doc/APIchanges |  7 +++
 libavcodec/avcodec.h   |  1 +
 libavcodec/options_table.h |  1 +
 libavcodec/utils.c | 21 +++--
 libavutil/frame.h  | 12 
 5 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index 7fadab3..c0f34c9 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,13 @@ libavutil: 2014-08-09
 
 API changes, most recent first:
 
+2014-08-03 - xxx - lavc 56.x.100 - avcodec.h
+2014-08-03 - xxx - lavu 54.x.100 - frame.h
+  Add AV_FRAME_DATA_SKIP_SAMPLES. Add lavc CODEC_FLAG2_SKIP_MANUAL and
+  AVOption "skip_manual", which makes lavc export skip information via
+  AV_FRAME_DATA_SKIP_SAMPLES AVFrame side data, instead of skipping and
+  discarding samples automatically.
+
 2014-09-24 - xxx - libpostproc 53.1.100
   Add visualization support
 
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 94e82f7..7598748 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -768,6 +768,7 @@ typedef struct RcOverride{
 #define CODEC_FLAG2_CHUNKS0x8000 ///< Input bitstream might be 
truncated at a packet boundaries instead of only at frame boundaries.
 #define CODEC_FLAG2_SHOW_ALL  0x0040 ///< Show all frames before the 
first keyframe
 #define CODEC_FLAG2_EXPORT_MVS0x1000 ///< Export motion vectors 
through frame side data
+#define CODEC_FLAG2_SKIP_MANUAL   0x2000 ///< Do not skip samples and 
export skip information as frame side data
 
 /* Unsupported options :
  *  Syntax Arithmetic coding (SAC)
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index ad3d52e..b9b79f9 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -89,6 +89,7 @@ static const AVOption avcodec_options[] = {
 {"chunks", "Frame data might be split into multiple chunks", 0, 
AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_CHUNKS }, INT_MIN, INT_MAX, V|D, 
"flags2"},
 {"showall", "Show all frames before the first keyframe", 0, AV_OPT_TYPE_CONST, 
{.i64 = CODEC_FLAG2_SHOW_ALL }, INT_MIN, INT_MAX, V|D, "flags2"},
 {"export_mvs", "export motion vectors through frame side data", 0, 
AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_EXPORT_MVS}, INT_MIN, INT_MAX, V|D, 
"flags2"},
+{"skip_manual", "do not skip samples and export skip information as frame side 
data", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_SKIP_MANUAL}, INT_MIN, 
INT_MAX, V|D, "flags2"},
 {"me_method", "set motion estimation method", OFFSET(me_method), 
AV_OPT_TYPE_INT, {.i64 = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method"},
 {"zero", "zero motion estimation (fastest)", 0, AV_OPT_TYPE_CONST, {.i64 = 
ME_ZERO }, INT_MIN, INT_MAX, V|E, "me_method" },
 {"full", "full motion estimation (slowest)", 0, AV_OPT_TYPE_CONST, {.i64 = 
ME_FULL }, INT_MIN, INT_MAX, V|E, "me_method" },
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index b27f918..ce0d943 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -2448,6 +2448,8 @@ int attribute_align_arg 
avcodec_decode_audio4(AVCodecContext *avctx,
 uint8_t *side;
 int side_size;
 uint32_t discard_padding = 0;
+uint8_t skip_reason = 0;
+uint8_t discard_reason = 0;
 // copy to ensure we do not change avpkt
 AVPacket tmp = *avpkt;
 int did_split = av_packet_split_side_data(&tmp);
@@ -2488,8 +2490,11 @@ int attribute_align_arg 
avcodec_decode_audio4(AVCodecContext *avctx,
 av_log(avctx, AV_LOG_DEBUG, "skip %d samples due to side data\n",
avctx->internal->skip_samples);
 discard_padding = AV_RL32(side + 4);
+skip_reason = AV_RL8(side + 8);
+discard_reason = AV_RL8(side + 9);
 }
-if (avctx->internal->skip_samples && *got_frame_ptr) {
+if (avctx->internal->skip_samples && *got_frame_ptr &&
+!(avctx->flags2 & CODEC_FLAG2_SKIP_MANUAL)) {
 if(frame->nb_samples <= avctx->internal->skip_samples){
 *got_frame_ptr = 0;
 avctx->internal->skip_samples -= frame->nb_samples;
@@ -2518,7 +2523,8 @@ int attribute_align_arg 
avcodec_decode_audio4(AVCodecContext *avctx,
 }
 }
 
-if (discard_padding > 0 && discard_padding <= frame->nb_samples && 
*got

Re: [FFmpeg-devel] [PATCH 16/17] avformat/assenc: mux an event header if none are found in extradata

2014-09-27 Thread Clément Bœsch
On Wed, Sep 24, 2014 at 01:23:08PM +0200, Clément Bœsch wrote:
> On Wed, Sep 24, 2014 at 01:20:36PM +0200, Nicolas George wrote:
> > Le jour de la Raison, an CCXXII, Clément Bœsch a écrit :
> > > ---
> > >  libavformat/assenc.c | 2 ++
> > >  1 file changed, 2 insertions(+)
> > > 
> > > diff --git a/libavformat/assenc.c b/libavformat/assenc.c
> > > index 236d021..5779e92 100644
> > > --- a/libavformat/assenc.c
> > > +++ b/libavformat/assenc.c
> > > @@ -54,6 +54,8 @@ static int write_header(AVFormatContext *s)
> > >  if (avctx->extradata[avctx->extradata_size - 1] != '\n')
> > >  avio_write(s->pb, "\r\n", 2);
> > >  }
> > > +if (!strstr(avctx->extradata, "\n[Events]"))
> > > +avio_printf(s->pb, "[Events]\r\nFormat: Layer, Start, End, 
> > > Style, Actor, MarginL, MarginR, MarginV, Effect, Text\r\n");
> > >  avio_flush(s->pb);
> > >  
> > >  return 0;
> > 
> > Can you point out in what case it is necessary? Broken input file?
> > 
> > Maybe a warning should be printed.
> > 
> 
> No, this happens when people follow the specifications from matroska:
> these two lines are not supposed to be muxed into the
> CodecPrivate/extradata. That doesn't happen in practice (because you need
> to store the Comments below the Format line, in the CodecPrivate), but it
> can happen, and mkvextract seems to be able to deal with that by doing
> something similar to that.
> 

Applied.

-- 
Clément B.


pgpSGFGGmzSZn.pgp
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 15/17] avformat/assdec: add myself to Copyright

2014-09-27 Thread Clément Bœsch
On Sun, Sep 21, 2014 at 01:31:22PM +0200, Michael Niedermayer wrote:
> On Sat, Sep 20, 2014 at 10:27:55PM +0200, Clément Bœsch wrote:
> > ---
> >  libavformat/assdec.c | 1 +
> >  1 file changed, 1 insertion(+)
> 
> ok
> 

Thanks, pushed.

-- 
Clément B.


pgpPlCp_WlXrB.pgp
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 12/17] avformat/assdec: output ASS packets

2014-09-27 Thread Clément Bœsch
On Wed, Sep 24, 2014 at 01:24:17PM +0200, Clément Bœsch wrote:
[...]
> > I think this was ok.
> 
> Note: I still haven't pushed this because it breaks when line are in old
> ASS (with Marked=0 prefix). I'll fix that ASAP.
> 

Fixed and applied. Thanks.

-- 
Clément B.


pgpGfb51Kfbbc.pgp
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 13/17] avformat/assdec: make sure "Comments:" events end up in the header

2014-09-27 Thread Clément Bœsch
On Sun, Sep 21, 2014 at 08:35:51AM +0200, wm4 wrote:
> On Sat, 20 Sep 2014 22:27:53 +0200
> Clément Bœsch  wrote:
> 
> > ---
> >  libavformat/assdec.c | 26 --
> >  1 file changed, 8 insertions(+), 18 deletions(-)
> > 
> > diff --git a/libavformat/assdec.c b/libavformat/assdec.c
> > index 5480171..2187c7d 100644
> > --- a/libavformat/assdec.c
> > +++ b/libavformat/assdec.c
> > @@ -104,7 +104,7 @@ static int ass_read_header(AVFormatContext *s)
> >  {
> >  ASSContext *ass = s->priv_data;
> >  AVBPrint header, line, rline;
> > -int header_remaining, res = 0;
> > +int res = 0;
> >  AVStream *st;
> >  FFTextReader tr;
> >  ff_text_init_avio(&tr, s->pb);
> > @@ -116,33 +116,24 @@ static int ass_read_header(AVFormatContext *s)
> >  st->codec->codec_type = AVMEDIA_TYPE_SUBTITLE;
> >  st->codec->codec_id   = AV_CODEC_ID_ASS;
> >  
> > -header_remaining = INT_MAX;
> > -
> >  av_bprint_init(&header, 0, AV_BPRINT_SIZE_UNLIMITED);
> >  av_bprint_init(&line,   0, AV_BPRINT_SIZE_UNLIMITED);
> >  av_bprint_init(&rline,  0, AV_BPRINT_SIZE_UNLIMITED);
> >  
> > +// TODO reindent
> >  for (;;) {
> >  int64_t pos = get_line(&line, &tr);
> > -
> > -if (!line.str[0]) // EOF
> > -break;
> > -
> > -if (!memcmp(line.str, "[Events]", 8))
> > -header_remaining = 2;
> > -else if (line.str[0] == '[')
> > -header_remaining = INT_MAX;
> > -
> > -if (header_remaining) {
> > -av_bprintf(&header, "%s", line.str);
> > -header_remaining--;
> > -} else {
> >  int64_t ts_start = AV_NOPTS_VALUE;
> >  int duration = -1;
> >  AVPacket *sub;
> >  
> > -if (read_dialogue(ass, &rline, line.str, &ts_start, &duration) 
> > < 0)
> > +if (!line.str[0]) // EOF
> > +break;
> 
> Does get_line() skip empty lines?
> 
> > +
> > +if (read_dialogue(ass, &rline, line.str, &ts_start, &duration) 
> > < 0) {
> > +av_bprintf(&header, "%s", line.str);
> >  continue;
> > +}
> >  sub = ff_subtitles_queue_insert(&ass->q, rline.str, rline.len, 
> > 0);
> >  if (!sub) {
> >  res = AVERROR(ENOMEM);
> > @@ -151,7 +142,6 @@ static int ass_read_header(AVFormatContext *s)
> >  sub->pos = pos;
> >  sub->pts = ts_start;
> >  sub->duration = duration;
> > -}
> >  }
> >  
> >  av_bprint_finalize(&line, NULL);
> 
> A bit "regrettable" IMO (more work for a user if a user really wants to
> get timed comments), but surely more consistent in general (and I guess
> Comment events got lost of reinterpreted as Dialogue events before
> this?).

They were in the packets previously, but were dropped while transcoding
(with errors).

Patch applied.

-- 
Clément B.


pgp2pXGO0bn_Z.pgp
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 14/17] avformat/assdec: reindent after previous commit

2014-09-27 Thread Clément Bœsch
On Sat, Sep 20, 2014 at 10:27:54PM +0200, Clément Bœsch wrote:
> ---
>  libavformat/assdec.c | 31 +++
>  1 file changed, 15 insertions(+), 16 deletions(-)
> 
> diff --git a/libavformat/assdec.c b/libavformat/assdec.c
> index 2187c7d..d33830e 100644
> --- a/libavformat/assdec.c
> +++ b/libavformat/assdec.c
> @@ -120,28 +120,27 @@ static int ass_read_header(AVFormatContext *s)
>  av_bprint_init(&line,   0, AV_BPRINT_SIZE_UNLIMITED);
>  av_bprint_init(&rline,  0, AV_BPRINT_SIZE_UNLIMITED);
>  
> -// TODO reindent
>  for (;;) {
>  int64_t pos = get_line(&line, &tr);
> -int64_t ts_start = AV_NOPTS_VALUE;
> -int duration = -1;
> -AVPacket *sub;
> +int64_t ts_start = AV_NOPTS_VALUE;
> +int duration = -1;
> +AVPacket *sub;
>  
>  if (!line.str[0]) // EOF
>  break;
>  
> -if (read_dialogue(ass, &rline, line.str, &ts_start, &duration) < 
> 0) {
> -av_bprintf(&header, "%s", line.str);
> -continue;
> -}
> -sub = ff_subtitles_queue_insert(&ass->q, rline.str, rline.len, 
> 0);
> -if (!sub) {
> -res = AVERROR(ENOMEM);
> -goto end;
> -}
> -sub->pos = pos;
> -sub->pts = ts_start;
> -sub->duration = duration;
> +if (read_dialogue(ass, &rline, line.str, &ts_start, &duration) < 0) {
> +av_bprintf(&header, "%s", line.str);
> +continue;
> +}
> +sub = ff_subtitles_queue_insert(&ass->q, rline.str, rline.len, 0);
> +if (!sub) {
> +res = AVERROR(ENOMEM);
> +goto end;
> +}
> +sub->pos = pos;
> +sub->pts = ts_start;
> +sub->duration = duration;
>  }
>  
>  av_bprint_finalize(&line, NULL);

Pushed as well. Whole patchset is upstream. Thanks.

-- 
Clément B.


pgpPHfj10fSuv.pgp
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/2] Kill timed SRT

2014-09-27 Thread Clément Bœsch
On Sun, Sep 14, 2014 at 09:03:39PM +0200, Clément Bœsch wrote:
> ---
>  libavcodec/srtdec.c   | 33 +++
>  libavcodec/srtenc.c   | 49 
> ++-
>  libavformat/matroska.c|  1 -
>  libavformat/matroskaenc.c | 45 +--
>  libavformat/srtenc.c  | 11 ---
>  5 files changed, 10 insertions(+), 129 deletions(-)
> 

Ping on this one though.

Long story short: it drops the support for SRT packets with timing in the
payload as strings

[...]

-- 
Clément B.


pgpgs79zbzcj9.pgp
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/2] Kill timed SSA

2014-09-27 Thread Clément Bœsch
On Sun, Sep 14, 2014 at 09:03:40PM +0200, Clément Bœsch wrote:
> ---
>  libavcodec/Makefile  |  4 ++--
>  libavcodec/assdec.c  | 60 
> +++-
>  libavcodec/assenc.c  | 14 ++--
>  libavformat/assenc.c | 14 
>  libavformat/nut.c|  1 -
>  5 files changed, 24 insertions(+), 69 deletions(-)
> 

This patch is postponed as mentioned in another thread (basically it might
still be useful).

[...]

-- 
Clément B.


pgp3cMelol9sJ.pgp
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avformat/movenc: AVC Intra support

2014-09-27 Thread Michael Niedermayer
This allows remuxing AVC intra into mov
it does not work with libx264 encoded AVC Intra for unknown reason

Signed-off-by: Michael Niedermayer 
---
 libavformat/movenc.c |   63 ++
 1 file changed, 59 insertions(+), 4 deletions(-)

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 021fe78..0ef4a94 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -1017,6 +1017,59 @@ static int mov_get_mpeg2_xdcam_codec_tag(AVFormatContext 
*s, MOVTrack *track)
 return tag;
 }
 
+static int mov_get_h264_codec_tag(AVFormatContext *s, MOVTrack *track)
+{
+int tag = track->enc->codec_tag;
+int interlaced = track->enc->field_order > AV_FIELD_PROGRESSIVE;
+AVStream *st = track->st;
+int rate = av_q2d(find_fps(s, st));
+
+if (!tag)
+tag = MKTAG('a', 'v', 'c', 'i'); //fallback tag
+
+if (track->enc->pix_fmt == AV_PIX_FMT_YUV420P10) {
+if (track->enc->width == 960 && track->enc->height == 720) {
+if (!interlaced) {
+if  (rate == 24) tag = MKTAG('a','i','5','p');
+else if (rate == 25) tag = MKTAG('a','i','5','q');
+else if (rate == 30) tag = MKTAG('a','i','5','p');
+else if (rate == 50) tag = MKTAG('a','i','5','q');
+else if (rate == 60) tag = MKTAG('a','i','5','p');
+}
+} else if (track->enc->width == 1440 && track->enc->height == 1080) {
+if (!interlaced) {
+if  (rate == 24) tag = MKTAG('a','i','5','3');
+else if (rate == 25) tag = MKTAG('a','i','5','2');
+else if (rate == 30) tag = MKTAG('a','i','5','3');
+} else {
+if  (rate == 50) tag = MKTAG('a','i','5','5');
+else if (rate == 60) tag = MKTAG('a','i','5','6');
+}
+}
+} else if (track->enc->pix_fmt == AV_PIX_FMT_YUV422P10) {
+if (track->enc->width == 1280 && track->enc->height == 720) {
+if (!interlaced) {
+if  (rate == 24) tag = MKTAG('a','i','1','p');
+else if (rate == 25) tag = MKTAG('a','i','1','q');
+else if (rate == 30) tag = MKTAG('a','i','1','p');
+else if (rate == 50) tag = MKTAG('a','i','1','q');
+else if (rate == 60) tag = MKTAG('a','i','1','p');
+}
+} else if (track->enc->width == 1920 && track->enc->height == 1080) {
+if (!interlaced) {
+if  (rate == 24) tag = MKTAG('a','i','1','3');
+else if (rate == 25) tag = MKTAG('a','i','1','2');
+else if (rate == 30) tag = MKTAG('a','i','1','3');
+} else {
+if  (rate == 50) tag = MKTAG('a','i','1','5');
+else if (rate == 60) tag = MKTAG('a','i','1','6');
+}
+}
+}
+
+return tag;
+}
+
 static const struct {
 enum AVPixelFormat pix_fmt;
 uint32_t tag;
@@ -1080,6 +1133,8 @@ static int mov_get_codec_tag(AVFormatContext *s, MOVTrack 
*track)
 tag = mov_get_rawvideo_codec_tag(s, track);
 else if (track->enc->codec_id == AV_CODEC_ID_MPEG2VIDEO)
 tag = mov_get_mpeg2_xdcam_codec_tag(s, track);
+else if (track->enc->codec_id == AV_CODEC_ID_H264)
+tag = mov_get_h264_codec_tag(s, track);
 else if (track->enc->codec_type == AVMEDIA_TYPE_VIDEO) {
 tag = ff_codec_get_tag(ff_codec_movvideo_tags, 
track->enc->codec_id);
 if (!tag) { // if no mac fcc found, try with Microsoft tags
@@ -1294,7 +1349,7 @@ static int mov_write_video_tag(AVIOContext *pb, MOVTrack 
*track)
 mov_write_avid_tag(pb, track);
 else if (track->enc->codec_id == AV_CODEC_ID_HEVC)
 mov_write_hvcc_tag(pb, track);
-else if (track->enc->codec_id == AV_CODEC_ID_H264) {
+else if (track->enc->codec_id == AV_CODEC_ID_H264 && 
!TAG_IS_AVCI(track->tag)) {
 mov_write_avcc_tag(pb, track);
 if (track->mode == MODE_IPOD)
 mov_write_uuid_tag_ipod(pb);
@@ -3508,7 +3563,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt)
 samples_in_chunk = 1;
 
 /* copy extradata if it exists */
-if (trk->vos_len == 0 && enc->extradata_size > 0) {
+if (trk->vos_len == 0 && enc->extradata_size > 0 && 
!TAG_IS_AVCI(trk->tag)) {
 trk->vos_len  = enc->extradata_size;
 trk->vos_data = av_malloc(trk->vos_len);
 memcpy(trk->vos_data, enc->extradata, trk->vos_len);
@@ -3524,7 +3579,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt)
 }
 av_log(s, AV_LOG_WARNING, "aac bitstream error\n");
 }
-if (enc->codec_id == AV_CODEC_ID_H264 && trk->vos_len > 0 && *(uint8_t 
*)trk->vos_data != 1) {
+if (enc->codec_id == AV_CODEC_ID_H264 && trk->vos_len > 0 && *(uint8_t 
*)trk->vos_data != 1 && !TAG_IS_AVCI(trk->tag)) {
 /* from x264 or from bytestream h264 */

Re: [FFmpeg-devel] [PATCH] avcodec, avutil: allow more control about how samples are skipped

2014-09-27 Thread Michael Niedermayer
On Sat, Sep 27, 2014 at 04:47:09PM +0200, wm4 wrote:
> Add CODEC_FLAG2_SKIP_MANUAL (exposed as "skip_manual"), which makes
> the decoder export sample skip information via side data, instead
> of applying it automatically. The format of the side data is the
> same as AV_PKT_DATA_SKIP_SAMPLES, but since AVPacket and AVFrame
> side data constants overlap, AV_FRAME_DATA_SKIP_SAMPLES needs to
> be introduced.
> 
> This is useful for applications which want to do the timestamp
> calculations manually, or which actually want to retrieve the
> padding.

patch should be ok


> ---
> I'm doing this because my timestamps are doubles, and can't be
> expressed in integer timebases. I also think libavcodec shouldn't
> mess with timestamps at all, just pass them through.

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

Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato


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


Re: [FFmpeg-devel] [PATCH 5/5] lavd/avfoundation: Add basic PCM audio support.

2014-09-27 Thread Michael Niedermayer
On Wed, Sep 24, 2014 at 12:44:17PM +0200, Thilo Borgmann wrote:
> 

>  avfoundation.m |  345 
> ++---
>  1 file changed, 331 insertions(+), 14 deletions(-)
> 4053a31c5345bef25628d264a17a1c010feca134  
> 0005-lavd-avfoundation-Add-basic-PCM-audio-support.patch
> From 0eaddfcea9f2a557bf35a4fbeb30f0944b2e4d7d Mon Sep 17 00:00:00 2001
> From: Thilo Borgmann 
> Date: Tue, 23 Sep 2014 17:06:37 +0200
> Subject: [PATCH 5/5] lavd/avfoundation: Add basic PCM audio support.

applied

thanks

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- 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] avformat/movenc: AVC Intra support

2014-09-27 Thread Kieran Kunhya
On 28 September 2014 00:49, Michael Niedermayer  wrote:
>
> This allows remuxing AVC intra into mov
> it does not work with libx264 encoded AVC Intra for unknown reason

1080i should work. 1080p needs some random magic numbers in the
bitstream which are probably different for all the
framerate/resolution combinations. Blame Apple for having a decoder
that violates the H.264 spec - specifically requiring SEIs to have
certain information in them.

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


Re: [FFmpeg-devel] [PATCH] Added parameter -hls_allow_cache

2014-09-27 Thread Michael Niedermayer
On Mon, Sep 22, 2014 at 10:17:01AM +0200, Joakim Roubert wrote:
> The -hls_allow_cache parameter enables explicitly setting the
> EXT-X-ALLOW-CACHE tag in the manifest file. That tag indicates
> whether the client MAY or MUST NOT cache downloaded media
> segments for later replay.
> 
> Valid values are 1 (=YES) or 0 (=NO) and the EXT-X-ALLOW-CACHE
> will not show in the manifest for other values (or if
> -hls_allow_cache is not used.
> ---
>  doc/muxers.texi  |4 
>  libavformat/hlsenc.c |6 ++
>  2 files changed, 10 insertions(+)

applied

thanks

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

Freedom in capitalist society always remains about the same as it was in
ancient Greek republics: Freedom for slave owners. -- Vladimir Lenin


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


Re: [FFmpeg-devel] [PATCH 3/3] [RFC] mpegts: Support seeking based on stream timestamps.

2014-09-27 Thread Michael Niedermayer
On Sun, Sep 21, 2014 at 10:17:16AM +0100, Reimar Döffinger wrote:
> Should should fix seeking in some blurays in combination with
> e.g. MPlayer.
> Not yet tested due to no bluray at hand.
> 
> Signed-off-by: Reimar Döffinger 
> ---
>  libavformat/mpegts.c | 8 
>  1 file changed, 8 insertions(+)

should be ok if it works

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

Old school: Use the lowest level language in which you can solve the problem
conveniently.
New school: Use the highest level language in which the latest supercomputer
can solve the problem without the user falling asleep waiting.


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/movenc: AVC Intra support

2014-09-27 Thread Michael Niedermayer
On Sun, Sep 28, 2014 at 02:00:00AM +0100, Kieran Kunhya wrote:
> On 28 September 2014 00:49, Michael Niedermayer  wrote:
> >
> > This allows remuxing AVC intra into mov
> > it does not work with libx264 encoded AVC Intra for unknown reason
> 
> 1080i should work. 1080p needs some random magic numbers in the
> bitstream which are probably different for all the
> framerate/resolution combinations. Blame Apple for having a decoder
> that violates the H.264 spec - specifically requiring SEIs to have
> certain information in them.

i tried various avcintra 50 and 100 and i didnt find any that
worked. They all crashed fcpx (in apples avci decoder in the case i
looked at)
its of course very possible that i made some systematic mistake

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The worst form of inequality is to try to make unequal things equal.
-- 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] avformat/movenc: AVC Intra support

2014-09-27 Thread Michael Niedermayer
On Sun, Sep 28, 2014 at 03:53:15AM +0200, Michael Niedermayer wrote:
> On Sun, Sep 28, 2014 at 02:00:00AM +0100, Kieran Kunhya wrote:
> > On 28 September 2014 00:49, Michael Niedermayer  wrote:
> > >
> > > This allows remuxing AVC intra into mov
> > > it does not work with libx264 encoded AVC Intra for unknown reason
> > 
> > 1080i should work. 1080p needs some random magic numbers in the
> > bitstream which are probably different for all the
> > framerate/resolution combinations. Blame Apple for having a decoder
> > that violates the H.264 spec - specifically requiring SEIs to have
> > certain information in them.
> 
> i tried various avcintra 50 and 100 and i didnt find any that
> worked. They all crashed fcpx (in apples avci decoder in the case i
> looked at)
> its of course very possible that i made some systematic mistake

if someone has a known to be good set of command line options for
x264 to generate a working stream + input + output .h264 streams
that might (or might not) help identify what is at fault

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you think the mosad wants you dead since a long time then you are either
wrong or dead since a long time.


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


Re: [FFmpeg-devel] [PATCH 6/6] docs: mention when and how one should be added as an author

2014-09-27 Thread Michael Niedermayer
On Fri, Sep 12, 2014 at 01:31:30AM +0200, James Darnley wrote:
> This addresses point 13 from the mplayer patches text file.  Discussion about
> removing a link to this document can be found in the thread on ffmpeg-devel
> titled: [PATCH] web/contact: replace MPlayer guidelines link
> ---
>  doc/developer.texi | 5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/doc/developer.texi b/doc/developer.texi
> index 1ec7045..1ae7541 100644
> --- a/doc/developer.texi
> +++ b/doc/developer.texi
> @@ -410,6 +410,11 @@ Finally, comments must be in English.
>  Don't expect to be given write access straight away. If you show yourself to 
> be
>  a regular and reliable contributor or if you wish to be a maintainer you 
> will be
>  offered write access.
> +
> +@item
> +If you make a non-trivial contribution and wish to be listed as an author in 
> the
> +copyright header of a file, please include that change. It can be a separate
> +patch if you are submitting a series of patches or if you change several 
> files.
>  @end enumerate

LGTM but it feels very obvious so iam not sure it improve the signal
to noise ratio of the policy, maybe if this is added it could be
moved to an other place of the docs

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

While the State exists there can be no freedom; when there is freedom there
will be no State. -- Vladimir Lenin


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


Re: [FFmpeg-devel] [PATCH] avcodec/libx265: enable psnr reporting when requested by the user

2014-09-27 Thread Michael Niedermayer
On Wed, Sep 10, 2014 at 01:48:06AM +0200, Michael Niedermayer wrote:
> This is similar to what is done in libx264.c
> 
> Fixes Ticket3567
> 
> Signed-off-by: Michael Niedermayer 
> ---
>  libavcodec/libx265.c |1 +
>  1 file changed, 1 insertion(+)

applied

[...]
-- 
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] Reorganizing Cookies (was Re: [PATCH] Replace old cookies with new cookies of the same name)

2014-09-27 Thread Micah Galizia

On 18/08/14 21:36, Nicolas George wrote:

Le primidi 1er fructidor, an CCXXII, Micah Galizia a écrit :

Yes & no. I agree its not an ideal implementation (it actually was
mine to begin with) to just use a string full of cookies. But we can't
pass around complex structures through avopts, which is where we would
really see the benefit. As you & Mark pointed out, we need to maintain
compatibility with the current format, so why why go through parsing
the cookie list each time if 1 in 100 requests actually sends back an
updated cookie, and even then you'd have to dump it back out to a
string and parse it again to pass it between http requests all
this considered, I'd say I'm definitely leaning to "no" unless there
is something I've overlooked.


First, a small nitpick: if you read the option to get the updated values of
the cookies after the request, then you are abusing the API, as the option
does not have AV_OPT_FLAG_EXPORT. But for the sake of discussion we can
assume it should be there and always was.

But that does not mean that the string must be the authoritative value used
internally. A lot of your code is spent updating the middle of the string
while keeping the prefix and suffix constant. That makes a lot of tricky
code, with reallocations and possible integer overflows everywhere.

I am convinced that parsing the string as a whole, manipulating an internal
data structure and rebuilding the string as a whole would give much simpler
code. The parsing is needed for the actual Set-Cookie header; line-splitting
is relatively easy. As for the rebuilding of the string, we have utilities
that can take care of the reallocations and integer overflow for you; I
think especially of AVBPrint. Here is a snippet of code:

 av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
 for (i = 0; i < http->nb_cookies; i++) {
Cookie *c = &http->cookie[i];
if (i)
av_bprintf(&bp, "\n");
av_bprintf(&bp, "%s=%s", c->name, c->value);
if (c->domain)
av_bprintf(&bp, "; domain=%s", c->domain);
if (c->path)
av_bprintf(&bp, "; path=%s", c->path);
if (c->extra)
av_bprintf(&bp, "; %s", c->extra);
 }
 if (!av_bprint_is_complete(&bp))
return AVERROR(ENOMEM);
 return av_bprint_finalize(&bp, &http->cookies);


Another point: I believe that having a callback on some options values may
also be quite useful. That could be done as AV_OPT_FLAG_CALLBACK with a
function pointer in AVClass. In this particular case, the callback could
parse the string on the fly and re-generate it only when necessary.


You lost me on the callback bit. I'm not sure I get how it'd really help.


What do people think about that?


I'd like to reorganize the cookies. Where I come up short is how to 
store them once they're parsed. Ideally, whatever their structure, they 
should be tied into the AVOption array for http so hls can copy them 
back and forth. That doesn't really leave me with a lot of choice for 
data structures -- and I'd rather not create a new AV_OPT_TYPE.


Using what is available now I could keep the existing cookies option 
(newline delimited string) to allow external apps to set the cookies 
initially. After they are passed in I could break them into a second 
dictionary option (with the export flag) keyed by cookie name so at 
least replacement is easier. I'd probably unset the original cookie 
string too once they're broken into a dict so that there is no ambiguity 
over where they are stored. Then, hls (or any other code) could pass 
around the dict option instead of the string.


I'm open to suggestions if I've overlooked an obvious way to tie generic 
structs into the AVOptions though. Alternatively, if the dictionary 
method is enough of an improvement I'll put in patchs to get it done 
that way.


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