Re: [FFmpeg-devel] Areas needing work
On Mon, Apr 06, 2015 at 04:48:24PM +, Timothy Gu wrote: On Sun, Apr 5, 2015 at 8:43 PM Michael Niedermayer michae...@gmx.at wrote: [...] * our fate server lacks the ability to display a user specified release this makes the output look quite unwieldy Timothy was working on a rewrite I haven't touched that thing in a few months but it's in a pretty good shape. With a few minor updates it should be good to go at least on fate-beta.ffmpeg.org or something like that. There are still a few minor things I want to fix (like minirep/minilog, warning diff (is it really useful now since most boxes are using make -jx and testing order changes every time?), and some minor styling issue). ok, do you have your own server where i should make fate-beta.ffmpeg.org point to or its something that needs to be setup on the fate / or some other server ? [...] * Decentralize Too many things are done and admined by me, iam doing security updates to the servers, doing the git merges, maintaining all releases, maintaining half the fate clients, submitting data to coverity and doing all the crap that noone else wants to do. Does the community care so little that they want me to be a single point of failure? We need people to take some of this over at least on the basis of a backup in case iam unavailable for whatever reason, and i think it should ideally be people who do not yet have their daily work shedule overflowing with ffmpeg work but better new volunteers. - Project servers: MAINTAINERS list four people [1], one of which I have never ever seen on this list, There are mails from arpi on the list but he possibly didnt write his full name in the mails and it is not clear to me how the servers are administered (who pays for it? who has access to it? who has access to the main servers are provided by arpi fate server by baptiste coverage by ubitux hosting company's setting page?) [2] my knowledge of the hosting details is limited - Git merges: when I first came to this project merges are still called Merge from remote tracking branch 'qatar/master'. WTF is qatar? Now of course that is not a problem any more, but the merges remain undocumented on any official documentation I could find (maybe I didn't look hard enough?). If the behavior itself is not known publicly how can anyone help? They are probably undocumented on the FFmpeg side but iam not sure what to document beyond what is in the git manual page - Coverity: one can easily hook it up to a FATE box. maybe, but there are some special considerations * as many as possible features, external libs, ... have to be enabled as coverity only tests what is actually build * the authorizaton token needed to upload must never end in any vissible fate results * actally running fate isnt needed so a simple cronjob seems better suited /easier than fate but if you want to take coverity build/uploads over i can provide you with the details needed to upload and what is currently enabled (i dont want to loose testing for (m)any components) [1]: https://github.com/FFmpeg/FFmpeg/blob/master/MAINTAINERS#L48 [2]: Yes I guess I can ask on IRC or whatever but I am lazy, and I know that there are people lazier than me. If it is so hard to find out how to *volunteer* I would not imagine many people trying to volunteer. But anyway, I can volunteer to take over coverage.ffmpeg.org. But again who should I find to discuss this thing in detail? Michael? Clément? I don't know. coverage is 100% Cléments area, i dont know if he wants/needs any volunteers for it Also a news article on a call for maintainers would be beneficial (?). yes but the last one was not too effective, so maybe someone else should write that [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB No great genius has ever existed without some touch of madness. -- Aristotle signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] lavf: Add support for WebM Live Muxing
On Sat, Apr 4, 2015 at 3:38 PM, Michael Niedermayer michae...@gmx.at wrote: On Mon, Mar 30, 2015 at 02:46:10PM -0700, Vignesh Venkatasubramanian wrote: This patch adds support for WebM Live Muxing by adding a new WebM Chunk muxer. It writes out live WebM Chunks which can be used for playback using Live DASH Clients. Please see muxers.texi for sample usage. [...] diff --git a/libavformat/version.h b/libavformat/version.h index a183d7f..ff85227 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -30,7 +30,7 @@ #include libavutil/version.h #define LIBAVFORMAT_VERSION_MAJOR 56 -#define LIBAVFORMAT_VERSION_MINOR 26 +#define LIBAVFORMAT_VERSION_MINOR 27 #define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ diff --git a/libavformat/webm_chunk.c b/libavformat/webm_chunk.c new file mode 100644 index 000..48ea6f0 --- /dev/null +++ b/libavformat/webm_chunk.c @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2015, Vignesh Venkatasubramanian + * + * 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 WebM Chunk Muxer + * The chunk muxer enables writing WebM Live chunks where there is a header + * chunk, followed by data chunks where each Cluster is written out as a Chunk. + */ + +#include float.h +#include time.h + +#include avformat.h +#include avio.h +#include internal.h + +#include libavutil/avassert.h +#include libavutil/log.h +#include libavutil/opt.h +#include libavutil/avstring.h +#include libavutil/parseutils.h +#include libavutil/mathematics.h +#include libavutil/time.h +#include libavutil/time_internal.h +#include libavutil/timestamp.h + +typedef struct WebMChunkContext { +const AVClass *class; +int chunk_start_index; +char *header_filename; +int chunk_duration; +int chunk_count; +int chunk_index; +uint64_t duration_written; +int prev_pts; +AVOutputFormat *oformat; +AVFormatContext *avf; +} WebMChunkContext; + +static int chunk_mux_init(AVFormatContext *s) +{ +WebMChunkContext *wc = s-priv_data; +AVFormatContext *oc; +int ret; + +ret = avformat_alloc_output_context2(wc-avf, wc-oformat, NULL, NULL); +if (ret 0) +return ret; +oc = wc-avf; + +oc-interrupt_callback = s-interrupt_callback; +oc-max_delay = s-max_delay; +av_dict_copy(oc-metadata, s-metadata, 0); + +oc-priv_data = av_mallocz(oc-oformat-priv_data_size); +if (!oc-priv_data) { +avio_close(oc-pb); +return AVERROR(ENOMEM); +} +*(const AVClass**)oc-priv_data = oc-oformat-priv_class; +av_opt_set_defaults(oc-priv_data); +av_opt_set_int(oc-priv_data, dash, 1, 0); +av_opt_set_int(oc-priv_data, cluster_time_limit, wc-chunk_duration, 0); +av_opt_set_int(oc-priv_data, live, 1, 0); + +oc-streams = s-streams; +oc-nb_streams = s-nb_streams; why doesnt the code use avformat_new_stream() and avcodec_copy_context() see hlsenc/segment muxers for examples or is there a reason why this would not work or be hard ? it seems unnecessary to make a copy of the stream and codec context when it can be used safely within this file without duplication. is there something wrong with that line of thought? [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Concerning the gods, I have no means of knowing whether they exist or not or of what sort they may be, because of the obscurity of the subject, and the brevity of human life -- Protagoras ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel -- Vignesh ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] Areas needing work
On 4/6/2015 4:43 AM, Michael Niedermayer wrote: * Post merge reviewcleanup, changes merged from libav would benefit from people reviewing and MUCH MUCH more importantly also people actually caring about and taking responsibility not just dumping comments with the idea someone will fix it. Ideally each area would have a maintainer who takes care of it and keeps it in good nick. How would this actually work? Sit around and wait for merge commits and look at them? I sometimes do, but most of the commits that are merged are pretty boring stuff, and I tend not to read them. * fate clients we lack a armcc test, a real android test someone should take over haiku and sunos/solaris fate clients, my haiku VM just keeps crashing Is there a wiki somewhere of stuff that needs to be tested? I shut down all my FATE instances 2 weeks ago for maintenance, but will be bringing them + more back up. * our fate server lacks the ability to display a user specified release this makes the output look quite unwieldy Timothy was working on a rewrite [...] * Paid maintainers a big problem is that we have areas in the codebase that have no maintainr or rather noone with sufficient time+will+abilty. It would help tremendiusly if maintainers could work full time on maintaining code instead of just a few hours in their free time Where exactly would the money come from? Most, if not all of us have day jobs, and/or are students. * ffserver lacks a regression test code that is not tested will accumulate bugs. period there are people who use ffserver, they clearly like the lack of regression tests it seems as noone finds the need to look into changing that. Drop ffserver. It is crap, and I have been saying this for years. It has no legitimate use cases as far as I am concerned. * more people should help on https://trac.ffmpeg.org, like check that tickets contain all information needed to reproduce and ask the reporter to provide missing information, check if things are regressions, if they can be reproduced, bisect regressions or ask the reporter to bisect and help him if needed close tickets where there is not enough information to reproduce and the reporter doesnt react for months. ATM carl does all that and more but iam sure he wouldnt mind if more people would help him I can only speak for myself and a couple others, but we stay well away from the bug tracker because we cannot stand a certain prolific person there. * Stipends and Sponsorship programs We do not have enough funds for basic things, for example OPW/Outreachy is twice a year and to participate we have to pay at least one stipend (about 6.5k USD). We participated in december 2014 and it allowed us to convert all remaining libmpcodecs filters to the native system. resulted in multiple new video filters and several block ciphers which are faster then all other tested implementations. For may 2015 we only way after the last minute managed to secure some funding so we are short of applicants now as for a long time ffmpeg was not listed as a participating org. And we have a bunch of massive failures too. I'm not 100% certain it's even worth it. Not that we have been accepted in GSoC it seems like a better route, financially, for attracting new people. Or, you know, people could contribute without cash incentives - but I guess that concept is lost nowadays? :/ * Decentralize Too many things are done and admined by me, iam doing security updates to the servers, doing the git merges, maintaining all releases, maintaining half the fate clients, submitting data to coverity and doing all the crap that noone else wants to do. It's not really documented all the stuff which needs to be done, such as server updates, or who handles them and pay, etc. Basically what Timothy said. Does the community care so little that they want me to be a single point of failure? Nobody wants that. I don't recall any previous requests for help with the overhead work such as server admin though. We need people to take some of this over at least on the basis of a backup in case iam unavailable for whatever reason, and i think it should ideally be people who do not yet have their daily work shedule overflowing with ffmpeg work but better new volunteers. I don't mind pitching in a small amount, and I can do a bit during work hours perhaps (whithin sanity/reason), but I also have a busy life with travel and significant other, etc. The main problem is it is not clear where or how to go about it, or what can be volunteered. * Conferences / exhibitions, public stuff Theres a conference, linuxtag, fosdem, whatever, wherever in your local area and you think FFmpeg should be represented there ? FWIW, I attend FOSDEM and VDD representing both FFmpeg and Libav as well as $dayjob, (just to make sure everyone on every side hates me
Re: [FFmpeg-devel] [PATCH] libavformat/http.c: Make http-listen work as an input stream.
On Mon, Apr 6, 2015 at 1:47 PM, Lukasz Marek lukasz.m.lu...@gmail.com wrote: On Apr 5, 2015 6:02 PM, Stephan Holljes klaxa1...@googlemail.com wrote: With this patch http can be used to listen for POST data to be used as an input stream. Signed-off-by: Stephan Holljes klaxa1...@googlemail.com --- libavformat/http.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) This should be documented I guess. I added a short description in doc/protocols.texi. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel Now attached two patches. The first one fixes the parenthesis and the second one adds the original patch. Regards, Stephan Holljes From bbd8fc4e700968a977b30850b7be3ec39bad3531 Mon Sep 17 00:00:00 2001 From: Stephan Holljes klaxa1...@googlemail.com Date: Mon, 6 Apr 2015 20:23:01 +0200 Subject: [PATCH 2/2] libavformat/http.c: Make http-listen work as an input stream. With this patch http can be used to listen for POST data to be used as an input stream. Signed-off-by: Stephan Holljes klaxa1...@googlemail.com --- doc/protocols.texi | 4 +++- libavformat/http.c | 7 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/protocols.texi b/doc/protocols.texi index 5b7b6cf..5e9173f 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -279,7 +279,9 @@ Set initial byte offset. Try to limit the request to bytes preceding this offset. @item listen -If set to 1 enables experimental HTTP server. +If set to 1 enables experimental HTTP server. This can be used to send data when +used as an output option, or read data from a client with HTTP POST when used as +an input option. @end table @subsection HTTP Cookies diff --git a/libavformat/http.c b/libavformat/http.c index 0993546..e4acf75 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -128,13 +128,14 @@ static const AVOption options[] = { { end_offset, try to limit the request to bytes preceding this offset, OFFSET(end_off), AV_OPT_TYPE_INT64, { .i64 = 0 }, 0, INT64_MAX, D }, { method, Override the HTTP method, OFFSET(method), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, E }, { reconnect, auto reconnect after disconnect before EOF, OFFSET(reconnect), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, D }, -{ listen, listen on HTTP, OFFSET(listen), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, E }, +{ listen, listen on HTTP, OFFSET(listen), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, D | E }, { NULL } }; static int http_connect(URLContext *h, const char *path, const char *local_path, const char *hoststr, const char *auth, const char *proxyauth, int *new_location); +static int http_read_header(URLContext *h, int *new_location); void ff_http_init_auth_state(URLContext *dest, const URLContext *src) { @@ -305,7 +306,7 @@ static int http_listen(URLContext *h, const char *uri, int flags, static const char header[] = HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nTransfer-Encoding: chunked\r\n\r\n; char hostname[1024]; char lower_url[100]; -int port; +int port, new_location; av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), port, NULL, 0, uri); ff_url_join(lower_url, sizeof(lower_url), tcp, NULL, hostname, port, @@ -316,6 +317,8 @@ static int http_listen(URLContext *h, const char *uri, int flags, goto fail; if ((ret = ffurl_write(s-hd, header, strlen(header))) 0) goto fail; +if ((ret = http_read_header(h, new_location)) 0) + goto fail; return 0; fail: -- 2.3.3 From 8aedd2767d825307fc0d9f6e5b461e2ef68ebe6d Mon Sep 17 00:00:00 2001 From: Stephan Holljes klaxa1...@googlemail.com Date: Mon, 6 Apr 2015 19:26:34 +0200 Subject: [PATCH 1/2] libavformat/http.c: Fix missing parenthesis in http_listen() Signed-off-by: Stephan Holljes klaxa1...@googlemail.com --- libavformat/http.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/http.c b/libavformat/http.c index 3276737..0993546 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -311,10 +311,10 @@ static int http_listen(URLContext *h, const char *uri, int flags, ff_url_join(lower_url, sizeof(lower_url), tcp, NULL, hostname, port, NULL); av_dict_set(options, listen, 1, 0); -if (ret = ffurl_open(s-hd, lower_url, AVIO_FLAG_READ_WRITE, - h-interrupt_callback, options) 0) +if ((ret = ffurl_open(s-hd, lower_url, AVIO_FLAG_READ_WRITE, + h-interrupt_callback, options)) 0) goto fail; -if (ret = ffurl_write(s-hd, header, strlen(header)) 0) +if ((ret = ffurl_write(s-hd, header, strlen(header))) 0) goto fail; return 0; -- 2.3.3 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org
Re: [FFmpeg-devel] [PATCH] libavformat/http.c: Make http-listen work as an input stream.
On 06.04.2015 20:29, Stephan Holljes wrote: Signed-off-by: Stephan Holljesklaxa1...@googlemail.com --- doc/protocols.texi | 4 +++- libavformat/http.c | 7 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/protocols.texi b/doc/protocols.texi index 5b7b6cf..5e9173f 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -279,7 +279,9 @@ Set initial byte offset. Try to limit the request to bytes preceding this offset. @item listen -If set to 1 enables experimental HTTP server. +If set to 1 enables experimental HTTP server. This can be used to send data when +used as an output option, or read data from a client with HTTP POST when used as +an input option. @end table You can add an example, something like this: Streaming a file through network: Receiver setup: ffplay -listen 1 -i http://localhost:8181:file.mp4 Sender setup: ffmpeg -i input.mp4 -c:v copy -c:a copy http://REMOVEIP:8181/file.mp4 Nice stuff. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] libavformat/http.c: Make http-listen work as an input stream.
On Mon, Apr 06, 2015 at 08:29:42PM +0200, Stephan Holljes wrote: [...] http.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 2df39e4d329e2a1fbdb6fa4edc49ec7381ff601f 0001-libavformat-http.c-Fix-missing-parenthesis-in-http_l.patch From 8aedd2767d825307fc0d9f6e5b461e2ef68ebe6d Mon Sep 17 00:00:00 2001 From: Stephan Holljes klaxa1...@googlemail.com Date: Mon, 6 Apr 2015 19:26:34 +0200 Subject: [PATCH 1/2] libavformat/http.c: Fix missing parenthesis in http_listen() Signed-off-by: Stephan Holljes klaxa1...@googlemail.com applied thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Rewriting code that is poorly written but fully understood is good. Rewriting code that one doesnt understand is a sign that one is less smart then the original author, trying to rewrite it will not make it better. signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] Areas needing work
On Mon, Apr 06, 2015 at 07:24:35PM +0100, Derek Buitenhuis wrote: On 4/6/2015 4:43 AM, Michael Niedermayer wrote: * Post merge reviewcleanup, changes merged from libav would benefit from people reviewing and MUCH MUCH more importantly also people actually caring about and taking responsibility not just dumping comments with the idea someone will fix it. Ideally each area would have a maintainer who takes care of it and keeps it in good nick. How would this actually work? Sit around and wait for merge commits and look at them? yes in an ideal world each area would have a maintainer who would only have to review changes to his area. I sometimes do, but most of the commits that are merged are pretty boring stuff, and I tend not to read them. * fate clients we lack a armcc test, a real android test someone should take over haiku and sunos/solaris fate clients, my haiku VM just keeps crashing Is there a wiki somewhere of stuff that needs to be tested? I shut down all my FATE instances 2 weeks ago for maintenance, but will be bringing them + more back up. ive aded a link to a trac querry to https://trac.ffmpeg.org/wiki/FATE that way any ticket with keyword fateclient will be nicely vissible in the list until its closed, this should allow very easily keeping track of needed fate clients * our fate server lacks the ability to display a user specified release this makes the output look quite unwieldy Timothy was working on a rewrite [...] * Paid maintainers a big problem is that we have areas in the codebase that have no maintainr or rather noone with sufficient time+will+abilty. It would help tremendiusly if maintainers could work full time on maintaining code instead of just a few hours in their free time Where exactly would the money come from? Most, if not all of us have day jobs, and/or are students. it would require a company or NGO to fund it of course, many companies use FFmpeg and would directly benefit from improvments in FFmpeg, be that bug fixes, features or anything else. Thus there is an advantage for a company to fund a full time maintainer. Sounds crazy? well, strictly speaking we do already have paid maintainers in some areas, its just not many but iam pretty sure some people in the MAINTAINERs file keep the code in good shape officially as part of their day job, not fulltime though. [...] * Decentralize Too many things are done and admined by me, iam doing security updates to the servers, doing the git merges, maintaining all releases, maintaining half the fate clients, submitting data to coverity and doing all the crap that noone else wants to do. It's not really documented all the stuff which needs to be done, such as server updates, or who handles them and pay, etc. Basically what Timothy said. Does the community care so little that they want me to be a single point of failure? Nobody wants that. I don't recall any previous requests for help with the overhead work such as server admin though. as we already are speaking of this we need to move things to a new server (we already have one but against expectations moving things over is happening at a snails pace) ATM fate-suite and samples are on the new server, rest is still on the old. The reason for the need to move is the aging platform and potential lack of future security support for it ... maybe beastd and lou can comment on this as beastd was the one who did most of the work that was done sofar and lou seemed to be willing to help. question is do we need another volunteer to make this move happen? We need people to take some of this over at least on the basis of a backup in case iam unavailable for whatever reason, and i think it should ideally be people who do not yet have their daily work shedule overflowing with ffmpeg work but better new volunteers. I don't mind pitching in a small amount, and I can do a bit during work hours perhaps (whithin sanity/reason), but I also have a busy life with travel and significant other, etc. The main problem is it is not clear where or how to go about it, or what can be volunteered. * Conferences / exhibitions, public stuff Theres a conference, linuxtag, fosdem, whatever, wherever in your local area and you think FFmpeg should be represented there ? FWIW, I attend FOSDEM and VDD representing both FFmpeg and Libav as well as $dayjob, (just to make sure everyone on every side hates me ;)). I also talked at IBC at EBU's booth about open source media, and will be in Berlin for SMPTE's circlejerk^Wforum in May, as talking about open source media (FFmpeg especially). I'm not the only one, and I think this is pretty well covered in recent years. ok, great thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The real ebay
Re: [FFmpeg-devel] [PATCH 3/4] avcodec: add unpack packed B-frames bitstream filter
On Sun, Apr 05, 2015 at 07:15:20PM +0200, Andreas Cadhalpun wrote: On 05.04.2015 04:23, Michael Niedermayer wrote: maybe you want to add a fate test ? Sure, patch attached. i can upload a small sample to the fate samples if you have one I just created one from the sample linked in ticket #2913 (attached): $ ffmpeg -i pegasus-1958-chiptune.avi -c:v copy -map v -t 0.5 packed_bframes.avi Please add it to the mpeg4 folder in the samples directory. Best regards, Andreas fate/mpeg4.mak|3 +++ ref/fate/mpeg4-bsf-unpack-bframes |1 + 2 files changed, 4 insertions(+) dfc4d3be3c017076cf2062d11979a9bce4cc37b8 0001-fate-add-mpeg4_unpack_bframes-bsf-test.patch From c5e78ca47aed2fc94a62c0e90e798aa7425658df Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun andreas.cadhal...@googlemail.com Date: Sun, 5 Apr 2015 18:51:55 +0200 Subject: [PATCH] fate: add mpeg4_unpack_bframes bsf test 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] Areas needing work
On Mon, 6 Apr 2015 05:43:29 +0200 Michael Niedermayer michae...@gmx.at wrote: * Decentralize Too many things are done and admined by me, iam doing security updates to the servers, doing the git merges, maintaining all releases, maintaining half the fate clients, submitting data to coverity and doing all the crap that noone else wants to do. Does the community care so little that they want me to be a single point of failure? its supply and demand. the community has a supply of you maintaining the whole thing and many other devs maintaining other pieces. supply is full. it might be wise for you to take a week off every month. to allow a demand for some one to step up. or maybe i'm crazy. or maybe just take breaks from doing particular jobs like coverity or maintaining fate clients. did you already setup the fate clients so they can be logged in by another devel to maintain? by maintain i'm guessing not much is needed, maybe upgrading libs or rebooting or something? easy stuff i'm assuming. * Conferences / exhibitions, public stuff Theres a conference, linuxtag, fosdem, whatever, wherever in your local area and you think FFmpeg should be represented there ? Simple, go there and represent FFmpeg! unless you are too shy ... of course. FFmpeg is a large community of users and developers, the developers who managed the last stands/booths arent special, every FFmpeg developer and even Users who know ffmpeg a bit better who like can do this too. Also please add all conferences / exhibitions to https://trac.ffmpeg.org/wiki/Conferences we need the conferences to attract developers? doh! now you tell me. some of us may need encouragement or some kind of description of what is needed to represent a booth. whats needed, how many hours, how much $$$ for a booth at a convention, what should we bring, etc. maybe people that have been to conferences can list what goes on and what you do. maybe report how fun it is or how boring! :) -compn ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] Areas needing work
On Mon, Apr 6, 2015 at 10:42 AM Michael Niedermayer michae...@gmx.at wrote: On Mon, Apr 06, 2015 at 04:48:24PM +, Timothy Gu wrote: On Sun, Apr 5, 2015 at 8:43 PM Michael Niedermayer michae...@gmx.at wrote: [...] * our fate server lacks the ability to display a user specified release this makes the output look quite unwieldy Timothy was working on a rewrite I haven't touched that thing in a few months but it's in a pretty good shape. With a few minor updates it should be good to go at least on fate-beta.ffmpeg.org or something like that. There are still a few minor things I want to fix (like minirep/minilog, warning diff (is it really useful now since most boxes are using make -jx and testing order changes every time?), and some minor styling issue). ok, do you have your own server where i should make fate-beta.ffmpeg.org point to or its something that needs to be setup on the fate / or some other server ? I do have a server I can use for this purpose but i wonder how I am going to get the FATE data submitted by the boxes if I'm using mine… (which is another headache when writing my server) Right now I can get the data manually by wgetting files (like http://fate.ffmpeg.org/aarch64-linux-qemu-ubuntu-gcc-4.8/20150406220127/summary), but that's a pain in the ass. (Plus those files should not be public anyway.) [...] and it is not clear to me how the servers are administered (who pays for it? who has access to it? who has access to the main servers are provided by arpi You mean [git.]ffmpeg.org? I know this has been discussed before, but moving to a 3rd-party hosting service like GitHub Pages might make this significantly easier. Who knows what repos are still hosted on git.ffmpeg.org? fate server by baptiste Baptiste doesn't seem to be active these days. Should I contact him personally? [...] hosting company's setting page?) [2] my knowledge of the hosting details is limited OK - Git merges: when I first came to this project merges are still called Merge from remote tracking branch 'qatar/master'. WTF is qatar? Now of course that is not a problem any more, but the merges remain undocumented on any official documentation I could find (maybe I didn't look hard enough?). If the behavior itself is not known publicly how can anyone help? They are probably undocumented on the FFmpeg side but iam not sure what to document beyond what is in the git manual page Adding a dedicated wiki page on Libav? - Coverity: one can easily hook it up to a FATE box. maybe, but there are some special considerations * as many as possible features, external libs, ... have to be enabled as coverity only tests what is actually build [...] so a simple cronjob seems better suited /easier than fate Well that. I just mentioned FATE since compiling is a part of FATE and one can just use that to submit to Coverity. but if you want to take coverity build/uploads over i can provide you with the details needed to upload and what is currently enabled (i dont want to loose testing for (m)any components) But anyway, I can volunteer to take over coverage.ffmpeg.org. But again who should I find to discuss this thing in detail? Michael? Clément? I don't know. coverage is 100% Cléments area, i dont know if he wants/needs any volunteers for it OK. See I didn't know that. [...] Timothy ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] Error in mpegaudio_parser.c
I think this line in mpegaudio_parser.c is wrong int header_threshold = avctx-codec_id != AV_CODEC_ID_NONE avctx-codec_id != codec_id; I believe it should be... int header_threshold = avctx-codec_id != AV_CODEC_ID_NONE avctx-codec_id == codec_id; I believe the intention of the line is to skip setting the params if they were already set correctly by the container demuxer. However the current code skips the setting of the params when the codec_ids do not match rather then when they do, which is incorrect. I have a file which is an MP4 with MP2 audio. The demuxer sets the codec_id to MP3. With the current code the parser skips over setting the params and leaves the codec_id set to MP3, which is incorrect. If I make the change I suggested then it works correctly. Dan ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] avformat: Drop const qualifier to avoid compiler warning
--- libavformat/format.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/format.c b/libavformat/format.c index fa94b7d..0713849 100644 --- a/libavformat/format.c +++ b/libavformat/format.c @@ -172,7 +172,8 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, AVProbeData lpd = *pd; AVInputFormat *fmt1 = NULL, *fmt; int score, nodat = 0, score_max = 0; -const static uint8_t zerobuffer[AVPROBE_PADDING_SIZE]; +static uint8_t zerobuffer[AVPROBE_PADDING_SIZE]; + if (!lpd.buf) lpd.buf = zerobuffer; -- 1.9.1 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] lavf: Add support for WebM Live Muxing
On Mon, Apr 06, 2015 at 11:19:36AM -0700, Vignesh Venkatasubramanian wrote: On Sat, Apr 4, 2015 at 3:38 PM, Michael Niedermayer michae...@gmx.at wrote: On Mon, Mar 30, 2015 at 02:46:10PM -0700, Vignesh Venkatasubramanian wrote: This patch adds support for WebM Live Muxing by adding a new WebM Chunk muxer. It writes out live WebM Chunks which can be used for playback using Live DASH Clients. Please see muxers.texi for sample usage. [...] diff --git a/libavformat/version.h b/libavformat/version.h index a183d7f..ff85227 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -30,7 +30,7 @@ #include libavutil/version.h #define LIBAVFORMAT_VERSION_MAJOR 56 -#define LIBAVFORMAT_VERSION_MINOR 26 +#define LIBAVFORMAT_VERSION_MINOR 27 #define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ diff --git a/libavformat/webm_chunk.c b/libavformat/webm_chunk.c new file mode 100644 index 000..48ea6f0 --- /dev/null +++ b/libavformat/webm_chunk.c @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2015, Vignesh Venkatasubramanian + * + * 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 WebM Chunk Muxer + * The chunk muxer enables writing WebM Live chunks where there is a header + * chunk, followed by data chunks where each Cluster is written out as a Chunk. + */ + +#include float.h +#include time.h + +#include avformat.h +#include avio.h +#include internal.h + +#include libavutil/avassert.h +#include libavutil/log.h +#include libavutil/opt.h +#include libavutil/avstring.h +#include libavutil/parseutils.h +#include libavutil/mathematics.h +#include libavutil/time.h +#include libavutil/time_internal.h +#include libavutil/timestamp.h + +typedef struct WebMChunkContext { +const AVClass *class; +int chunk_start_index; +char *header_filename; +int chunk_duration; +int chunk_count; +int chunk_index; +uint64_t duration_written; +int prev_pts; +AVOutputFormat *oformat; +AVFormatContext *avf; +} WebMChunkContext; + +static int chunk_mux_init(AVFormatContext *s) +{ +WebMChunkContext *wc = s-priv_data; +AVFormatContext *oc; +int ret; + +ret = avformat_alloc_output_context2(wc-avf, wc-oformat, NULL, NULL); +if (ret 0) +return ret; +oc = wc-avf; + +oc-interrupt_callback = s-interrupt_callback; +oc-max_delay = s-max_delay; +av_dict_copy(oc-metadata, s-metadata, 0); + +oc-priv_data = av_mallocz(oc-oformat-priv_data_size); +if (!oc-priv_data) { +avio_close(oc-pb); +return AVERROR(ENOMEM); +} +*(const AVClass**)oc-priv_data = oc-oformat-priv_class; +av_opt_set_defaults(oc-priv_data); +av_opt_set_int(oc-priv_data, dash, 1, 0); +av_opt_set_int(oc-priv_data, cluster_time_limit, wc-chunk_duration, 0); +av_opt_set_int(oc-priv_data, live, 1, 0); + +oc-streams = s-streams; +oc-nb_streams = s-nb_streams; why doesnt the code use avformat_new_stream() and avcodec_copy_context() see hlsenc/segment muxers for examples or is there a reason why this would not work or be hard ? it seems unnecessary to make a copy of the stream and codec context when it can be used safely within this file without duplication. is there something wrong with that line of thought? well, it feels a bit odd but if you prefer it? ill push it that way Thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The misfortune of the wise is better than the prosperity of the fool. -- Epicurus signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] Areas needing work
On Mon, 06 Apr 2015 19:24:35 +0100 Derek Buitenhuis derek.buitenh...@gmail.com wrote: On 4/6/2015 4:43 AM, Michael Niedermayer wrote: * ffserver lacks a regression test code that is not tested will accumulate bugs. period there are people who use ffserver, they clearly like the lack of regression tests it seems as noone finds the need to look into changing that. Drop ffserver. It is crap, and I have been saying this for years. It has no legitimate use cases as far as I am concerned. i think we tried this a few years ago and found that we do still have ffserver users, they are just quiet until we threaten to rm it. if/when it breaks, someone will either be there to fix it or it will rot. removing it really helps no one, unless your larger goal is to seperate the project into library maint and a seperate project for tools like ffmpeg/ffserver . i'm not making the argument either way, i'm just trying to help. :) -compn ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] examples/avio_list_dir: init/deinit network
On 05.04.2015 15:42, Michael Niedermayer wrote: On Fri, Apr 03, 2015 at 11:56:03PM +0200, Lukasz Marek wrote: Signed-off-by: Lukasz Marek lukasz.m.lu...@gmail.com --- doc/examples/avio_list_dir.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) LGTM pushed ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] Areas needing work
On Sun, Apr 5, 2015 at 8:43 PM Michael Niedermayer michae...@gmx.at wrote: Hi all There are various areas in the project that are not maintained as well as they should be, heres a certainly not comlpete list, dont hesitate to reply and add to it. If someone wants to pick something up and contribute that is VERY welcome * Post merge reviewcleanup, changes merged from libav would benefit from people reviewing and MUCH MUCH more importantly also people actually caring about and taking responsibility not just dumping comments with the idea someone will fix it. Ideally each area would have a maintainer who takes care of it and keeps it in good nick. * fate clients we lack a armcc test, a real android test someone should take over haiku and sunos/solaris fate clients, my haiku VM just keeps crashing I can take care of the Haiku test if I have (access to) a better/faster computer… * our fate server lacks the ability to display a user specified release this makes the output look quite unwieldy Timothy was working on a rewrite I haven't touched that thing in a few months but it's in a pretty good shape. With a few minor updates it should be good to go at least on fate-beta.ffmpeg.org or something like that. There are still a few minor things I want to fix (like minirep/minilog, warning diff (is it really useful now since most boxes are using make -jx and testing order changes every time?), and some minor styling issue). [...] * Decentralize Too many things are done and admined by me, iam doing security updates to the servers, doing the git merges, maintaining all releases, maintaining half the fate clients, submitting data to coverity and doing all the crap that noone else wants to do. Does the community care so little that they want me to be a single point of failure? We need people to take some of this over at least on the basis of a backup in case iam unavailable for whatever reason, and i think it should ideally be people who do not yet have their daily work shedule overflowing with ffmpeg work but better new volunteers. - Project servers: MAINTAINERS list four people [1], one of which I have never ever seen on this list, and it is not clear to me how the servers are administered (who pays for it? who has access to it? who has access to the hosting company's setting page?) [2] - Git merges: when I first came to this project merges are still called Merge from remote tracking branch 'qatar/master'. WTF is qatar? Now of course that is not a problem any more, but the merges remain undocumented on any official documentation I could find (maybe I didn't look hard enough?). If the behavior itself is not known publicly how can anyone help? - Coverity: one can easily hook it up to a FATE box. [1]: https://github.com/FFmpeg/FFmpeg/blob/master/MAINTAINERS#L48 [2]: Yes I guess I can ask on IRC or whatever but I am lazy, and I know that there are people lazier than me. If it is so hard to find out how to *volunteer* I would not imagine many people trying to volunteer. But anyway, I can volunteer to take over coverage.ffmpeg.org. But again who should I find to discuss this thing in detail? Michael? Clément? I don't know. Also a news article on a call for maintainers would be beneficial (?). Timothy ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel