Re: [FFmpeg-devel] [PATCH]lavf/matroskaenc: Print an error if an unreadable rawvideo pix_fmt is written
On Sat, 14 Jan 2017 06:18:13 +0100 Carl Eugen Hoyos wrote: > 2017-01-13 6:28 GMT+01:00 wm4 : > > On Thu, 12 Jan 2017 23:31:11 +0100 > > Carl Eugen Hoyos wrote: > > > >> 2017-01-12 23:20 GMT+01:00 Hendrik Leppkes : > >> > On Fri, Jan 13, 2017 at 1:10 AM, Carl Eugen Hoyos > >> > wrote: > >> >> 2017-01-11 12:24 GMT+01:00 Moritz Barsnick : > >> >>> On Tue, Jan 10, 2017 at 17:05:47 +0100, Carl Eugen Hoyos wrote: > >> +enum AVPixelFormat pix_fmt = > >> avpriv_find_pix_fmt(avpriv_pix_fmt_bps_avi, > >> + > >> par->bits_per_coded_sample); > >> +if (par->format != pix_fmt && par->format != > >> AV_PIX_FMT_NONE) > >> +av_log(s, AV_LOG_ERROR, "%s rawvideo cannot be > >> written to vfw mkv, output file will be unreadable\n", > >> + av_get_pix_fmt_name(par->format)); > >> >>> > >> >>> Should it really be an error (and not a warning) if its detection > >> >>> doesn't change ffmpeg's behavior? > >> >> > >> >> Just copying what avi and mov muxer do. > >> >> > >> >> Note that (many) decoders print errors and (can) continue. > >> >> > >> >> (I believe library users can - and do - put rawvideo into standard > >> >> containers and force the right pix_fmt on reading.) > >> > > >> > That seems silly, we shouldn't log an error that a file will be broken > >> > and then still write it. Muxers should be strict and write only valid > >> > files. > >> > >> This is what we currently do for both other multi-purpose containers > >> (while FFmpeg logs no message for unreadable transport streams), > >> so lets please commit this. > > > > I have to agree with Hendrik. Your patch is all about adding a message > > for this case. > > The same message that gets printed for the other general-purpose > muxers. > > > Why not do the right thing in the first place? > > I believe informing users is the right thing. > > > You'd only have to add an error return or so. > > I would prefer not to harm library users when helping cli users. In other places we make an effort to not write potentially broken files by default, such as adding support for unfinished specifications. Why write broken files in this specific case, even though we definitely know it's broken, to the extent of adding a message informing the user about it. I'm saying that 1. It's definitely preferable not to write broken files by default if we can easily prevent it (i.e. it's "the right thing") 2. A message won't prevent any harm - users might not read it, or the encoder is not ffmpeg.c but someone using the API (possibly never showing the log messages to the user) 3. There is no argument about consistency, because it's already inconsistent, and consistently writing broken files by default is not a worthy goal 4. It's trivial to do the right thing ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] avformat/matroskaenc: Accept time base hint
On Tue, Dec 27, 2016 at 09:47:47PM -0800, Michael Bradshaw wrote: > From: Michael Bradshaw > > Signed-off-by: Michael Bradshaw > --- > libavformat/matroskaenc.c | 38 +++--- > 1 file changed, 31 insertions(+), 7 deletions(-) > > diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c > index 827d755..2c2c930 100644 > --- a/libavformat/matroskaenc.c > +++ b/libavformat/matroskaenc.c > @@ -117,6 +117,7 @@ typedef struct mkv_attachments { > typedef struct MatroskaMuxContext { > const AVClass *class; > int mode; > +int timecode_scale; > AVIOContext *dyn_bc; > AVIOContext *tags_bc; > ebml_master tags; > @@ -1757,7 +1758,7 @@ static int mkv_write_header(AVFormatContext *s) > return ret; > pb = mkv->info_bc; > > -put_ebml_uint(pb, MATROSKA_ID_TIMECODESCALE, 100); > +put_ebml_uint(pb, MATROSKA_ID_TIMECODESCALE, mkv->timecode_scale); > if ((tag = av_dict_get(s->metadata, "title", NULL, 0))) > put_ebml_string(pb, MATROSKA_ID_TITLE, tag->value); > if (!(s->flags & AVFMT_FLAG_BITEXACT)) { > @@ -1799,11 +1800,11 @@ static int mkv_write_header(AVFormatContext *s) > int64_t metadata_duration = get_metadata_duration(s); > > if (s->duration > 0) { > -int64_t scaledDuration = av_rescale(s->duration, 1000, > AV_TIME_BASE); > +int64_t scaledDuration = av_rescale(s->duration, 10, > AV_TIME_BASE * (int64_t)mkv->timecode_scale); > put_ebml_float(pb, MATROSKA_ID_DURATION, scaledDuration); > av_log(s, AV_LOG_DEBUG, "Write early duration from recording > time = %" PRIu64 "\n", scaledDuration); > } else if (metadata_duration > 0) { > -int64_t scaledDuration = av_rescale(metadata_duration, 1000, > AV_TIME_BASE); > +int64_t scaledDuration = av_rescale(metadata_duration, > 10, AV_TIME_BASE * (int64_t)mkv->timecode_scale); > put_ebml_float(pb, MATROSKA_ID_DURATION, scaledDuration); > av_log(s, AV_LOG_DEBUG, "Write early duration from metadata = %" > PRIu64 "\n", scaledDuration); > } else { > @@ -1864,12 +1865,12 @@ static int mkv_write_header(AVFormatContext *s) > // after 4k and on a keyframe > if (pb->seekable) { > if (mkv->cluster_time_limit < 0) > -mkv->cluster_time_limit = 5000; > +mkv->cluster_time_limit = av_rescale(5, 10, > mkv->timecode_scale); > if (mkv->cluster_size_limit < 0) > mkv->cluster_size_limit = 5 * 1024 * 1024; > } else { > if (mkv->cluster_time_limit < 0) > -mkv->cluster_time_limit = 1000; > +mkv->cluster_time_limit = 10 / mkv->timecode_scale; > if (mkv->cluster_size_limit < 0) > mkv->cluster_size_limit = 32 * 1024; > } > @@ -2458,6 +2459,7 @@ static int mkv_query_codec(enum AVCodecID codec_id, int > std_compliance) > > static int mkv_init(struct AVFormatContext *s) > { > +MatroskaMuxContext *mkv = s->priv_data; > int i; > > if (s->avoid_negative_ts < 0) { > @@ -2465,9 +2467,31 @@ static int mkv_init(struct AVFormatContext *s) > s->internal->avoid_negative_ts_use_pts = 1; > } > > +// ms precision is the de-facto standard timescale for mkv files > +mkv->timecode_scale = 100; > + > +// If the user has supplied a desired time base, use it if possible > +if (s->nb_streams > 0) { > + AVRational time_base = s->streams[0]->time_base; > + for (i = 1; i < s->nb_streams; i++) { inconsistent indention > + if (time_base.num != s->streams[i]->time_base.num || > + time_base.den != s->streams[i]->time_base.den) { > +time_base = av_make_q(0, 0); > +break; > + } > + } This looks just at one stream, what if other streams have other timebases ? you could pick a common tb so that timestamps in any of the requested ones can be represented. While this wont always be possible due to bits per int constraint i dont think completely ignoring other streams is safe. > + // Make sure the time base is valid, can losslessly be converted to > + // nanoseconds, and isn't longer than 1 second > + if (time_base.num > 0 && > + time_base.den > 0 && > + 10 % time_base.den == 0 && > + time_base.num <= time_base.den) { > + mkv->timecode_scale = (int)av_rescale(time_base.num, 10, > time_base.den); assuming someone asks for 1001/24000 he would get something else and something that is lower precission than what the default would have been prior to this patch IIUC [...] -- 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 s
Re: [FFmpeg-devel] [PATCH] avformat/matroskaenc: Accept time base hint
On Fri, Jan 13, 2017 at 08:48:01AM -0800, Michael Bradshaw wrote: > On Wed, Dec 28, 2016 at 5:03 AM, Michael Niedermayer > wrote: > > > On Tue, Dec 27, 2016 at 09:47:47PM -0800, Michael Bradshaw wrote: > > > From: Michael Bradshaw > > > > > > Signed-off-by: Michael Bradshaw > > > --- > > > libavformat/matroskaenc.c | 38 +++--- > > > 1 file changed, 31 insertions(+), 7 deletions(-) > > > > breaks fate > > [...] > > > I've looked into this and it's expected behavior. -codec copy is also > copying timing information (including time base), and with this patch the > Matroska/WebM muxers are respecting that. > > I could update the fate files, but before doing that I'd like to ensure > that this change in behavior for -codec copy is correct and desirable. i think the patch is a good idea it has some other issues though (see the other mail in this thread i just posted) thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Avoid a single point of failure, be that a person or equipment. signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] avcodec: add SIPR parser
Fixes #2056. Signed-off-by: Paul B Mahol --- libavcodec/Makefile | 1 + libavcodec/allcodecs.c | 1 + libavcodec/sipr_parser.c | 74 libavformat/aadec.c | 2 ++ libavformat/rmdec.c | 1 + 5 files changed, 79 insertions(+) create mode 100644 libavcodec/sipr_parser.c diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 4494f26..f5735d0 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -943,6 +943,7 @@ OBJS-$(CONFIG_PNG_PARSER) += png_parser.o OBJS-$(CONFIG_PNM_PARSER) += pnm_parser.o pnm.o OBJS-$(CONFIG_RV30_PARSER) += rv34_parser.o OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o +OBJS-$(CONFIG_SIPR_PARSER) += sipr_parser.o OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o \ simple_idct.o wmv2data.o diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index 22a93f3..703c552 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -702,6 +702,7 @@ void avcodec_register_all(void) REGISTER_PARSER(PNM,pnm); REGISTER_PARSER(RV30, rv30); REGISTER_PARSER(RV40, rv40); +REGISTER_PARSER(SIPR, sipr); REGISTER_PARSER(TAK,tak); REGISTER_PARSER(VC1,vc1); REGISTER_PARSER(VORBIS, vorbis); diff --git a/libavcodec/sipr_parser.c b/libavcodec/sipr_parser.c new file mode 100644 index 000..fba25e1 --- /dev/null +++ b/libavcodec/sipr_parser.c @@ -0,0 +1,74 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Sipr audio parser + */ + +#include "parser.h" + +typedef struct SiprParserContext{ +ParseContext pc; +} SiprParserContext; + +static int sipr_split(AVCodecContext *avctx, const uint8_t *buf, int buf_size) +{ +int next; + +switch (avctx->block_align) { +case 20: +case 19: +case 29: +case 37: next = avctx->block_align; break; +default: +if (avctx->bit_rate > 12200) next = 20; +else if (avctx->bit_rate > 7500 ) next = 19; +else if (avctx->bit_rate > 5750 ) next = 29; +else next = 37; +} + +return FFMIN(next, buf_size); +} + +static int sipr_parse(AVCodecParserContext *s1, AVCodecContext *avctx, + const uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size) +{ +SiprParserContext *s = s1->priv_data; +ParseContext *pc = &s->pc; +int next; + +next = sipr_split(avctx, buf, buf_size); +if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) { +*poutbuf = NULL; +*poutbuf_size = 0; +return buf_size; +} + +*poutbuf = buf; +*poutbuf_size = buf_size; +return next; +} + +AVCodecParser ff_sipr_parser = { +.codec_ids = { AV_CODEC_ID_SIPR }, +.priv_data_size = sizeof(SiprParserContext), +.parser_parse = sipr_parse, +.parser_close = ff_parse_close, +}; diff --git a/libavformat/aadec.c b/libavformat/aadec.c index cf5f3d1..0f4ec20 100644 --- a/libavformat/aadec.c +++ b/libavformat/aadec.c @@ -184,11 +184,13 @@ static int aa_read_header(AVFormatContext *s) st->codecpar->block_align = 19; st->codecpar->channels = 1; st->codecpar->sample_rate = 8500; +st->need_parsing = AVSTREAM_PARSE_FULL_RAW; } else if (!strcmp(codec_name, "acelp16")) { st->codecpar->codec_id = AV_CODEC_ID_SIPR; st->codecpar->block_align = 20; st->codecpar->channels = 1; st->codecpar->sample_rate = 16000; +st->need_parsing = AVSTREAM_PARSE_FULL_RAW; } /* determine, and jump to audio start offset */ diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c index 4d56529..c803588 100644 --- a/libavformat/rmdec.c +++ b/libavformat/rmdec.c @@ -236,6 +236,7 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb, return -1; } st->codecpar->block_align = ff_sipr_subpk_size[flavor]; +st-
Re: [FFmpeg-devel] AVFilter for watermarking DCTELEM MPEG2 blocks
hello royger! I’d love to read the realize of the AVFilter for watermarking DCTELEM MPEG2 blocks source, how can I get the code, thanks a lot! Jesse. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] avformat/matroskaenc: Accept time base hint
On Sat, Jan 14, 2017 at 3:57 AM, Michael Niedermayer wrote: > On Tue, Dec 27, 2016 at 09:47:47PM -0800, Michael Bradshaw wrote: > > +// ms precision is the de-facto standard timescale for mkv files > > +mkv->timecode_scale = 100; > > + > > +// If the user has supplied a desired time base, use it if possible > > +if (s->nb_streams > 0) { > > + AVRational time_base = s->streams[0]->time_base; > > + for (i = 1; i < s->nb_streams; i++) { > > inconsistent indention > Fixed. > + if (time_base.num != s->streams[i]->time_base.num || > > + time_base.den != s->streams[i]->time_base.den) { > > +time_base = av_make_q(0, 0); > > +break; > > + } > > + } > > This looks just at one stream, what if other streams have other > timebases ? > you could pick a common tb so that timestamps in any of the requested > ones can be represented. While this wont always be possible due to > bits per int constraint i dont think completely ignoring other streams > is safe. > The other streams aren't completely ignored. They're checked to make sure they all have the same time base (and if they don't, it falls back to the default 1/1000 time base). > + // Make sure the time base is valid, can losslessly be converted to > > + // nanoseconds, and isn't longer than 1 second > > + if (time_base.num > 0 && > > + time_base.den > 0 && > > + 10 % time_base.den == 0 && > > + time_base.num <= time_base.den) { > > > + mkv->timecode_scale = (int)av_rescale(time_base.num, > 10, time_base.den); > > assuming someone asks for 1001/24000 he would get something else > and something that is lower precission than what the default would > have been prior to this patch IIUC Before this patch the time base was always set to 1/1000, which is what this patch defaults to if the streams don't have a common time base that can be losslessly converted to nanoseconds, so this patch should never make things less precise than before. I have mixed feelings on changing this patch so that it picks a common time base between multiple streams or truncates a repeating decimal. Matroska only stores timestamps as multiples of nanoseconds, and I fear automatically computing a time base might push the time base closer and closer to 1/10. Using a tiny timebase like that causes extra chunking in Matroska, as each block in a Cluster only stores its timestamp as a 16-bit int. I'd rather my other patch[1] be used to let the user request a specific time base than trying to auto-compute a time base. I've updated the patch to fix the indentation as well as ignore the time base hint for WebM, since WebM muxers are required to use a time base of 1/1000[2]. Apologies for the gmail attachment; I'm still figuring out git send-email. [1]: http://ffmpeg.org/pipermail/ffmpeg-devel/2016-December/205017.html [2]: http://www.webmproject.org/docs/container/#muxer-guidelines 0001-avformat-matroskaenc-Accept-time-base-hint.patch Description: Binary data ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH]lavf/rtmpproto: Make bytes_read variables 64bit.
Hi! Attached patch is meant to fix ticket #5836, completely untested. Please comment, Carl Eugen From b6d895a9bf1a4ed9d1660d99043b8edc5cc8b169 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Sat, 14 Jan 2017 19:17:09 +0100 Subject: [PATCH] lavf/rtmpproto: Make bytes_read variables 64bit. When bytes_read overflowed, last_bytes_read did not yet overflow and no bytes-read report was created leading to a timeout. Analyzed-by: Thomas Bernhard Fixes ticket #5836. --- libavformat/rtmpproto.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c index b118b4e..5d7ad79 100644 --- a/libavformat/rtmpproto.c +++ b/libavformat/rtmpproto.c @@ -94,8 +94,8 @@ typedef struct RTMPContext { int flv_nb_packets; ///< number of flv packets published RTMPPacketout_pkt;///< rtmp packet, created from flv a/v or metadata (for output) uint32_t client_report_size; ///< number of bytes after which client should report to server -uint32_t bytes_read; ///< number of bytes read from server -uint32_t last_bytes_read;///< number of bytes read last reported to server +uint64_t bytes_read; ///< number of bytes read from server +uint64_t last_bytes_read;///< number of bytes read last reported to server uint32_t last_timestamp; ///< last timestamp received in a packet int skip_bytes; ///< number of bytes to skip from the input FLV stream in the next write call int has_audio; ///< presence of audio data -- 1.7.10.4 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] ffmpeg: Add -time_base option to hint the time base
On Tue, Dec 27, 2016 at 10:05:35PM -0800, Michael Bradshaw wrote: > From: Michael Bradshaw > > Signed-off-by: Michael Bradshaw > --- > ffmpeg.c | 6 -- > ffmpeg.h | 2 ++ > ffmpeg_opt.c | 16 +++- > 3 files changed, 21 insertions(+), 3 deletions(-) applied thx [...] -- 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 01/13] aarch64: vp9: use alternative returns in the core loop filter function
On Tue, Jan 10, 2017 at 12:15:07AM +0200, Martin Storsjö wrote: > From: Janne Grunau > > Since aarch64 has enough free general purpose registers use them to > branch to the appropiate storage code. 1-2 cycles faster for the > functions using loop_filter 8/16, ... on a cortex-a53. Mixed results > (up to 2 cycles faster/slower) on a cortex-a57. > > This is cherrypicked from libav commit > d7595de0b25e7064fd9e06dea5d0425536cef6dc. > --- > libavcodec/aarch64/vp9lpf_neon.S | 48 > +++- > 1 file changed, 18 insertions(+), 30 deletions(-) patchset applied [...] -- 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] [FFmpeg-cvslog] ffmpeg: Add -time_base option to hint the time base
On Sat, Jan 14, 2017 at 08:04:48PM +0100, Michael Bradshaw wrote: > ffmpeg | branch: master | Michael Bradshaw | Tue Dec 27 > 22:05:35 2016 -0800| [3ac46a0a62386a52e38c066379ff36b5038dd4d0] | committer: > Michael Niedermayer > > ffmpeg: Add -time_base option to hint the time base > > Signed-off-by: Michael Bradshaw > Signed-off-by: Michael Niedermayer > erm. We have at least a codec option with that same name. How much does it conflict with this? Can we have some FATE test too? We have a lot of nasty hack wrt time bases, and it's likely to break in a merge. -- Clément B. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] AVFilter for watermarking DCTELEM MPEG2 blocks
On Sun, Jan 15, 2017 at 01:15:59 +0800, Jesse Liu wrote: > hello royger! > > I’d love to read the realize of the AVFilter for watermarking DCTELEM MPEG2 > blocks source, how can I get the code, thanks a lot! Since Roger Pau Monné may not be on the mailing list anymore, you would need to mail him directly. But, alas, I have found his patch (which isn't available on the mailing list archives anymore) with archive.org: http://web.archive.org/web/2011081636/http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101117/97aaa245/attachment.obj Good luck applying it to current ffmpeg. ;-) Cheers, Moritz ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [FFmpeg-cvslog] ffmpeg: Add -time_base option to hint the time base
On Sat, Jan 14, 2017 at 1:12 PM, Clément Bœsch wrote: > > erm. We have at least a codec option with that same name. How much does it > conflict with this? > The only use of a "time_base" option I'm aware of is in buffer/abuffer in libavfilter. Is there another one somewhere else? Can we have some FATE test too? We have a lot of nasty hack wrt time > bases, and it's likely to break in a merge. I'll work on adding a fate test. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [FFmpeg-cvslog] ffmpeg: Add -time_base option to hint the time base
On Sat, Jan 14, 2017 at 01:46:02PM -0800, Michael Bradshaw wrote: > On Sat, Jan 14, 2017 at 1:12 PM, Clément Bœsch wrote: > > > > erm. We have at least a codec option with that same name. How much does it > > conflict with this? > > > > The only use of a "time_base" option I'm aware of is in buffer/abuffer in > libavfilter. Is there another one somewhere else? > libavcodec/options_table.h:{"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, INT_MAX}, -- Clément B. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] AVFilter for watermarking DCTELEM MPEG2 blocks
Hi, Moritz. It’s great help for me, thanks a lot ! > On 15 Jan 2017, at 5:16 AM, Moritz Barsnick wrote: > > On Sun, Jan 15, 2017 at 01:15:59 +0800, Jesse Liu wrote: >> hello royger! >> >> I’d love to read the realize of the AVFilter for watermarking DCTELEM MPEG2 >> blocks source, how can I get the code, thanks a lot! > > Since Roger Pau Monné may not be on the mailing list anymore, you would > need to mail him directly. But, alas, I have found his patch (which > isn't available on the mailing list archives anymore) with archive.org: > > http://web.archive.org/web/2011081636/http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101117/97aaa245/attachment.obj > > Good luck applying it to current ffmpeg. ;-) > > Cheers, > Moritz > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel