Re: [FFmpeg-devel] compiling on MAC OSX10.9 crashes on <=10.85
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
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
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
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
[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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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.
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
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
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
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
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)
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