[vlc-devel] Deinterlacer TODO / updated

Juha Jeronen juha.jeronen at jyu.fi
Mon Apr 18 11:04:23 CEST 2011

Hi all,

Now that Phosphor and IVTC are functional and merged, it's time to
update the plan again.


- Completed items removed.
- The big refactoring is now up next, as was discussed. There are no
changes in the refactoring plan itself.
- Finishing X (2x) added to the plan.
- The item on updating the docs is now more detailed.

Deinterlacer TODO / JJ:

1) Refactor deinterlace.c:
  - Make a subdirectory (in video_filter), move deinterlace.c there
  - Update Modules.am
  - Keep general stuff in deinterlace.c
  - Keep general-use data in filter_sys_t
  - Move filter_sys_t to header
  - Move each algorithm into its own file
  - Move general-use helper functions into one file
  - Move private data into private structs; add init/uninit API
  - Use an enum instead of a bunch of #defines for the modes.
  - In all modes, loop over y instead of p_out.
  - Use the new helper function (PlaneToFieldPlane()) where possible.
This applies at least to Bob, Linear and Discard.
  - Make a field/plane merge helper function and use it in all
modes/functions that can be simplified using one. At least
ComposeFrame() and Linear would benefit, and maybe also Mean and Blend.
  - Wrap the code to 79 columns or less.
  - Doxygenize comments.

2) Finish X (2x).
  - Format the patch for the refactored module. Make notes which parts
need to be changed to add a new algorithm (for the dev doc).
  - Benchmark to see whether the preliminary implementation is ok or if
it needs to be polished. (Mainly, find out how much slower the "keep
bottom field" version is, compared to the original "keep top field"
version, due to the last 7-line band being handled by non-MMX C code in
the modified version.)
  - Rename to something sensible. Suggestions appreciated :)

3) Update the end-user doc, and write a developer doc for the deinterlacer.

I'll use the drafts I've posted as material. The end-user doc will be
updated according to the latest posted plan for that:


The developer doc needs some expansion, as I didn't write anything about
the internals yet. The input/output docs are pretty much complete and
require just some polishing.

Input format:

(Need to add an explicit note saying that the fields should be weaved to
make a full picture, which can then be passed to the deinterlacer.
Otherwise complete?)

Output considerations:

(Need to update the part about the linked list, or just leave it out.
Also needs some polishing for wordings, clarification for the
display-hold part, and possibly other small changes. Otherwise complete.)


More information about the vlc-devel mailing list