@ -2,7 +2,7 @@ Todo
-- For other people
-- For other people
- Multithread vp8 or vc1.
- Multithread vp8 or vc1.
- Multithread an intra codec like mjpeg.
- Multithread an intra codec like mjpeg (trivial) .
- Fix mpeg1 (see below).
- Fix mpeg1 (see below).
- Try the first three items under Optimization.
- Try the first three items under Optimization.
- Fix h264 (see below).
- Fix h264 (see below).
@ -14,6 +14,8 @@ General critical:
- Error resilience has to run before ff_report_frame_progress()
- Error resilience has to run before ff_report_frame_progress()
is called. Otherwise there will be race conditions. (This might already
is called. Otherwise there will be race conditions. (This might already
work.) In general testing error paths should be done more.
work.) In general testing error paths should be done more.
- 'make fate THREADS=2' doesn't pass. Most failures are due to
bugs in vsync in ffmpeg.c, which are currently obscuring real failures.
h264:
h264:
- Files split at the wrong NAL unit don't (and can't)
- Files split at the wrong NAL unit don't (and can't)
@ -39,7 +41,7 @@ with threads on. Currently disabled for this reason.
-- Prove correct
-- Prove correct
- decode_update_progress() in h264.c
- decode_update_progress() in h264.c
h264_ race_checking branch has some work on h264,
race_checking branch has some work on h264,
but not that function. It might be worth putting
but not that function. It might be worth putting
the branch under #ifdef DEBUG in mainline, but
the branch under #ifdef DEBUG in mainline, but
the code would have to be cleaner.
the code would have to be cleaner.
@ -48,9 +50,11 @@ the code would have to be cleaner.
-- Optimization
-- Optimization
- Merge h264 decode_update_progress() with loop_filter().
Add CODEC_CAP_DRAW_HORIZ_BAND as a side effect.
- EMU_EDGE is always set for h264 PAFF+MT
- EMU_EDGE is always set for h264 PAFF+MT
because draw_edges() writes into the other field's
because draw_edges() writes into the other field's
thread's pixels.
thread's pixels. Needs an option to skip T/B fields.
- Check update_thread_context() functions and make
- Check update_thread_context() functions and make
sure they only copy what they need to.
sure they only copy what they need to.
- Try some more optimization of the "ref < 48; ref++"
- Try some more optimization of the "ref < 48; ref++"