FFmpeg Code-In 2010

From MultimediaWiki
Revision as of 08:27, 29 October 2010 by Multimedia Mike (talk | contribs) (→‎Automated Testing: description)
Jump to navigation Jump to search

Initial draft page


Coding Proposals

FFmpeg has always been all about code and code quality, we have plenty of Interesting Patches waiting to be cleaned and committed and lots of Small FFmpeg Tasks waiting for someone willing to pick them up. Also dont forget to read our coding rules and our patch checklist. All patches submitted must conform to them.

CDXL decoder

Area: coding
Description: CDXL is a simple Amiga-style video codec. Codec documentation here, issue tracker entry here. See small task description: Small_FFmpeg_Tasks#CDXL_decoder. Any video codec is a little bit complex. However, compared to any other video codec (e.g. H264), this one is an incredibly easy video codec, so this should be a fun task.
Outcome: a video decoder that can decode samples from here. The patch should pass review on ffmpeg-devel@mplayerhq.hu
Difficulty: hard
Time: up to a week
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu (for starter questions) and ffmpeg-devel@mplayerhq.hu (for code review)
Mentor: Ronald S. Bultje (IRC nick: BBB)

Metal Gear Solid VP3 demuxer

Area: coding
Description: Metal Gear Solid 3 is a GameCube game, media files can be extracted to view video content. Codec documentation here. See small task description: Small_FFmpeg_Tasks#Metal_Gear_Solid_Video_format_demuxer
Outcome: a video demuxer so we can (using FFmpeg's built-in VP3 decoder) play samples from here. The patch should pass review on ffmpeg-devel@mplayerhq.hu
Difficulty: medium
Time: 2-3 days
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu (for starter questions) and ffmpeg-devel@mplayerhq.hu (for code review)
Mentor: Ronald S. Bultje (IRC nick: BBB)

Fix 10 compiler warnings

Area: coding
Description: Fix 10 compiler warnings generated by compiling ffmpeg with default options. Note the code must not become less readable nor slower.
Outcome: Post a patch to ffmpeg-dev that passes review
Difficulty: Depends on your C skillz
Time: Depends on your C skillz
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-devel@mplayerhq.hu
Mentor: Michael

Code samples

In between Documentation and coding. Sample code in FFmpeg is in a quite sorry state. Writing better and more various example should improve people understanding of the library.

Developer documentation and tutorial videos

Create some tutorial videos to get a quick start with developing FFmpeg.

Area: Developer documentation
Difficulty: medium
Time: 2-3 days
IRC: #ffmpeg-devel on Freenode
Mentor: Benjamin Larsson (IRC nick: merbanan alt merbzt)

Documentation and Outreach

FFmpeg needs better documentation and is next to unknown to the general public. This section should hold proposals on how to improve the overall perception and experience of non coding users.

FFmpeg video tutorials

Prepare a set of video tutorials on how to encode targeting different devices.

  • How to encode for your iPod
  • How to encode for your Android device
  • How to encode to archive your footage for further editing

...

FTP Incoming cleanup

We have a incoming directory on FTP where users upload small bits of files that ffmpeg fails with in some way. This directory has over the years become filled with all kinds of things noone knows what they are or why they are there. The tasks below each contain about 50 files that you should figure out where they belong to (that involves searching for matching .txt files on ftp, searching with google, searching IRC logs, searching mailing list archives).

Incoming1

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters a,c and K belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming2

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters A,b and 1 belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming3

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters h,C and P belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming4

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters f,D and 8 belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming5

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters d,e,l and B belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming6

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters m and k belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming7

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters s,r and W belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming8

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters I,t,T,u,U,v,V,w,x and z belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming9

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters M,n,N,o,p,j,q,R and S belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Incoming10

Area: Q&A
Description: Cleanup about 50 files in FTP incoming
Outcome: Post a list to our mailinglist that says exactly where each of the files starting with letters y,[,0,2,3,4,E,F,g,G,H,i and L belong to. (links to mailinglist or bugtracker or irclog + date), also once this list is approved you will have to post replies to the bugtracker or mailinglist each to say where each file was moved to
Difficulty: easy
Time: a few hours
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined, hopefully attila

Research

Forks

Area: Research
Description: Making a list of all ffmpeg forks and lists of the differences in claimed features, this is usefull for us to keep track of things and usefull when someone has time to merge things back.
Outcome: List on the multimedia wiki all ffmpeg forks, the urls of their source code repo, feature lists, upon which ffmpeg version each fork is based, homepage url of fork, any links to patches, mailinglist discussions about merging changes back you can find
Difficulty: easy
Time: a few days
IRC: #ffmpeg-devel on Freenode
Mailinglist: ffmpeg-soc@mplayerhq.hu
Mentor: To be determined

Automated Testing

Area: Automated Testing Description: FFmpeg uses an extensive, custom framework for automated testing. However, it does not yet cover all of FFmpeg's functionality. Outcome: Use code coverage tools to identify which parts of the codebase are not yet covered by the automated testing system and write tests to cover those missing parts. Difficulty: easy
Time: a few days
IRC: #ffmpeg-devel on Freenode Mailinglist: ffmpeg-soc@mplayerhq.hu Mentor: Mike Melanson