The branch, master has been updated via 2c8a29870f1a8d5f03aad1db84cb9790c140d32e (commit) from f151c3e58644a79de7693b587e20ea33e95db0ef (commit)
- Log ----------------------------------------------------------------- commit 2c8a29870f1a8d5f03aad1db84cb9790c140d32e Author: Stefano Sabatini <stefa...@gmail.com> AuthorDate: Sun Sep 27 14:36:16 2015 +0200 Commit: Stefano Sabatini <stefa...@gmail.com> CommitDate: Tue Sep 29 09:07:43 2015 +0200 ffmpeg/web/index: add news describing GSoC 2015 program outcome Description for each project was provided by each mentor. diff --git a/src/index b/src/index index 9d12a7b..77946a4 100644 --- a/src/index +++ b/src/index @@ -37,6 +37,240 @@ News </h1> + <a id="gsoc2015_result"></a><h3>September 29th, 2015, GSoC 2015 results</h3> + + <p> + FFmpeg participated to the latest edition of + the <a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2015">Google + Summer of Code</a> Project. FFmpeg got a total of 8 assigned + projects, and 7 of them were successful. + </p> + + <p>We want to thank <a href="https://www.google.com">Google</a>, the + participating students, and especially the mentors who joined this + effort. We're looking forward to participating in the next GSoC + edition! + </p> + + <p> + Below you can find a brief description of the final outcome of + each single project. + </p> + + <h4>Basic servers for network protocols, mentee: Stephan Holljes, mentor: Nicolas George</h4> + + <p> + Stephan Holljes's project for this session of Google Summer of Code was to + implement basic HTTP server features for libavformat, to complement the + already present HTTP client and RTMP and RTSP server code. + </p> + + <p> + The first part of the project was to make the HTTP code capable of accepting + a single client; it was completed partly during the qualification period and + partly during the first week of the summer. Thanks to this work, it is now + possible to make a simple HTTP stream using the following commands: + <pre> + ffmpeg -i /dev/video0 -listen 1 -f matroska \ + -c:v libx264 -preset fast -tune zerolatency http://:8080 + ffplay http://localhost:8080/ + </pre> + </p> + + <p> + The next part of the project was to extend the code to be able to accept + several clients, simultaneously or consecutively. Since libavformat did not + have an API for that kind of task, it was necessary to design one. This part + was mostly completed before the midterm and applied shortly afterwards. + Since the ffmpeg command-line tool is not ready to serve several clients, + the test ground for that new API is an example program serving hard-coded + content. + </p> + + <p> + The last and most ambitious part of the project was to update ffserver to + make use of the new API. It would prove that the API is usable to implement + real HTTP servers, and expose the points where more control was needed. By + the end of the summer, a first working patch series was undergoing code + review. + </p> + + <h4>Browsing content on the server, mentee: Mariusz SzczepaÅczyk, mentor: Lukasz Marek</h4> + + <p> + Mariusz finished an API prepared by the FFmpeg community and implemented + Samba directory listing as qualification task. + </p> + + <p> + During the program he extended the API with the possibility to + remove and rename files on remote servers. He completed the + implementation of these features for file, Samba, SFTP, and FTP + protocols. + </p> + + <p> + At the end of the program, Mariusz provided a sketch of an + implementation for HTTP directory listening. + </p> + + <h4>Directshow digital video capture, mentee: Mate Sebok, mentor: Roger Pack</h4> + + <p> + Mate was working on directshow input from digital video sources. He + got working input from ATSC input sources, with specifiable tuner. + </p> + + <p> + The code has not been committed, but a patch of it was sent to the + ffmpeg-devel mailing list for future use. + </p> + + <p> + The mentor plans on cleaning it up and committing it, at least for the + ATSC side of things. Mate and the mentor are still working trying to + finally figure out how to get DVB working. + </p> + + <h4>Implementing full support for 3GPP Timed Text Subtitles, mentee: Niklesh Lalwani, mentor: Philip Langdale</h4> + + <p> + Niklesh's project was to expand our support for 3GPP Timed Text + subtitles. This is the native subtitle format for mp4 containers, and + is interesting because it's usually the only subtitle format supported + by the stock playback applications on iOS and Android devices. + </p> + + <p> + ffmpeg already had basic support for these subtitles which ignored all + formatting information - it just provided basic plain-text support. + </p> + + <p> + Niklesh did work to add support on both the encode and decode side for + text formatting capabilities, such as font size/colour and effects like + bold/italics, highlighting, etc. + </p> + + <p> + The main challenge here is that Timed Text handles formatting in a very + different way from most common subtitle formats. It uses a binary + encoding (based on mp4 boxes, naturally) and stores information + separately from the text itself. This requires additional work to track + which parts of the text formatting applies to, and explicitly dealing + with overlapping formatting (which other formats support but Timed + Text does not) so it requires breaking the overlapping sections into + separate non-overlapping ones with different formatting. + </p> + + <p> + Finally, Niklesh had to be careful about not trusting any size + information in the subtitles - and that's no joke: the now infamous + Android stagefright bug was in code for parsing Timed Text subtitles. + </p> + + <p> + All of Niklesh's work is committed and was released in ffmpeg 2.8. + </p> + +<h4>libswscale refactoring, mentee: Pedro Arthur, mentors: Michael Niedermayer, Ramiro Polla</h4> + + <p> + Pedro Arthur has modularized the vertical and horizontal scalers. + To do this he designed and implemented a generic filter framework + and moved the existing scaler code into it. These changes now allow + easily adding removing, splitting or merging processing steps. + The implementation was benchmarked and several alternatives were + tried to avoid speedloss. + </p> + + <p> + He also added gamma corrected scaling support. + An example to use gamma corrected scaling would be: + <pre> + ffmpeg -i input -vf scale=512:384:gamma=1 output + </pre> + </p> + + <p> + Pedro has done impressive work considering the short time available, + and he is a FFmpeg committer now. He continues to contribute to + FFmpeg, and has fixed some bugs in libswscale after GSoC has + ended. + </p> + + <h4>AAC Encoder Improvements, mentee: Rostislav Pehlivanov, mentor: Claudio Freire</h4> + + <p> + Rostislav Pehlivanov has implemented PNS, TNS, I/S coding and main + prediction on the native AAC encoder. Of all those extensions, only + TNS was left in a less-than-usable state, but the implementation has + been pushed (disabled) anyway since it's a good basis for further + improvements. + </p> + + <p> + PNS replaces noisy bands with a single scalefactor representing the + energy of that band, gaining in coding efficiency considerably, and + the quality improvements on low bitrates are impressive for such a + simple feature. + </p> + + <p> + TNS still needs some polishing, but has the potential to reduce coding + artifacts by applying noise shaping in the temporal domain (something + that is a source of annoying, notable distortion on low-entropy + bands). + </p> + + <p> + Intensity Stereo coding (I/S) can double coding efficiency by + exploiting strong correlation between stereo channels, most effective + on pop-style tracks that employ panned mixing. The technique is not as + effective on classic X-Y recordings though. + </p> + + <p> + Finally, main prediction improves coding efficiency by exploiting + correlation among successive frames. While the gains have not been + huge at this point, Rostislav has remained active even after the GSoC, + and is polishing both TNS and main prediction, as well as looking for + further improvements to make. + </p> + + <p> + In the process, the MIPS port of the encoder was broken a few times, + something he's also working to fix. + </p> + + <h4>Animated Portable Network Graphics (APNG), mentee: Donny Yang, mentor: Paul B Mahol</h4> + + <p> + Donny Yang implemented basic keyframe only APNG encoder as the + qualification task. Later he wrote interframe compression via + various blend modes. The current implementation tries all blend + modes and picks one which takes the smallest amount of memory. + </p> + + <p> + Special care was taken to make sure that the decoder plays + correctly all files found in the wild and that the encoder + produces files that can be played in browsers that support APNG. + </p> + + <p> + During his work he was tasked to fix any encountered bug in the + decoder due to the fact that it doesn't match APNG + specifications. Thanks to this work, a long standing bug in the + PNG decoder has been fixed. + </p> + + <p> + For latter work he plans to continue working on the encoder, + making it possible to select which blend modes will be used in the + encoding process. This could speed up encoding of APNG files. + </p> + <a id="pr2.8"></a><h3>September 9th, 2015, FFmpeg 2.8</h3> <p> We published release <b><a href="download.html#release_2.8">2.8</a></b> as new major version. ----------------------------------------------------------------------- Summary of changes: src/index | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) hooks/post-receive --
_______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog