[FFmpeg-devel] [PATCH][RFC] Remove mt-work directory

Alexander Strange astrange at ithinksw.com
Tue Sep 11 22:18:41 CEST 2012


On Tue, Sep 11, 2012 at 8:50 AM, Derek Buitenhuis
<derek.buitenhuis at gmail.com> wrote:
> It is all dead and rotting code.
>
> Also, move yuvcmp.c to tools. Its license is non-existent, however,
> and should be clarified.

I agree with the patch.

Any license Andreas wants to apply to yuvcmp.c is fine with me.

>
> Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> ---
>  mt-work/email.sh            |    6 ---
>  mt-work/mplayer.diff        |   13 ------
>  mt-work/raw.sh              |   10 -----
>  mt-work/test.sh             |   13 ------
>  mt-work/todo.txt            |   95 -------------------------------------------
>  mt-work/valgrind-check.sh   |    5 ---
>  {mt-work => tools}/yuvcmp.c |    0
>  7 files changed, 142 deletions(-)
>  delete mode 100644 mt-work/email.sh
>  delete mode 100644 mt-work/mplayer.diff
>  delete mode 100644 mt-work/raw.sh
>  delete mode 100644 mt-work/test.sh
>  delete mode 100644 mt-work/todo.txt
>  delete mode 100644 mt-work/valgrind-check.sh
>  rename {mt-work => tools}/yuvcmp.c (100%)
>
> diff --git a/mt-work/email.sh b/mt-work/email.sh
> deleted file mode 100644
> index e5cdb72..0000000
> --- a/mt-work/email.sh
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -#!/bin/sh -v
> -
> -# args [where to put patches] [smtp server] [destination]
> -
> -git format-patch -o "$1" --inline --subject-prefix=soc --thread origin
> -git send-email --no-chain-reply-to --smtp-server $2 --to $3 --dry-run "$1"
> diff --git a/mt-work/mplayer.diff b/mt-work/mplayer.diff
> deleted file mode 100644
> index 170b517..0000000
> --- a/mt-work/mplayer.diff
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
> -index 7c68a20..135e6b1 100644
> ---- a/libmpcodecs/vd_ffmpeg.c
> -+++ b/libmpcodecs/vd_ffmpeg.c
> -@@ -280,7 +280,7 @@ static int init(sh_video_t *sh){
> -         return 0;
> -     }
> -
> --    if(vd_use_slices && (lavc_codec->capabilities&CODEC_CAP_DRAW_HORIZ_BAND) && !do_vis_debug)
> -+    if(vd_use_slices && (lavc_codec->capabilities&CODEC_CAP_DRAW_HORIZ_BAND) && !do_vis_debug && lavc_param_threads <= 1)
> -         ctx->do_slices=1;
> -
> -     if(lavc_codec->capabilities&CODEC_CAP_DR1 && !do_vis_debug && lavc_codec->id != AV_CODEC_ID_H264 && lavc_codec->id != AV_CODEC_ID_INTERPLAY_VIDEO && lavc_codec->id != AV_CODEC_ID_ROQ && lavc_codec->id != AV_CODEC_ID_VP8 && lavc_codec->id != AV_CODEC_ID_LAGARITH)
> diff --git a/mt-work/raw.sh b/mt-work/raw.sh
> deleted file mode 100644
> index 0ced88e..0000000
> --- a/mt-work/raw.sh
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -#!/bin/bash
> -
> -fn=`basename "$1"`
> -for th in 1 4; do
> -    time ./ffmpeg_g -threads $th -skip_loop_filter all -vsync 0 -y -t 30 -i "$1" -an -f rawvideo "raw/n-$fn-$th.yuv"
> -done
> -
> -#for th in 1 4; do
> -#    time ./ffmpeg_g -threads $th -vsync 0 -y -t 30 -i "$1" -an -f rawvideo "raw/$fn-$th.yuv"
> -#done
> diff --git a/mt-work/test.sh b/mt-work/test.sh
> deleted file mode 100644
> index a88a35b..0000000
> --- a/mt-work/test.sh
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -#!/bin/bash
> -
> -fn=`basename "$1"`
> -for th in 1 2 3 4; do
> -    time ./ffmpeg_g -threads $th -flags2 +fast  -vsync 0 -y -t 30 -i "$1" -an -f framecrc "crc/$fn-$th.txt" >/dev/null 2>&1
> -done
> -
> -./ffmpeg_g -threads 1 -y -t 10 -i "$1" -an -f framecrc "crc/$fn-1-vsync.txt" >/dev/null 2>&1
> -./ffmpeg_g -threads 3 -y -t 10 -i "$1" -an -f framecrc "crc/$fn-3-vsync.txt" >/dev/null 2>&1
> -
> -md5 "crc/$fn-"[1234].txt
> -echo
> -md5 "crc/$fn-"*vsync.txt
> diff --git a/mt-work/todo.txt b/mt-work/todo.txt
> deleted file mode 100644
> index f64514f..0000000
> --- a/mt-work/todo.txt
> +++ /dev/null
> @@ -1,95 +0,0 @@
> -Todo
> -
> --- For other people
> -- Multithread vc1.
> -- Multithread an intra codec like mjpeg (trivial).
> -- Fix mpeg1 (see below).
> -- Try the first three items under Optimization.
> -- Fix h264 (see below).
> -- Try mpeg4 (see below).
> -
> --- Bug fixes
> -
> -General critical:
> -- Error resilience has to run before ff_report_frame_progress()
> -is called. Otherwise there will be race conditions. (This might already
> -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:
> -- Files that aren't parsed (e.g. mp4) and contain PAFF with two
> -field pictures in the same packet are not optimal. Modify the
> -nals_needed check so that the second field's first slice is
> -considered as needed, then uncomment the FIXME code in decode_postinit.
> -Ex: http://astrange.ithinksw.net/ffmpeg/mt-samples/PAFF-Chalet-Tire.mp4
> -
> -mpeg4:
> -- Packed B-frames need to be explicitly split up
> -when frame threading is on. It's not very fast
> -without this.
> -- The buffer age optimization is disabled due to
> -the way buffers are allocated across threads. The
> -branch 'fix_buffer_age' has an attempt to fix it
> -which breaks ffplay.
> -- Support interlaced.
> -
> -mpeg1/2:
> -- Seeking always prints "first frame not a keyframe"
> -with threads on. Currently disabled for this reason.
> -
> --- Prove correct
> -
> -- decode_update_progress() in h264.c
> -race_checking branch has some work on h264,
> -but not that function. It might be worth putting
> -the branch under #ifdef DEBUG in mainline, but
> -the code would have to be cleaner.
> -- MPV_lowest_referenced_row() and co in mpegvideo.c
> -- Same in vp3.
> -
> --- 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
> -because draw_edges() writes into the other field's
> -thread's pixels. Needs an option to skip T/B fields.
> -- Check update_thread_context() functions and make
> -sure they only copy what they need to.
> -- Try some more optimization of the "ref < 48; ref++"
> -loop in h264.c await_references(), try turning the list0/list1 check
> -above into a loop without being slower.
> -- Support frame+slice threading at the same time
> -by assigning slice_count threads for frame threads
> -to use with execute(). This is simpler but unbalanced
> -if only one frame thread uses any.
> -
> --- Features
> -
> -- Support streams with width/height changing. This
> -requires flushing all current frames (and buffering
> -the input in the meantime), closing the codec and
> -reopening it. Or don't support it.
> -- Support encoding. Might need more threading primitives
> -for good ratecontrol; would be nice for audio and libavfilter too.
> -- Async decoding part 1: instead of trying to
> -start every thread at the beginning, return a picture
> -if the earliest thread is already done, but don't wait
> -for it. Not sure what effect this would have.
> -- Part 2: have an API that doesn't wait for the decoding
> -thread, only returns EAGAIN if it's not ready. What will
> -it do with the next input packet if it returns that?
> -- Have an API that returns finished pictures but doesn't
> -require sending new ones. Maybe allow NULL avpkt when
> -not at the end of the stream.
> -
> --- Samples
> -
> -http://astrange.ithinksw.net/ffmpeg/mt-samples/
> -
> -See yuvcmp.c in this directory to compare decoded samples.
> -
> -For debugging, try commenting out ff_thread_finish_setup calls so
> -that only one thread runs at once, and then binary search+
> -scatter printfs to look for differences in codec contexts.
> diff --git a/mt-work/valgrind-check.sh b/mt-work/valgrind-check.sh
> deleted file mode 100644
> index 276327a..0000000
> --- a/mt-work/valgrind-check.sh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#!/bin/bash
> -
> -valgrind --track-origins=yes --leak-check=full ./ffmpeg_g -threads 1 -vsync 0 -y -t 30 -i "$1" -an -f null /dev/null
> -
> -valgrind --track-origins=yes --leak-check=full ./ffmpeg_g -threads 3 -vsync 0 -y -t 30 -i "$1" -an -f null /dev/null
> diff --git a/mt-work/yuvcmp.c b/tools/yuvcmp.c
> similarity index 100%
> rename from mt-work/yuvcmp.c
> rename to tools/yuvcmp.c
> --
> 1.7.9.5
>


More information about the ffmpeg-devel mailing list