FFmpeg Code-In 2010

From MultimediaWiki
Revision as of 08:06, 3 November 2010 by Compn (talk | contribs) (→‎FTP Incoming cleanup)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 warnings1

Area: coding
Description: Fix compiler warnings 1-10 from [1]. 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

Fix 10 compiler warnings2

Area: coding
Description: Fix compiler warnings 11-20 from [2]. 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

Fix 10 compiler warnings3

Area: coding
Description: Fix compiler warnings 21-30 from [3]. 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

Fix 10 compiler warnings4

Area: coding
Description: Fix compiler warnings 31-40 from [4]. 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

Fix 10 compiler warnings5

Area: coding
Description: Fix compiler warnings 41-50 from [5]. 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

Fix 10 compiler warnings6

Area: coding
Description: Fix compiler warnings 51-60 from [6]. 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

Fix 10 compiler warnings7

Area: coding
Description: Fix compiler warnings 61-70 from [7]. 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

Fix 10 compiler warnings8

Area: coding
Description: Fix compiler warnings 71-80 from [8]. 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

Fix 10 compiler warnings9

Area: coding
Description: Fix compiler warnings 81-90 from [9]. 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

Fix 10 compiler warnings10

Area: coding
Description: Fix compiler warnings 91-100 from [10]. 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

Fix 10 compiler warnings11

Area: coding
Description: Fix compiler warnings 101-110 from [11]. 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

Fix 10 compiler warnings12

Area: coding
Description: Fix compiler warnings 111-120 from [12]. 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

Fix 10 compiler warnings13

Area: coding
Description: Fix compiler warnings 121-130 from [13]. 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

Fix 10 compiler warnings14

Area: coding
Description: Fix compiler warnings 131-140 from [14]. 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

Fix 10 compiler warnings15

Area: coding
Description: Fix compiler warnings 141-150 from [15]. 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

Fix 10 compiler warnings16

Area: coding
Description: Fix compiler warnings 151-160 from [16]. 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

Fix 10 compiler warnings17

Area: coding
Description: Fix compiler warnings 161-170 from [17]. 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

Fix 10 compiler warnings18

Area: coding
Description: Fix compiler warnings 171-180 from [18]. 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

Fix 10 compiler warnings19

Area: coding
Description: Fix compiler warnings 181-190 from [19]. 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

Fix 10 compiler warnings20

Area: coding
Description: Fix compiler warnings 191-200 from [20]. 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

Fix 10 compiler warnings21

Area: coding
Description: Fix compiler warnings 201-210 from [21]. 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

Fix 10 compiler warnings22

Area: coding
Description: Fix compiler warnings 211-220 from [22]. 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

Fix 10 compiler warnings23

Area: coding
Description: Fix compiler warnings 221-230 from [23]. 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

Fix 10 compiler warnings24

Area: coding
Description: Fix compiler warnings 231-240 from [24]. 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

Fix 10 compiler warnings25

Area: coding
Description: Fix compiler warnings 241-250 from [25]. 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

Fix 10 compiler warnings26

Area: coding
Description: Fix compiler warnings 251-260 from [26]. 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

Fix 10 compiler warnings27

Area: coding
Description: Fix compiler warnings 261-270 from [27]. 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

Fix 10 compiler warnings28

Area: coding
Description: Fix compiler warnings 271-280 from [28]. 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

Fix 10 compiler warnings29

Area: coding
Description: Fix compiler warnings 281-290 from [29]. 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

Fix 10 compiler warnings30

Area: coding
Description: Fix compiler warnings 291-300 from [30]. 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

Fix 10 compiler warnings31

Area: coding
Description: Fix compiler warnings 300-306 from [31]. 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)

  • Create a video of how to use Eclipse with FFmpeg
  • Create a video of how to use KDevelop with FFMpeg
  • Create a video of how to add a decoder
  • Create a video of how to add a demuxer
  • Create a video of how to fix a segfault

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.

Per-element documentation

We need a separate section in the docs for codec, bitstream filters, formats, and one for the swscale options.

This should be done possibly following the model of protocols.texi/filters.texi.

For what regards codecs and muxers/demuxers, there should be a general section explaining the meaning of the common options, and one section for each element when the meaning of the parameter is not immediate (e.g. for each encoder the meaning of "quality" may vary) and where there are per-codec specific options (as recently added).

The section on swscale (swscale.texi?) should explain the libswscale options.

Finally ffmpeg-doc.texi should be cleaned up once the per-element documentation has itw own place in a dedicated file.

FFserver documentation

FFserver documentation need a thorough cleanup, in particular it needs more complete documentation and all the options currently listed in ffserver.conf should be documented in ffserver-doc.texi.

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, and searching roundup and bugzilla).

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