<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.video.ffmpeg.devel">
    <title>gmane.comp.video.ffmpeg.devel</title>
    <link>http://blog.gmane.org/gmane.comp.video.ffmpeg.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145218"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145217"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145216"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145215"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145214"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145213"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145212"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145211"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145210"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145209"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145208"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145207"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145206"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145205"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145204"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145203"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145202"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145201"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145200"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145199"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145218">
    <title>Re: Patch: add AVOption for extra video descriptorsin MPEGTS PMT</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145218</link>
    <description>&lt;pre&gt;
I think required descriptors should be generated automatically
for example when the muxer would be set to a ATSC compliant mode it
should generate all stuff that is needed to be ATSC compliant.
Well or at least try to as far as its implemented ...

specifying stuff via base64 encoded options is more for free form
user data or stuff for which no existing means/API exists

[...]

&lt;/pre&gt;</description>
    <dc:creator>Michael Niedermayer</dc:creator>
    <dc:date>2012-05-25T02:53:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145217">
    <title>[PATCH] tests/lavfi: rework lavfi-regression.sh,avoid use of ffmpeg -pix_fmts</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145217</link>
    <description>&lt;pre&gt;Use lavfi-showfiltfmts for checking the format supported by the scale
filter instead. The advantage is that the scale filter may support
formats which are not supported by libswscale (namely: the pal8 format).

The new implementation is also a bit cleaner, because it doesn't depend
on the ffmpeg output.
---
 tests/lavfi-regression.sh                        |   25 ++++++++++-----------
 tests/ref/lavfi/{pixdesc =&amp;gt; pixfmts_pixdesctest} |    1 +
 2 files changed, 13 insertions(+), 13 deletions(-)
 rename tests/ref/lavfi/{pixdesc =&amp;gt; pixfmts_pixdesctest} (98%)

diff --git a/tests/lavfi-regression.sh b/tests/lavfi-regression.sh
index 4d669f2..e635079 100755
--- a/tests/lavfi-regression.sh
+++ b/tests/lavfi-regression.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -68,19 +68,24 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; do_lavfi_pixfmts(){
     filter_args=$2
 
     showfiltfmts="$target_exec $target_path/tools/lavfi-showfiltfmts"
-    exclude_fmts=${outfile}${1}_exclude_fmts
-    out_fmts=${outfile}${1}_out_fmts
+    scale_exclude_fmts=${outfile}${1}_scale_exclude_fmts
+    scale_in_fmts=${outfile}${1}_scale_in_fmts
+    scale_out_fmts=${outfile}${1}_scale_out_fmts
+    in_fmts=${outfile}${1}_in_fmts
 
     # exclude pixel formats which are not supported as input
-    $avconv -pix_fmts list 2&amp;gt;/dev/null | sed -ne '9,$p' | grep '^\..\.' | cut -d' ' -f2 | sort &amp;gt;$exclude_fmts
-    $showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ fmt=substr($3, 5); print fmt }' | sort | comm -23 - $exclude_fmts &amp;gt;$out_fmts
+    $showfiltfmts scale | awk -F '[ \r]' '/^INPUT/{ fmt=substr($3, 5); print fmt }' | sort &amp;gt;$scale_in_fmts
+    $showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ fmt=substr($3, 5); print fmt }' | sort &amp;gt;$scale_out_fmts
+    comm -12 $scale_in_fmts $scale_out_fmts &amp;gt;$scale_exclude_fmts
+
+    $showfiltfmts $filter | awk -F '[ \r]' '/^INPUT/{ fmt=substr($3, 5); print fmt }' | sort &amp;gt;$in_fmts
+    pix_fmts=$(comm -12 $scale_exclude_fmts $in_fmts)
 
-    pix_fmts=$($showfiltfmts $filter $filter_args | awk -F '[ \r]' '/^INPUT/{ fmt=substr($3, 5); print fmt }' | sort | comm -12 - $out_fmts)
     for pix_fmt in $pix_fmts; do
         do_video_filter $pix_fmt "slicify=random,format=$pix_fmt,$filter=$filter_args" -pix_fmt $pix_fmt
     done
 
-    rm $exclude_fmts $out_fmts
+    rm $in_fmts $scale_in_fmts $scale_out_fmts $scale_exclude_fmts
 }
 
 # all these filters have exactly one input and exactly one output
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -89,16 +94,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; do_lavfi_pixfmts "crop"    "100:100:100:100"
 do_lavfi_pixfmts "hflip"   ""
 do_lavfi_pixfmts "null"    ""
 do_lavfi_pixfmts "pad"     "500:400:20:20"
+do_lavfi_pixfmts "pixdesctest" ""
 do_lavfi_pixfmts "scale"   "200:100"
 do_lavfi_pixfmts "vflip"   ""
 
-if [ -n "$do_pixdesc" ]; then
-    pix_fmts="$($avconv -pix_fmts list 2&amp;gt;/dev/null | sed -ne '9,$p' | grep '^IO' | cut -d' ' -f2 | sort)"
-    for pix_fmt in $pix_fmts; do
-        do_video_filter $pix_fmt "slicify=random,format=$pix_fmt,pixdesctest" -pix_fmt $pix_fmt
-    done
-fi
-
 do_lavfi_lavd() {
     label=$1
     graph=$2
diff --git a/tests/ref/lavfi/pixdesc b/tests/ref/lavfi/pixfmts_pixdesctest
similarity index 98%
rename from tests/ref/lavfi/pixdesc
rename to tests/ref/lavfi/pixfmts_pixdesctest
index cfff332..b033d69 100644
--- a/tests/ref/lavfi/pixdesc
+++ b/tests/ref/lavfi/pixfmts_pixdesctest
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -22,6 +22,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; monob               668ebe8b8103b9046b251b2fa8a1d88f
 monow               9251497f3b0634f1165d12d5a289d943
 nv12                e0af357888584d36eec5aa0f673793ef
 nv21                9a3297f3b34baa038b1f37cb202b512f
+pal8                09b4a6a3167576627fe0540994c3eb24
 rgb0                def2717bc2208505244def3611922d05
 rgb24               b41eba9651e1b5fe386289b506188105
 rgb444be            9e89db334568c6b2e3d5d0540f4ba960
&lt;/pre&gt;</description>
    <dc:creator>Stefano Sabatini</dc:creator>
    <dc:date>2012-05-25T01:10:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145216">
    <title>Re: [PATCH] Fix warnings about int64toint32conversion</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145216</link>
    <description>&lt;pre&gt;

applied

thanks

[...]

&lt;/pre&gt;</description>
    <dc:creator>Michael Niedermayer</dc:creator>
    <dc:date>2012-05-25T00:40:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145215">
    <title>Re: Patch: add AVOption for extra video descriptors in MPEGTS PMT</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145215</link>
    <description>&lt;pre&gt;
Good point, thanks Michael.  Fixed in the attached revision.


I can probably put together some sample ATSC streams that contain the
extra descriptors that I'd like to insert.

I'm trying to implement some of the required descriptors for ATSC or
SCTE spec transport streams.
E.g.: http://www.etherguidesystems.com/Help/SDOs/atsc/semantics/descriptors/Default.aspx

This won't make the MPEGTS muxer fully ATSC/SCTE spec compliant yet
but maybe a small step in the right direction.  If it's a problem, I
can wrap the changes in ifdef, but if the option is not used it will
have zero effect on the output.

Perhaps a more robust solution would be to implement each
ATSC/SCTE/DVB optional/required descriptor as a separate option in the
MPEGTS muxer, but there are quite a few of them and this will add a
lot of options. :)

Thanks.
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 36e958f..b5e760d 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,6 +25,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "libavutil/mathematics.h"
 #include "libavutil/opt.h"
 #include "libavutil/avassert.h"
+#include "libavutil/base64.h"
 #include "libavcodec/mpegvideo.h"
 #include "avformat.h"
 #include "internal.h"
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -80,6 +81,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct MpegTSWrite {
     int m2ts_mode;
 
     int reemit_pat_pmt;
+    
+    char *extra_video_descriptors;
 } MpegTSWrite;
 
 /* a PES packet header is generated every DEFAULT_PES_HEADER_FREQ packets */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -105,6 +108,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static const AVOption options[] = {
       offsetof(MpegTSWrite, pes_payload_size), AV_OPT_TYPE_INT, {DEFAULT_PES_PAYLOAD_SIZE}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
     { "resend_headers", "Reemit PAT/PMT before writing the next packet",
       offsetof(MpegTSWrite, reemit_pat_pmt), AV_OPT_TYPE_INT, {0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
+    { "extra_video_descriptors", "BASE64 encoded string of extra video descriptor bytes",
+      offsetof(MpegTSWrite, extra_video_descriptors), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
     { NULL },
 };
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -242,7 +247,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mpegts_write_pat(AVFormatContext *s)
 
 static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
 {
-    //    MpegTSWrite *ts = s-&amp;gt;priv_data;
+    MpegTSWrite *ts = s-&amp;gt;priv_data;
     uint8_t data[1012], *q, *desc_length_ptr, *program_info_length_ptr;
     int val, stream_type, i;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -377,6 +382,23 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
                 *q++ = 'a';
                 *q++ = 'c';
             }
+            if (ts-&amp;gt;extra_video_descriptors) {
+                int evd_data_len = strlen(ts-&amp;gt;extra_video_descriptors) * 3 / 4;
+                if (evd_data_len &amp;gt; 0) {
+                    uint8_t *evd_data = av_malloc(evd_data_len);
+                    val = av_base64_decode(evd_data, ts-&amp;gt;extra_video_descriptors, evd_data_len);
+                    if (val &amp;gt; 0  &amp;amp;&amp;amp; (q + val - data &amp;lt; 1012)) {    // data[1012]
+                        memcpy(q, evd_data, val);
+                        q += val;
+                    }
+                    else if (val &amp;gt; 0)
+                        av_log(s, AV_LOG_WARNING, "extra_video_descriptors skipped to prevent buffer overflow\n");
+                    else
+                        av_log(s, AV_LOG_WARNING, "extra_video_descriptors contains invalid BASE64 data\n");
+                    
+                    av_free(evd_data);
+                }               
+            }
             break;
         }
 
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel&amp;lt; at &amp;gt;ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
&lt;/pre&gt;</description>
    <dc:creator>Jason Livingston</dc:creator>
    <dc:date>2012-05-25T00:02:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145214">
    <title>Re: [PATCH] lavfi/aresample: print channel layoutsand formats along with the rate.</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145214</link>
    <description>&lt;pre&gt;
LGTM

[...]
&lt;/pre&gt;</description>
    <dc:creator>Michael Niedermayer</dc:creator>
    <dc:date>2012-05-24T23:22:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145213">
    <title>Re: [PATCH] Fix warnings about int64toint32conversion</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145213</link>
    <description>&lt;pre&gt;On Mon, May 21, 2012 at 1:09 PM, Michael Bradshaw
&amp;lt;mbradshaw&amp;lt; at &amp;gt;sorensonmedia.com&amp;gt; wrote:

Ping again? I've reattached the patch.

Thanks,

Michael
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel&amp;lt; at &amp;gt;ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
&lt;/pre&gt;</description>
    <dc:creator>Michael Bradshaw</dc:creator>
    <dc:date>2012-05-24T23:23:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145212">
    <title>[PATCH] ffmpeg: use AVBPrint API for filter args.</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145212</link>
    <description>&lt;pre&gt;---
 ffmpeg.c |   70 ++++++++++++++++++++++++++++----------------------------------
 1 file changed, 32 insertions(+), 38 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index fad21c0..4a70039 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -807,20 +807,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
     AVCodecContext *codec  = ost-&amp;gt;st-&amp;gt;codec;
     AVCodecContext *icodec = ist-&amp;gt;st-&amp;gt;codec;
     char *sample_fmts, *sample_rates, *channel_layouts;
-    char args[256];
+    AVBPrint filter_args;
     int ret;
 
+    av_bprint_init(&amp;amp;filter_args, 256, 2048);
+
     avfilter_graph_free(&amp;amp;fg-&amp;gt;graph);
     if (!(fg-&amp;gt;graph = avfilter_graph_alloc()))
         return AVERROR(ENOMEM);
 
-    snprintf(args, sizeof(args), "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:"
-             "channel_layout=0x%"PRIx64, ist-&amp;gt;st-&amp;gt;time_base.num,
-             ist-&amp;gt;st-&amp;gt;time_base.den, icodec-&amp;gt;sample_rate,
-             av_get_sample_fmt_name(icodec-&amp;gt;sample_fmt), icodec-&amp;gt;channel_layout);
+    av_bprintf(&amp;amp;filter_args, "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:"
+               "channel_layout=0x%"PRIx64, ist-&amp;gt;st-&amp;gt;time_base.num,
+               ist-&amp;gt;st-&amp;gt;time_base.den, icodec-&amp;gt;sample_rate,
+               av_get_sample_fmt_name(icodec-&amp;gt;sample_fmt), icodec-&amp;gt;channel_layout);
     ret = avfilter_graph_create_filter(&amp;amp;fg-&amp;gt;inputs[0]-&amp;gt;filter,
                                        avfilter_get_by_name("abuffer"),
-                                       "src", args, NULL, fg-&amp;gt;graph);
+                                       "src", filter_args.str, NULL, fg-&amp;gt;graph);
     if (ret &amp;lt; 0)
         return ret;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -841,19 +843,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
     channel_layouts = choose_channel_layouts(ost);
     if (sample_fmts || sample_rates || channel_layouts) {
         AVFilterContext *format;
-        char args[256];
-        int len = 0;
 
-        if (sample_fmts)
-            len += snprintf(args + len, sizeof(args) - len, "sample_fmts=%s:",
-                            sample_fmts);
-        if (sample_rates)
-            len += snprintf(args + len, sizeof(args) - len, "sample_rates=%s:",
-                            sample_rates);
-        if (channel_layouts)
-            len += snprintf(args + len, sizeof(args) - len, "channel_layouts=%s:",
-                            channel_layouts);
-        args[len - 1] = 0;
+        av_bprint_clear(&amp;amp;filter_args);
+        if (sample_fmts)     av_bprintf(&amp;amp;filter_args, "sample_fmts=%s:",     sample_fmts);
+        if (sample_rates)    av_bprintf(&amp;amp;filter_args, "sample_rates=%s:",    sample_rates);
+        if (channel_layouts) av_bprintf(&amp;amp;filter_args, "channel_layouts=%s:", channel_layouts);
+        filter_args.len--;
+        filter_args.str[filter_args.len] = 0;
 
         av_freep(&amp;amp;sample_fmts);
         av_freep(&amp;amp;sample_rates);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -861,7 +857,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
 
         ret = avfilter_graph_create_filter(&amp;amp;format,
                                            avfilter_get_by_name("aformat"),
-                                           "aformat", args, NULL, fg-&amp;gt;graph);
+                                           "aformat", filter_args.str,
+                                           NULL, fg-&amp;gt;graph);
         if (ret &amp;lt; 0)
             return ret;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -872,15 +869,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
         *out_filter = format;
     }
 
-#define AUTO_INSERT_FILTER(opt_name, filter_name, arg) do {                 \
+#define AUTO_INSERT_FILTER(opt_name, filter_name) do {                      \
     AVFilterContext *filt_ctx;                                              \
                                                                             \
     av_log(NULL, AV_LOG_INFO, opt_name " is forwarded to lavfi "            \
-           "similarly to -af " filter_name "=%s.\n", arg);                  \
+           "similarly to -af " filter_name "=%s.\n", filter_args.str);      \
                                                                             \
     ret = avfilter_graph_create_filter(&amp;amp;filt_ctx,                           \
                                        avfilter_get_by_name(filter_name),   \
-                                       filter_name, arg, NULL, fg-&amp;gt;graph);  \
+                                       filter_name, filter_args.str,        \
+                                       NULL, fg-&amp;gt;graph);                    \
     if (ret &amp;lt; 0)                                                            \
         return ret;                                                         \
                                                                             \
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -892,36 +890,32 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
 } while (0)
 
     if (audio_sync_method &amp;gt; 0) {
-        char args[256] = {0};
-
-        av_strlcatf(args, sizeof(args), "min_comp=0.001:min_hard_comp=%f", audio_drift_threshold);
+        av_bprint_clear(&amp;amp;filter_args);
+        av_bprintf(&amp;amp;filter_args, "min_comp=0.001:min_hard_comp=%f", audio_drift_threshold);
         if (audio_sync_method &amp;gt; 1)
-            av_strlcatf(args, sizeof(args), ":max_soft_comp=%f", audio_sync_method/(double)icodec-&amp;gt;sample_rate);
-        AUTO_INSERT_FILTER("-async", "aresample", args);
+            av_bprintf(&amp;amp;filter_args, ":max_soft_comp=%f", audio_sync_method/(double)icodec-&amp;gt;sample_rate);
+        AUTO_INSERT_FILTER("-async", "aresample");
     }
 
     if (ost-&amp;gt;audio_channels_mapped) {
         int i;
-        AVBPrint pan_buf;
 
-        av_bprint_init(&amp;amp;pan_buf, 256, 8192);
-        av_bprintf(&amp;amp;pan_buf, "0x%"PRIx64,
+        av_bprint_clear(&amp;amp;filter_args);
+        av_bprintf(&amp;amp;filter_args, "0x%"PRIx64,
                    av_get_default_channel_layout(ost-&amp;gt;audio_channels_mapped));
         for (i = 0; i &amp;lt; ost-&amp;gt;audio_channels_mapped; i++)
             if (ost-&amp;gt;audio_channels_map[i] != -1)
-                av_bprintf(&amp;amp;pan_buf, ":c%d=c%d", i, ost-&amp;gt;audio_channels_map[i]);
-
-        AUTO_INSERT_FILTER("-map_channel", "pan", pan_buf.str);
-        av_bprint_finalize(&amp;amp;pan_buf, NULL);
+                av_bprintf(&amp;amp;filter_args, ":c%d=c%d", i, ost-&amp;gt;audio_channels_map[i]);
+        AUTO_INSERT_FILTER("-map_channel", "pan");
     }
 
     if (audio_volume != 256) {
-        char args[256];
-
-        snprintf(args, sizeof(args), "%lf", audio_volume / 256.);
-        AUTO_INSERT_FILTER("-vol", "volume", args);
+        av_bprint_clear(&amp;amp;filter_args);
+        av_bprintf(&amp;amp;filter_args, "%lf", audio_volume / 256.);
+        AUTO_INSERT_FILTER("-vol", "volume");
     }
 
+    av_bprint_finalize(&amp;amp;filter_args, NULL);
     return 0;
 }
 
&lt;/pre&gt;</description>
    <dc:creator>Clément Bœsch</dc:creator>
    <dc:date>2012-05-24T22:56:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145211">
    <title>[PATCH 4/4] ffplay: force exit when filterconfiguration fails</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145211</link>
    <description>&lt;pre&gt;Switching to visualization instead of exiting ffplay is a bit more tricky, so
just exit for now.

Fixes ticket 38.

Signed-off-by: Marton Balint &amp;lt;cus&amp;lt; at &amp;gt;passwd.hu&amp;gt;
---
 ffplay.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index 301dec6..779c879 100644
--- a/ffplay.c
+++ b/ffplay.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1839,8 +1839,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int video_thread(void *arg)
     int last_w = is-&amp;gt;video_st-&amp;gt;codec-&amp;gt;width;
     int last_h = is-&amp;gt;video_st-&amp;gt;codec-&amp;gt;height;
 
-    if ((ret = configure_video_filters(graph, is, vfilters)) &amp;lt; 0)
+    if ((ret = configure_video_filters(graph, is, vfilters)) &amp;lt; 0) {
+        SDL_Event event;
+        event.type = FF_QUIT_EVENT;
+        event.user.data1 = is;
+        SDL_PushEvent(&amp;amp;event);
         goto the_end;
+    }
     filt_out = is-&amp;gt;out_video_filter;
 #endif
 
&lt;/pre&gt;</description>
    <dc:creator>Marton Balint</dc:creator>
    <dc:date>2012-05-24T22:27:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145210">
    <title>[PATCH 3/4] ffplay: fix stream cycling if audiodecoding fails</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145210</link>
    <description>&lt;pre&gt;Fixes ticket 1161.

Signed-off-by: Marton Balint &amp;lt;cus&amp;lt; at &amp;gt;passwd.hu&amp;gt;
---
 ffplay.c |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index 6bd3460..301dec6 100644
--- a/ffplay.c
+++ b/ffplay.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -232,6 +232,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct VideoState {
 #endif
 
     int refresh;
+    int last_video_stream, last_audio_stream, last_subtitle_stream;
 } VideoState;
 
 typedef struct AllocEventProps {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2263,9 +2264,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int stream_component_open(VideoState *is, int stream_index)
     opts = filter_codec_opts(codec_opts, codec, ic, ic-&amp;gt;streams[stream_index]);
 
     switch(avctx-&amp;gt;codec_type){
-        case AVMEDIA_TYPE_AUDIO   : if(audio_codec_name   ) codec= avcodec_find_decoder_by_name(   audio_codec_name); break;
-        case AVMEDIA_TYPE_SUBTITLE: if(subtitle_codec_name) codec= avcodec_find_decoder_by_name(subtitle_codec_name); break;
-        case AVMEDIA_TYPE_VIDEO   : if(video_codec_name   ) codec= avcodec_find_decoder_by_name(   video_codec_name); break;
+        case AVMEDIA_TYPE_AUDIO   : is-&amp;gt;last_audio_stream    = stream_index; if(audio_codec_name   ) codec= avcodec_find_decoder_by_name(   audio_codec_name); break;
+        case AVMEDIA_TYPE_SUBTITLE: is-&amp;gt;last_subtitle_stream = stream_index; if(subtitle_codec_name) codec= avcodec_find_decoder_by_name(subtitle_codec_name); break;
+        case AVMEDIA_TYPE_VIDEO   : is-&amp;gt;last_video_stream    = stream_index; if(video_codec_name   ) codec= avcodec_find_decoder_by_name(   video_codec_name); break;
     }
     if (!codec)
         return -1;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2492,9 +2493,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int read_thread(void *arg)
     int orig_nb_streams;
 
     memset(st_index, -1, sizeof(st_index));
-    is-&amp;gt;video_stream = -1;
-    is-&amp;gt;audio_stream = -1;
-    is-&amp;gt;subtitle_stream = -1;
+    is-&amp;gt;last_video_stream = is-&amp;gt;video_stream = -1;
+    is-&amp;gt;last_audio_stream = is-&amp;gt;audio_stream = -1;
+    is-&amp;gt;last_subtitle_stream = is-&amp;gt;subtitle_stream = -1;
 
     ic = avformat_alloc_context();
     ic-&amp;gt;interrupt_callback.callback = decode_interrupt_cb;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2772,16 +2773,19 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void stream_cycle_channel(VideoState *is, int codec_type)
 {
     AVFormatContext *ic = is-&amp;gt;ic;
     int start_index, stream_index;
+    int old_index;
     AVStream *st;
 
-    if (codec_type == AVMEDIA_TYPE_VIDEO)
-        start_index = is-&amp;gt;video_stream;
-    else if (codec_type == AVMEDIA_TYPE_AUDIO)
-        start_index = is-&amp;gt;audio_stream;
-    else
-        start_index = is-&amp;gt;subtitle_stream;
-    if (start_index &amp;lt; (codec_type == AVMEDIA_TYPE_SUBTITLE ? -1 : 0))
-        return;
+    if (codec_type == AVMEDIA_TYPE_VIDEO) {
+        start_index = is-&amp;gt;last_video_stream;
+        old_index = is-&amp;gt;video_stream;
+    } else if (codec_type == AVMEDIA_TYPE_AUDIO) {
+        start_index = is-&amp;gt;last_audio_stream;
+        old_index = is-&amp;gt;audio_stream;
+    } else {
+        start_index = is-&amp;gt;last_subtitle_stream;
+        old_index = is-&amp;gt;subtitle_stream;
+    }
     stream_index = start_index;
     for (;;) {
         if (++stream_index &amp;gt;= is-&amp;gt;ic-&amp;gt;nb_streams)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2789,9 +2793,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void stream_cycle_channel(VideoState *is, int codec_type)
             if (codec_type == AVMEDIA_TYPE_SUBTITLE)
             {
                 stream_index = -1;
+                is-&amp;gt;last_subtitle_stream = -1;
                 goto the_end;
-            } else
-                stream_index = 0;
+            }
+            if (start_index == -1)
+                return;
+            stream_index = 0;
         }
         if (stream_index == start_index)
             return;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2813,7 +2820,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void stream_cycle_channel(VideoState *is, int codec_type)
         }
     }
  the_end:
-    stream_component_close(is, start_index);
+    stream_component_close(is, old_index);
     stream_component_open(is, stream_index);
 }
 
&lt;/pre&gt;</description>
    <dc:creator>Marton Balint</dc:creator>
    <dc:date>2012-05-24T22:27:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145209">
    <title>[PATCH 2/4] ffplay: flush codec buffers beforefreeing filters</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145209</link>
    <description>&lt;pre&gt;We do this to ensure that input_get_buffer is not called from a
frame_worker_thread of a multithreaded decoder when we already freed the
filters.

Fixes occasional segfaults on video stream change.

Signed-off-by: Marton Balint &amp;lt;cus&amp;lt; at &amp;gt;passwd.hu&amp;gt;
---
 ffplay.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index 40647ac..6bd3460 100644
--- a/ffplay.c
+++ b/ffplay.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1915,6 +1915,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int video_thread(void *arg)
             stream_toggle_pause(is);
     }
  the_end:
+    avcodec_flush_buffers(is-&amp;gt;video_st-&amp;gt;codec);
 #if CONFIG_AVFILTER
     av_freep(&amp;amp;vfilters);
     avfilter_graph_free(&amp;amp;graph);
&lt;/pre&gt;</description>
    <dc:creator>Marton Balint</dc:creator>
    <dc:date>2012-05-24T22:27:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145208">
    <title>[PATCH 1/4] ffplay: dont destroy packet queues onstream change</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145208</link>
    <description>&lt;pre&gt;This fixes occasional segfaults caused by lock request of the packet queue from
the reader thread.

Also don't allow to put frames into the queue when it's aborted, and don't try
to fill the queue with frames when it is aborted.

Signed-off-by: Marton Balint &amp;lt;cus&amp;lt; at &amp;gt;passwd.hu&amp;gt;
---
 ffplay.c |   66 +++++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index b57909b..40647ac 100644
--- a/ffplay.c
+++ b/ffplay.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -303,13 +303,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void av_noreturn exit_program(int ret)
     exit(ret);
 }
 
-static int packet_queue_put(PacketQueue *q, AVPacket *pkt)
+static int packet_queue_put_private(PacketQueue *q, AVPacket *pkt)
 {
     AVPacketList *pkt1;
 
-    /* duplicate the packet */
-    if (pkt != &amp;amp;flush_pkt &amp;amp;&amp;amp; av_dup_packet(pkt) &amp;lt; 0)
-        return -1;
+    if (q-&amp;gt;abort_request)
+       return -1;
 
     pkt1 = av_malloc(sizeof(AVPacketList));
     if (!pkt1)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -317,11 +316,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int packet_queue_put(PacketQueue *q, AVPacket *pkt)
     pkt1-&amp;gt;pkt = *pkt;
     pkt1-&amp;gt;next = NULL;
 
-
-    SDL_LockMutex(q-&amp;gt;mutex);
-
     if (!q-&amp;gt;last_pkt)
-
         q-&amp;gt;first_pkt = pkt1;
     else
         q-&amp;gt;last_pkt-&amp;gt;next = pkt1;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -330,9 +325,25 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int packet_queue_put(PacketQueue *q, AVPacket *pkt)
     q-&amp;gt;size += pkt1-&amp;gt;pkt.size + sizeof(*pkt1);
     /* XXX: should duplicate packet data in DV case */
     SDL_CondSignal(q-&amp;gt;cond);
+    return 0;
+}
+
+static int packet_queue_put(PacketQueue *q, AVPacket *pkt)
+{
+    int ret;
 
+    /* duplicate the packet */
+    if (pkt != &amp;amp;flush_pkt &amp;amp;&amp;amp; av_dup_packet(pkt) &amp;lt; 0)
+        return -1;
+
+    SDL_LockMutex(q-&amp;gt;mutex);
+    ret = packet_queue_put_private(q, pkt);
     SDL_UnlockMutex(q-&amp;gt;mutex);
-    return 0;
+
+    if (pkt != &amp;amp;flush_pkt &amp;amp;&amp;amp; ret &amp;lt; 0)
+        av_free_packet(pkt);
+
+    return ret;
 }
 
 /* packet queue handling */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -341,7 +352,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void packet_queue_init(PacketQueue *q)
     memset(q, 0, sizeof(PacketQueue));
     q-&amp;gt;mutex = SDL_CreateMutex();
     q-&amp;gt;cond = SDL_CreateCond();
-    packet_queue_put(q, &amp;amp;flush_pkt);
+    q-&amp;gt;abort_request = 1;
 }
 
 static void packet_queue_flush(PacketQueue *q)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -361,7 +372,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void packet_queue_flush(PacketQueue *q)
     SDL_UnlockMutex(q-&amp;gt;mutex);
 }
 
-static void packet_queue_end(PacketQueue *q)
+static void packet_queue_destroy(PacketQueue *q)
 {
     packet_queue_flush(q);
     SDL_DestroyMutex(q-&amp;gt;mutex);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -379,6 +390,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void packet_queue_abort(PacketQueue *q)
     SDL_UnlockMutex(q-&amp;gt;mutex);
 }
 
+static void packet_queue_start(PacketQueue *q)
+{
+    SDL_LockMutex(q-&amp;gt;mutex);
+    q-&amp;gt;abort_request = 0;
+    packet_queue_put_private(q, &amp;amp;flush_pkt);
+    SDL_UnlockMutex(q-&amp;gt;mutex);
+}
+
 /* return &amp;lt; 0 if aborted, 0 if no packet and &amp;gt; 0 if packet.  */
 static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block)
 {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -877,6 +896,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void stream_close(VideoState *is)
     is-&amp;gt;abort_request = 1;
     SDL_WaitThread(is-&amp;gt;read_tid, NULL);
     SDL_WaitThread(is-&amp;gt;refresh_tid, NULL);
+    packet_queue_destroy(&amp;amp;is-&amp;gt;videoq);
+    packet_queue_destroy(&amp;amp;is-&amp;gt;audioq);
+    packet_queue_destroy(&amp;amp;is-&amp;gt;subtitleq);
 
     /* free all pictures */
     for (i = 0; i &amp;lt; VIDEO_PICTURE_QUEUE_SIZE; i++) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2343,20 +2365,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int stream_component_open(VideoState *is, int stream_index)
         is-&amp;gt;audio_diff_threshold = 2.0 * SDL_AUDIO_BUFFER_SIZE / wanted_spec.freq;
 
         memset(&amp;amp;is-&amp;gt;audio_pkt, 0, sizeof(is-&amp;gt;audio_pkt));
-        packet_queue_init(&amp;amp;is-&amp;gt;audioq);
+        packet_queue_start(&amp;amp;is-&amp;gt;audioq);
         SDL_PauseAudio(0);
         break;
     case AVMEDIA_TYPE_VIDEO:
         is-&amp;gt;video_stream = stream_index;
         is-&amp;gt;video_st = ic-&amp;gt;streams[stream_index];
 
-        packet_queue_init(&amp;amp;is-&amp;gt;videoq);
+        packet_queue_start(&amp;amp;is-&amp;gt;videoq);
         is-&amp;gt;video_tid = SDL_CreateThread(video_thread, is);
         break;
     case AVMEDIA_TYPE_SUBTITLE:
         is-&amp;gt;subtitle_stream = stream_index;
         is-&amp;gt;subtitle_st = ic-&amp;gt;streams[stream_index];
-        packet_queue_init(&amp;amp;is-&amp;gt;subtitleq);
+        packet_queue_start(&amp;amp;is-&amp;gt;subtitleq);
 
         is-&amp;gt;subtitle_tid = SDL_CreateThread(subtitle_thread, is);
         break;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2381,7 +2403,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void stream_component_close(VideoState *is, int stream_index)
 
         SDL_CloseAudio();
 
-        packet_queue_end(&amp;amp;is-&amp;gt;audioq);
+        packet_queue_flush(&amp;amp;is-&amp;gt;audioq);
         av_free_packet(&amp;amp;is-&amp;gt;audio_pkt);
         if (is-&amp;gt;swr_ctx)
             swr_free(&amp;amp;is-&amp;gt;swr_ctx);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2407,7 +2429,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void stream_component_close(VideoState *is, int stream_index)
 
         SDL_WaitThread(is-&amp;gt;video_tid, NULL);
 
-        packet_queue_end(&amp;amp;is-&amp;gt;videoq);
+        packet_queue_flush(&amp;amp;is-&amp;gt;videoq);
         break;
     case AVMEDIA_TYPE_SUBTITLE:
         packet_queue_abort(&amp;amp;is-&amp;gt;subtitleq);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2422,7 +2444,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void stream_component_close(VideoState *is, int stream_index)
 
         SDL_WaitThread(is-&amp;gt;subtitle_tid, NULL);
 
-        packet_queue_end(&amp;amp;is-&amp;gt;subtitleq);
+        packet_queue_flush(&amp;amp;is-&amp;gt;subtitleq);
         break;
     default:
         break;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2625,9 +2647,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int read_thread(void *arg)
 
         /* if the queue are full, no need to read more */
         if (   is-&amp;gt;audioq.size + is-&amp;gt;videoq.size + is-&amp;gt;subtitleq.size &amp;gt; MAX_QUEUE_SIZE
-            || (   (is-&amp;gt;audioq   .nb_packets &amp;gt; MIN_FRAMES || is-&amp;gt;audio_stream &amp;lt; 0)
-                &amp;amp;&amp;amp; (is-&amp;gt;videoq   .nb_packets &amp;gt; MIN_FRAMES || is-&amp;gt;video_stream &amp;lt; 0)
-                &amp;amp;&amp;amp; (is-&amp;gt;subtitleq.nb_packets &amp;gt; MIN_FRAMES || is-&amp;gt;subtitle_stream &amp;lt; 0))) {
+            || (   (is-&amp;gt;audioq   .nb_packets &amp;gt; MIN_FRAMES || is-&amp;gt;audio_stream &amp;lt; 0 || is-&amp;gt;audioq.abort_request)
+                &amp;amp;&amp;amp; (is-&amp;gt;videoq   .nb_packets &amp;gt; MIN_FRAMES || is-&amp;gt;video_stream &amp;lt; 0 || is-&amp;gt;videoq.abort_request)
+                &amp;amp;&amp;amp; (is-&amp;gt;subtitleq.nb_packets &amp;gt; MIN_FRAMES || is-&amp;gt;subtitle_stream &amp;lt; 0 || is-&amp;gt;subtitleq.abort_request))) {
             /* wait 10 ms */
             SDL_Delay(10);
             continue;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2732,6 +2754,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static VideoState *stream_open(const char *filename, AVInputFormat *iformat)
     is-&amp;gt;subpq_mutex = SDL_CreateMutex();
     is-&amp;gt;subpq_cond  = SDL_CreateCond();
 
+    packet_queue_init(&amp;amp;is-&amp;gt;videoq);
+    packet_queue_init(&amp;amp;is-&amp;gt;audioq);
+    packet_queue_init(&amp;amp;is-&amp;gt;subtitleq);
+
     is-&amp;gt;av_sync_type = av_sync_type;
     is-&amp;gt;read_tid     = SDL_CreateThread(read_thread, is);
     if (!is-&amp;gt;read_tid) {
&lt;/pre&gt;</description>
    <dc:creator>Marton Balint</dc:creator>
    <dc:date>2012-05-24T22:27:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145207">
    <title>[PATCH] lavfi/aresample: print channel layouts andformats along with the rate.</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145207</link>
    <description>&lt;pre&gt;---
 libavfilter/af_aresample.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index 3b9fe9d..30d6f6a 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -133,6 +133,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int config_output(AVFilterLink *outlink)
     int out_rate;
     uint64_t out_layout;
     enum AVSampleFormat out_format;
+    char inchl_buf[128], outchl_buf[128];
 
     aresample-&amp;gt;swr = swr_alloc_set_opts(aresample-&amp;gt;swr,
                                         outlink-&amp;gt;channel_layout, outlink-&amp;gt;format, outlink-&amp;gt;sample_rate,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -156,8 +157,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int config_output(AVFilterLink *outlink)
 
     aresample-&amp;gt;ratio = (double)outlink-&amp;gt;sample_rate / inlink-&amp;gt;sample_rate;
 
-    av_log(ctx, AV_LOG_INFO, "r:%"PRId64"Hz -&amp;gt; r:%"PRId64"Hz\n",
-           inlink-&amp;gt;sample_rate, outlink-&amp;gt;sample_rate);
+    av_get_channel_layout_string(inchl_buf,  sizeof(inchl_buf),  -1, inlink -&amp;gt;channel_layout);
+    av_get_channel_layout_string(outchl_buf, sizeof(outchl_buf), -1, outlink-&amp;gt;channel_layout);
+    av_log(ctx, AV_LOG_INFO, "chl:%s fmt:%s r:%"PRId64"Hz -&amp;gt; chl:%s fmt:%s r:%"PRId64"Hz\n",
+           inchl_buf,  av_get_sample_fmt_name(inlink-&amp;gt;format),  inlink-&amp;gt;sample_rate,
+           outchl_buf, av_get_sample_fmt_name(outlink-&amp;gt;format), outlink-&amp;gt;sample_rate);
     return 0;
 }
 
&lt;/pre&gt;</description>
    <dc:creator>Clément Bœsch</dc:creator>
    <dc:date>2012-05-24T22:07:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145206">
    <title>Re: -async</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145206</link>
    <description>&lt;pre&gt;
OK, then pushed.

&lt;/pre&gt;</description>
    <dc:creator>Clément Bœsch</dc:creator>
    <dc:date>2012-05-24T21:49:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145205">
    <title>0.11 and avdevice soname</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145205</link>
    <description>&lt;pre&gt;Hi everyone

I wanted to release 0.11 today but i run into a problem
namely the libavdevice soname

libavformats soname was bumped and its ABI changed a bit while
libavdevice was not changed

now if one has:
old_foo -&amp;gt; old_libavdevice -&amp;gt; old_libavformat
        -&amp;gt; old_libavformat

and installs

new_bar -&amp;gt; new_libavdevice -&amp;gt; new_libavformat
        -&amp;gt; new_libavformat

this would happen: (because both libavdevice have the same soname the
old is replaced)

old_foo -&amp;gt; new_libavdevice -&amp;gt; new_libavformat
        -&amp;gt; old_libavformat

In the best case old_foo will register the av devices and not see them
in the libavformat it uses.
In the worst this will just crash (that is if versioning isnt used)


because of above i will bump libavdevices soname really soon unless
someone sees a better solution

Thanks

&lt;/pre&gt;</description>
    <dc:creator>Michael Niedermayer</dc:creator>
    <dc:date>2012-05-24T20:36:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145204">
    <title>Re: [PATCH] Optimization of AMR NB and WB decoders for MIPS</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145204</link>
    <description>&lt;pre&gt;Hello again,

On 05/18/2012 03:47 PM, Nedeljko Babic wrote:

I've given a second look and I have a few more comments about the ASM 
code (I will look tomorrow at the files you just sent).



Why not use "msub.s $f7,    $f7,      %f3, $f1"? Looking at the C 
source, it looks like it could be done just with muls/msub/madd, with no 
adds or subs.



Can't you avoid this two movs by using $f1 and $f0 as destination 
registers in previous instructions?


I think you can update mem outsize the main loop.




I dont think you should have much gain from putting this function in a 
header as inline. It should be costly enough so that the call cost is 
unimportant...


Same thing for this function.




If you unroll once the inner loop you will need to do all these movs 
only once per iteration (thus half of the time).



You can avoid this neg by replacing val by -val everywhere (madd -&amp;gt; 
msub, etc).


You can probably avoid the two mov.d by renaming the vars in the 
previous instructions.


-Vitor
&lt;/pre&gt;</description>
    <dc:creator>Vitor Sessak</dc:creator>
    <dc:date>2012-05-24T20:09:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145203">
    <title>mpeg 2 Video</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145203</link>
    <description>&lt;pre&gt;Guten Tag !
Mein Name ist Braun und komme aus Deutschland.
Habe ein Problem mit MPEG2  Video.
Dieses Video kann ich nicht auf meinem Rechner Computer sehen ohne diese Störungen.
Der Ton sowie Video ist verzerrt.
Man kann das Video nur mit dieser Karte gut sehen ohne Störungen.
Weis aber leider nicht wer der Hersteller diese Karte ist.
Daher ist es für mich unmöglich dies Video zu sehen.
Habe schon viele Codec ausprobiert und leider immer wieder ohne Erfolg.
Auch der Codec von Ihrer Seite geht leider nicht .
Das Video und die Karte sind aus dem Jahr 1995 .
Würde mich super freuen wenn es jemand von euch schaffen kann dies hin zu bekommen.
Damit ich das Video wieder sehen kann ohne Störungen.
Bitte gehen sie auf meine Seite dort können Sie folgende Bilder sehen.
Und das Video herunterladen.
Einfach auf MPEG2 Video klicken.
Oder auf Bild klicken um es zu vergrößern.
Würde mich freuen auf eine baldige Antwort von Ihnen.
Bedanke mich sehr für Ihre Bemühungen.
http://wolfskis.de/mpeg/
Mail: Alois-p&amp;lt; at &amp;gt;gmx.net
 
 
Good day! 
My name is brown and comes from Germany. 
A problem with MPEG2 has video.
 I cannot see this video on my computer computer without these disturbances. 
The clay/tone as well as video are distorted. 
One can see the video good only with this map without disturbances. 
White however unfortunately not who the manufacturer this map is. 
From there it is to be seen for me not possibly this video. 
Property already many codecs tries out and unfortunately again and again without success. 
Also the codec from your side does not go unfortunately. 
The video and the map are from the year 1995. 
Get me super to be pleased if it someone from you to create can this. 
Thus I the video again to see can without disturbances. 
Please they go being able to do you on my side there the following pictures to see. 
And the video download. Simply on MPEG2 click to video. 
Or in picture click around it to increase. 
Me would make happy on an imminent answer of you. 
Thank you me much for your efforts.
http://wolfskis.de/mpeg/
Mail: Alois-p&amp;lt; at &amp;gt;gmx.net
 &lt;/pre&gt;</description>
    <dc:creator>alois-p&lt; at &gt;gmx.net</dc:creator>
    <dc:date>2012-05-18T14:03:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145202">
    <title>mpeg 2 Video</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145202</link>
    <description>&lt;pre&gt;Guten Tag !
Mein Name ist Braun und komme aus Deutschland.
Habe ein Problem mit MPEG2  Video.
Dieses Video kann ich nicht auf meinem Rechner Computer sehen ohne diese Störungen.
Der Ton sowie Video ist verzerrt.
Man kann das Video nur mit dieser Karte gut sehen ohne Störungen.
Weis aber leider nicht wer der Hersteller diese Karte ist.
Daher ist es für mich unmöglich dies Video zu sehen.
Habe schon viele Codec ausprobiert und leider immer wieder ohne Erfolg.
Auch der Codec von Ihrer Seite geht leider nicht .
Das Video und die Karte sind aus dem Jahr 1995 .
Würde mich super freuen wenn es jemand von euch schaffen kann dies hin zu bekommen.
Damit ich das Video wieder sehen kann ohne Störungen.
Bitte gehen sie auf meine Seite dort können Sie folgende Bilder sehen.
Und das Video herunterladen.
Einfach auf MPEG2 Video klicken.
Oder auf Bild klicken um es zu vergrößern.
Würde mich freuen auf eine baldige Antwort von Ihnen.
Bedanke mich sehr für Ihre Bemühungen.
http://wolfskis.de/mpeg/
 
 
Good day! 
My name is brown and comes from Germany. 
A problem with MPEG2 has video.
 I cannot see this video on my computer computer without these disturbances. 
The clay/tone as well as video are distorted. 
One can see the video good only with this map without disturbances. 
White however unfortunately not who the manufacturer this map is. 
From there it is to be seen for me not possibly this video. 
Property already many codecs tries out and unfortunately again and again without success. 
Also the codec from your side does not go unfortunately. 
The video and the map are from the year 1995. 
Get me super to be pleased if it someone from you to create can this. 
Thus I the video again to see can without disturbances. 
Please they go being able to do you on my side there the following pictures to see. 
And the video download. Simply on MPEG2 click to video. 
Or in picture click around it to increase. 
Me would make happy on an imminent answer of you. 
Thank you me much for your efforts.
http://wolfskis.de/mpeg/
 &lt;/pre&gt;</description>
    <dc:creator>alois-p&lt; at &gt;gmx.net</dc:creator>
    <dc:date>2012-05-18T13:53:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145201">
    <title>Re: [PATCH] Optimization of AMR NB and WB decoders for MIPS</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145201</link>
    <description>&lt;pre&gt;In attached file acelp_filters_mips.S you can see what compiler generates for loop
in question.
Compiler adds only counter increment in the loop: "addiu$11,$11,1". 
Taking in consideration that architecture for which this was optimized has dual 
out-of-order instruction issue and that FPU has separate in-order dual-issue pipeline 
decoupled from integer pipeline this doesn't bring cost in performance. 
On the other hand I have to admit that for older architectures it would be better to 
write entire loop in ASM and counter incrementing would be eliminated.
So my question is do you want me to rewrite loops in ASM for cases like this?

In attached files lsp_c.S and lsp_mips.S are ASM compiler outputs for
C version and our version respectively.
I didn't explained main reason for this optimization correctly. As you can
see in ASM outputs, compiler doesn't use FP MADD instructions although it can
benefit from them in this case. That is the main reason for this optimization.

Toolchain used is Sourcery G++ 4.5.1.

-Nedeljko
________________________________________
From: Vitor Sessak [vitor1001&amp;lt; at &amp;gt;gmail.com]
Sent: Wednesday, May 23, 2012 20:34
To: Babic, Nedeljko
Cc: FFmpeg development discussions and patches; Lukac, Zeljko
Subject: Re: [FFmpeg-devel] [PATCH] Optimization of AMR NB and WB decoders for MIPS

On 05/23/2012 06:54 PM, Babic, Nedeljko wrote:

Would you mind compiling these files with -S and send the ASM output?
One useless instruction in a inner loop can be rather costly.


Can you attach the ASM compiler output of the C version and yours? I
don't really understand why your is faster. Maybe the compiler is to
dump to see that lsp and qa does not alias...

-Vitor
.file1 "acelp_filters_mips.c"
.section .mdebug.abi32
.previous
.gnu_attribute 4, 1
.abicalls
.optionpic0
.text
.align2
.globlff_acelp_interpolatef
.setnomips16
.setnomicromips
.entff_acelp_interpolatef
.typeff_acelp_interpolatef, &amp;lt; at &amp;gt;function
ff_acelp_interpolatef:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
lw$2,24($sp)
lw$3,16($sp)
lw$12,20($sp)
.setnoreorder
.setnomacro
blez$2,$L11
sll$10,$7,2
.setmacro
.setreorder

subu$14,$7,$3
sll$14,$14,2
sll$3,$3,2
addu$14,$6,$14
move$13,$0
addu$6,$6,$3
$L6:
.setnoreorder
.setnomacro
blez$12,$L4
mtc1$0,$f0
.setmacro
.setreorder

move$9,$5
addiu$8,$5,-4
move$7,$14
move$3,$6
move$11,$0
$L5:
#APP
 # 82 "acelp_filters_mips.c" 1
lwc1   $f1,           0($9)                    
lwc1   $f3,           0($3)         
lwc1   $f2,           0($8)                    
lwc1   $f4,           0($7)         
addiu  $9,             $9,              4       
madd.s $f0,$f0,             $f1,$f3         
addiu  $8,             $8,              -4      
addu   $3,  $3,   $10 
addu   $7,  $7,   $10 
madd.s $f0,$f0,$f2, $f4                     

 # 0 "" 2
#NO_APP
addiu$11,$11,1
bne$11,$12,$L5
$L4:
addiu$13,$13,1
swc1$f0,0($4)
addiu$5,$5,4
.setnoreorder
.setnomacro
bne$13,$2,$L6
addiu$4,$4,4
.setmacro
.setreorder

$L11:
j$31
.endff_acelp_interpolatef
.sizeff_acelp_interpolatef, .-ff_acelp_interpolatef
.align2
.globlff_acelp_apply_order_2_transfer_function
.setnomips16
.setnomicromips
.entff_acelp_apply_order_2_transfer_function
.typeff_acelp_apply_order_2_transfer_function, &amp;lt; at &amp;gt;function
ff_acelp_apply_order_2_transfer_function:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
lwc1$f17,16($sp)
lw$3,20($sp)
lw$2,24($sp)
#APP
 # 115 "acelp_filters_mips.c" 1
lwc1   $f0,    0($3)                                              
blez   $2,   ff_acelp_apply_order_2_transfer_function_end56         
lwc1   $f1,    4($3)                                              
lwc1   $f2,    0($7)                                      
lwc1   $f3,    4($7)                                      
lwc1   $f4,    0($6)                                      
lwc1   $f5,    4($6)                                      
ff_acelp_apply_order_2_transfer_function_madd56:                      
lwc1   $f6,    0($5)                                               
mul.s  $f9,    $f3,      $f1                                          
mul.s  $f7,    $f2,      $f0                                          
msub.s $f7,    $f7,      $f17, $f6                                 
sub.s  $f7,    $f7,      $f9                                          
madd.s $f8,    $f7,      $f4,     $f0                                 
madd.s $f8,    $f8,      $f5,     $f1                                 
lwc1   $f11,   4($5)                                               
mul.s  $f12,   $f3,      $f0                                          
mul.s  $f13,   $f2,      $f7                                          
msub.s $f13,   $f13,     $f17, $f11                                
sub.s  $f13,   $f13,     $f12                                         
madd.s $f14,   $f13,     $f4,     $f7                                 
madd.s $f14,   $f14,     $f5,     $f0                                 
swc1   $f8,    0($4)                                              
lwc1   $f6,    8($5)                                               
mul.s  $f9,    $f3,      $f7                                          
mul.s  $f15,   $f2,      $f13                                         
msub.s $f15,   $f15,     $f17, $f6                                 
sub.s  $f15,   $f15,     $f9                                          
madd.s $f8,    $f15,     $f4,     $f13                                
madd.s $f8,    $f8,      $f5,     $f7                                 
swc1   $f14,   4($4)                                              
lwc1   $f11,   12($5)                                              
mul.s  $f12,   $f3,      $f13                                         
mul.s  $f16,   $f2,      $f15                                         
msub.s $f16,   $f16,     $f17, $f11                                
sub.s  $f16,   $f16,     $f12                                         
madd.s $f14,   $f16,     $f4,     $f15                                
madd.s $f14,   $f14,     $f5,     $f13                                
swc1   $f8,    8($4)                                              
lwc1   $f6,    16($5)                                              
mul.s  $f9,    $f3,      $f15                                         
mul.s  $f7,    $f2,      $f16                                         
msub.s $f7,    $f7,      $f17, $f6                                 
sub.s  $f7,    $f7,      $f9                                          
madd.s $f8,    $f7,      $f4,     $f16                                
madd.s $f8,    $f8,      $f5,     $f15                                
swc1   $f14,   12($4)                                             
lwc1   $f11,   20($5)                                              
mul.s  $f12,   $f3,      $f16                                         
mul.s  $f13,   $f2,      $f7                                          
msub.s $f13,   $f13,     $f17, $f11                                
sub.s  $f13,   $f13,     $f12                                         
madd.s $f14,   $f13,     $f4,     $f7                                 
madd.s $f14,   $f14,     $f5,     $f16                                
swc1   $f8,    16($4)                                             
lwc1   $f6,    24($5)                                              
mul.s  $f9,    $f3,      $f7                                          
mul.s  $f15,   $f2,      $f13                                         
msub.s $f15,   $f15,     $f17, $f6                                 
sub.s  $f15,   $f15,     $f9                                          
madd.s $f8,    $f15,     $f4,     $f13                                
madd.s $f8,    $f8,      $f5,     $f7                                 
swc1   $f14,   20($4)                                             
lwc1   $f11,   28($5)                                              
mul.s  $f12,   $f3,      $f13                                         
mul.s  $f16,   $f2,      $f15                                         
msub.s $f16,   $f16,     $f17, $f11                                
sub.s  $f16,   $f16,     $f12                                         
madd.s $f14,   $f16,     $f4,     $f15                                
madd.s $f14,   $f14,     $f5,     $f13                                
swc1   $f8,    24($4)                                             
addiu  $4, 32                                                     
addiu  $5,  32                                                     
addiu  $2,   -8                                                     
swc1   $f15,   4($3)                                              
mov.s  $f1,    $f15                                                   
mov.s  $f0,    $f16                                                   
swc1   $f16,   0($3)                                              
swc1   $f14,   -4($4)                                             
bnez   $2,   ff_acelp_apply_order_2_transfer_function_madd56        
ff_acelp_apply_order_2_transfer_function_end56:                       

 # 0 "" 2
#NO_APP
j$31
.endff_acelp_apply_order_2_transfer_function
.sizeff_acelp_apply_order_2_transfer_function, .-ff_acelp_apply_order_2_transfer_function
.ident"GCC: (Sourcery G++ Lite 4.4-303) 4.4.1"
.file1 "lsp.c"
.section .mdebug.abi32
.previous
.gnu_attribute 4, 1
.abicalls
.optionpic0
.text
.align2
.globlff_acelp_reorder_lsf
.setnomips16
.setnomicromips
.entff_acelp_reorder_lsf
.typeff_acelp_reorder_lsf, &amp;lt; at &amp;gt;function
ff_acelp_reorder_lsf:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
.setnoreorder
.setnomacro

lw$2,16($sp)
addiu$3,$2,-1
blez$3,$L2
nop

move$14,$0
move$10,$0
$L3:
addiu$8,$10,1
sll$8,$8,1
sll$9,$10,1
addu$9,$4,$9
addu$8,$4,$8
$L6:
lh$12,0($9)
lh$11,0($8)
slt$13,$11,$12
beq$13,$0,$L4
addiu$10,$10,-1

sh$12,0($8)
sh$11,0($9)
addiu$8,$8,-2
bgez$10,$L6
addiu$9,$9,-2

$L4:
addiu$14,$14,1
slt$8,$14,$3
bne$8,$0,$L3
move$10,$14

$L2:
blez$2,$L7
nop

move$8,$4
move$9,$0
$L8:
lh$10,0($8)
addiu$9,$9,1
slt$11,$6,$10
movn$6,$10,$11
seh$6,$6
sh$6,0($8)
addu$6,$6,$5
bne$9,$2,$L8
addiu$8,$8,2

$L7:
sll$3,$3,1
addu$4,$4,$3
lh$2,0($4)
slt$3,$7,$2
movn$2,$7,$3
j$31
sh$2,0($4)

.setmacro
.setreorder
.endff_acelp_reorder_lsf
.sizeff_acelp_reorder_lsf, .-ff_acelp_reorder_lsf
.align2
.globlff_set_min_dist_lsf
.setnomips16
.setnomicromips
.entff_set_min_dist_lsf
.typeff_set_min_dist_lsf, &amp;lt; at &amp;gt;function
ff_set_min_dist_lsf:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
.setnoreorder
.setnomacro

lw$2,16($sp)
mtc1$6,$f6
blez$2,$L17
mtc1$7,$f7

mtc1$0,$f0
move$3,$0
$L15:
cvt.d.s$f2,$f0
add.d$f2,$f2,$f6
lwc1$f0,0($4)
cvt.d.s$f4,$f0
c.lt.d$fcc0,$f2,$f4
bc1t$fcc0,$L14
addiu$3,$3,1

cvt.s.d$f0,$f2
$L14:
swc1$f0,0($4)
bne$3,$2,$L15
addiu$4,$4,4

$L17:
j$31
nop

.setmacro
.setreorder
.endff_set_min_dist_lsf
.sizeff_set_min_dist_lsf, .-ff_set_min_dist_lsf
.align2
.globlff_sort_nearly_sorted_floats
.setnomips16
.setnomicromips
.entff_sort_nearly_sorted_floats
.typeff_sort_nearly_sorted_floats, &amp;lt; at &amp;gt;function
ff_sort_nearly_sorted_floats:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
.setnoreorder
.setnomacro

addiu$5,$5,-1
blez$5,$L25
move$7,$0

move$6,$0
$L20:
addiu$2,$6,1
sll$2,$2,2
sll$3,$6,2
addu$3,$4,$3
addu$2,$4,$2
$L23:
lwc1$f1,0($3)
lwc1$f0,0($2)
c.lt.s$fcc0,$f0,$f1
bc1f$fcc0,$L21
addiu$6,$6,-1

swc1$f1,0($2)
swc1$f0,0($3)
addiu$2,$2,-4
bgez$6,$L23
addiu$3,$3,-4

$L21:
addiu$7,$7,1
slt$2,$7,$5
bne$2,$0,$L20
move$6,$7

$L25:
j$31
nop

.setmacro
.setreorder
.endff_sort_nearly_sorted_floats
.sizeff_sort_nearly_sorted_floats, .-ff_sort_nearly_sorted_floats
.align2
.globlff_acelp_lspd2lpc
.setnomips16
.setnomicromips
.entff_acelp_lspd2lpc
.typeff_acelp_lspd2lpc, &amp;lt; at &amp;gt;function
ff_acelp_lspd2lpc:
.frame$sp,224,$31# vars= 184, regs= 3/0, args= 16, gp= 8
.mask0x80030000,-4
.fmask0x00000000,0
addiu$sp,$sp,-224
sw$16,212($sp)
sll$16,$6,3
sw$17,216($sp)
addiu$16,$16,-4
move$17,$4
slt$4,$6,11
sw$5,200($sp)
sw$6,204($sp)
sw$31,220($sp)
.setnoreorder
.setnomacro
jalassert
addu$16,$5,$16
.setmacro
.setreorder

lui$13,%hi($LC1)
ldc1$f2,0($17)
ldc1$f0,%lo($LC1)($13)
lui$12,%hi($LC0)
lw$6,204($sp)
mul.d$f2,$f0,$f2
ldc1$f4,%lo($LC0)($12)
slt$2,$6,2
lw$5,200($sp)
sdc1$f4,24($sp)
.setnoreorder
.setnomacro
bne$2,$0,$L27
sdc1$f2,32($sp)
.setmacro
.setreorder

addiu$11,$sp,24
move$8,$17
move$9,$17
move$7,$11
move$4,$0
move$3,$0
li$2,2# 0x2
$L28:
ldc1$f0,16($9)
#APP
 # 72 "../libavcodec/mips/lsp_mips.h" 1
move   $3,     $7                         
add.d  $f0,     $f0,     $f0              
addiu  $7,    8                               
ldc1   $f4,   0($3)                       
ldc1   $f6,   8($3)                       
neg.d  $f0,     $f0                          
add.d  $f8,     $f4,   $f4            
madd.d $f8,     $f8,     $f6, $f0    
mov.d  $f10,     $f6                        
addiu  $4,       $2, -2                        
mov.d  $f6,   $f4                        
ldc1   $f4,   -8($3)                      
sdc1   $f8,     16($3)                      
beqz   $4,       ff_lsp2polyf_lp_j_end201         
ff_lsp2polyf_lp_j201:                               
add.d  $f8,     $f10,     $f4            
madd.d $f8,     $f8,     $f6, $f0    
mov.d  $f10,     $f6                        
addiu  $4,       -1                              
mov.d  $f6,   $f4                        
ldc1   $f4,   -16($3)                     
sdc1   $f8,     8($3)                       
addiu  $3,     -8                              
bgtz   $4,       ff_lsp2polyf_lp_j201             
ff_lsp2polyf_lp_j_end201:                           

 # 0 "" 2
#NO_APP
add.d$f2,$f2,$f0
addiu$2,$2,1
slt$10,$6,$2
addiu$9,$9,16
.setnoreorder
.setnomacro
beq$10,$0,$L28
sdc1$f2,32($sp)
.setmacro
.setreorder

ldc1$f2,8($17)
ldc1$f4,%lo($LC1)($13)
ldc1$f0,%lo($LC0)($12)
addiu$10,$sp,112
mul.d$f2,$f4,$f2
sdc1$f0,112($sp)
move$7,$10
move$4,$0
move$3,$0
li$2,2# 0x2
sdc1$f2,120($sp)
$L29:
ldc1$f0,24($8)
#APP
 # 72 "../libavcodec/mips/lsp_mips.h" 1
move   $3,     $7                         
add.d  $f0,     $f0,     $f0              
addiu  $7,    8                               
ldc1   $f4,   0($3)                       
ldc1   $f6,   8($3)                       
neg.d  $f0,     $f0                          
add.d  $f8,     $f4,   $f4            
madd.d $f8,     $f8,     $f6, $f0    
mov.d  $f10,     $f6                        
addiu  $4,       $2, -2                        
mov.d  $f6,   $f4                        
ldc1   $f4,   -8($3)                      
sdc1   $f8,     16($3)                      
beqz   $4,       ff_lsp2polyf_lp_j_end224         
ff_lsp2polyf_lp_j224:                               
add.d  $f8,     $f10,     $f4            
madd.d $f8,     $f8,     $f6, $f0    
mov.d  $f10,     $f6                        
addiu  $4,       -1                              
mov.d  $f6,   $f4                        
ldc1   $f4,   -16($3)                     
sdc1   $f8,     8($3)                       
addiu  $3,     -8                              
bgtz   $4,       ff_lsp2polyf_lp_j224             
ff_lsp2polyf_lp_j_end224:                           

 # 0 "" 2
#NO_APP
add.d$f2,$f2,$f0
addiu$2,$2,1
slt$9,$6,$2
addiu$8,$8,16
.setnoreorder
.setnomacro
beq$9,$0,$L29
sdc1$f2,120($sp)
.setmacro
.setreorder

$L32:
sll$2,$6,3
addu$2,$2,$11
addiu$6,$6,-1
lui$3,%hi($LC2)
ldc1$f10,0($2)
ldc1$f8,88($2)
sll$4,$6,2
ldc1$f12,%lo($LC2)($3)
sll$3,$6,3
addu$3,$10,$3
addu$5,$5,$4
subu$16,$16,$4
$L31:
ldc1$f4,-8($2)
ldc1$f6,0($3)
addiu$2,$2,-8
add.d$f2,$f4,$f10
sub.d$f0,$f8,$f6
mov.d$f10,$f4
addiu$3,$3,-8
mov.d$f8,$f6
sub.d$f4,$f2,$f0
add.d$f2,$f2,$f0
mul.d$f4,$f4,$f12
mul.d$f2,$f2,$f12
cvt.s.d$f1,$f4
cvt.s.d$f0,$f2
swc1$f0,0($5)
swc1$f1,0($16)
addiu$5,$5,-4
.setnoreorder
.setnomacro
bne$2,$11,$L31
addiu$16,$16,4
.setmacro
.setreorder

$L33:
lw$31,220($sp)
lw$17,216($sp)
lw$16,212($sp)
.setnoreorder
.setnomacro
j$31
addiu$sp,$sp,224
.setmacro
.setreorder

$L27:
ldc1$f2,8($17)
sdc1$f4,112($sp)
mul.d$f0,$f2,$f0
.setnoreorder
.setnomacro
beq$6,$0,$L33
sdc1$f0,120($sp)
.setmacro
.setreorder

addiu$11,$sp,24
.setnoreorder
.setnomacro
j$L32
addiu$10,$sp,112
.setmacro
.setreorder

.endff_acelp_lspd2lpc
.sizeff_acelp_lspd2lpc, .-ff_acelp_lspd2lpc
.align2
.globlff_amrwb_lsp2lpc
.setnomips16
.setnomicromips
.entff_amrwb_lsp2lpc
.typeff_amrwb_lsp2lpc, &amp;lt; at &amp;gt;function
ff_amrwb_lsp2lpc:
.frame$fp,32,$31# vars= 0, regs= 3/0, args= 16, gp= 0
.mask0x40030000,-4
.fmask0x00000000,0
lui$2,%hi($LC1)
ldc1$f2,0($4)
ldc1$f0,%lo($LC1)($2)
sra$3,$6,1
sll$7,$3,3
mul.d$f2,$f0,$f2
addiu$sp,$sp,-32
addiu$7,$7,16
sw$fp,28($sp)
sw$17,24($sp)
sw$16,20($sp)
move$fp,$sp
lui$9,%hi($LC0)
subu$sp,$sp,$7
move$11,$sp
addiu$10,$6,-1
ldc1$f4,%lo($LC0)($9)
addiu$8,$11,8
sll$13,$10,3
subu$sp,$sp,$7
sw$0,-8($8)
sw$0,-4($8)
addu$13,$13,$4
slt$12,$3,2
ldc1$f8,0($13)
move$7,$sp
sdc1$f4,0($sp)
sdc1$f2,8($sp)
move$13,$sp
.setnoreorder
.setnomacro
bne$12,$0,$L38
addiu$17,$sp,8
.setmacro
.setreorder

move$24,$4
move$25,$4
move$15,$0
move$14,$0
li$12,2# 0x2
$L39:
ldc1$f0,16($25)
#APP
 # 72 "../libavcodec/mips/lsp_mips.h" 1
move   $14,     $13                         
add.d  $f0,     $f0,     $f0              
addiu  $13,    8                               
ldc1   $f4,   0($14)                       
ldc1   $f6,   8($14)                       
neg.d  $f0,     $f0                          
add.d  $f10,     $f4,   $f4            
madd.d $f10,     $f10,     $f6, $f0    
mov.d  $f12,     $f6                        
addiu  $15,       $12, -2                        
mov.d  $f6,   $f4                        
ldc1   $f4,   -8($14)                      
sdc1   $f10,     16($14)                      
beqz   $15,       ff_lsp2polyf_lp_j_end348         
ff_lsp2polyf_lp_j348:                               
add.d  $f10,     $f12,     $f4            
madd.d $f10,     $f10,     $f6, $f0    
mov.d  $f12,     $f6                        
addiu  $15,       -1                              
mov.d  $f6,   $f4                        
ldc1   $f4,   -16($14)                     
sdc1   $f10,     8($14)                       
addiu  $14,     -8                              
bgtz   $15,       ff_lsp2polyf_lp_j348             
ff_lsp2polyf_lp_j_end348:                           

 # 0 "" 2
#NO_APP
add.d$f2,$f2,$f0
addiu$12,$12,1
slt$16,$3,$12
addiu$25,$25,16
.setnoreorder
.setnomacro
beq$16,$0,$L39
sdc1$f2,0($17)
.setmacro
.setreorder

ldc1$f2,8($4)
ldc1$f4,%lo($LC1)($2)
ldc1$f0,%lo($LC0)($9)
slt$2,$3,3
mul.d$f2,$f4,$f2
sdc1$f0,8($11)
addiu$13,$8,8
.setnoreorder
.setnomacro
bne$2,$0,$L40
sdc1$f2,8($8)
.setmacro
.setreorder

move$12,$8
move$11,$0
move$4,$0
li$2,2# 0x2
$L41:
ldc1$f0,24($24)
#APP
 # 72 "../libavcodec/mips/lsp_mips.h" 1
move   $4,     $12                         
add.d  $f0,     $f0,     $f0              
addiu  $12,    8                               
ldc1   $f4,   0($4)                       
ldc1   $f6,   8($4)                       
neg.d  $f0,     $f0                          
add.d  $f10,     $f4,   $f4            
madd.d $f10,     $f10,     $f6, $f0    
mov.d  $f12,     $f6                        
addiu  $11,       $2, -2                        
mov.d  $f6,   $f4                        
ldc1   $f4,   -8($4)                      
sdc1   $f10,     16($4)                      
beqz   $11,       ff_lsp2polyf_lp_j_end375         
ff_lsp2polyf_lp_j375:                               
add.d  $f10,     $f12,     $f4            
madd.d $f10,     $f10,     $f6, $f0    
mov.d  $f12,     $f6                        
addiu  $11,       -1                              
mov.d  $f6,   $f4                        
ldc1   $f4,   -16($4)                     
sdc1   $f10,     8($4)                       
addiu  $4,     -8                              
bgtz   $11,       ff_lsp2polyf_lp_j375             
ff_lsp2polyf_lp_j_end375:                           

 # 0 "" 2
#NO_APP
add.d$f2,$f2,$f0
addiu$2,$2,1
addiu$24,$24,16
.setnoreorder
.setnomacro
bne$2,$3,$L41
sdc1$f2,0($13)
.setmacro
.setreorder

$L40:
ldc1$f10,%lo($LC0)($9)
lui$11,%hi($LC2)
addiu$6,$6,-2
sub.d$f10,$f10,$f8
ldc1$f4,%lo($LC2)($11)
sll$6,$6,2
addu$6,$5,$6
move$9,$7
move$4,$5
li$2,1# 0x1
$L42:
ldc1$f6,8($8)
ldc1$f2,-8($8)
ldc1$f0,8($9)
sub.d$f2,$f6,$f2
mul.d$f2,$f2,$f10
#APP
 # 74 "../libavcodec/mips/amrwb_lsp2lpc.h" 1
madd.d $f0, $f0, $f0, $f8 

 # 0 "" 2
#NO_APP
sub.d$f6,$f0,$f2
add.d$f2,$f0,$f2
addiu$2,$2,1
addiu$9,$9,8
mul.d$f6,$f6,$f4
mul.d$f2,$f2,$f4
addiu$8,$8,8
cvt.s.d$f1,$f6
cvt.s.d$f0,$f2
swc1$f0,0($4)
swc1$f1,0($6)
addiu$4,$4,4
.setnoreorder
.setnomacro
bne$2,$3,$L42
addiu$6,$6,-4
.setmacro
.setreorder

$L43:
sll$2,$3,3
addu$7,$2,$7
ldc1$f2,%lo($LC2)($11)
ldc1$f0,0($7)
mul.d$f0,$f2,$f0
#APP
 # 86 "../libavcodec/mips/amrwb_lsp2lpc.h" 1
madd.d $f0, $f0, $f0, $f8     

 # 0 "" 2
#NO_APP
addiu$3,$3,-1
sll$3,$3,2
sll$10,$10,2
move$sp,$fp
addu$10,$10,$5
cvt.s.d$f0,$f0
addu$5,$3,$5
cvt.s.d$f8,$f8
swc1$f0,0($5)
lw$fp,28($sp)
lw$17,24($sp)
lw$16,20($sp)
swc1$f8,0($10)
.setnoreorder
.setnomacro
j$31
addiu$sp,$sp,32
.setmacro
.setreorder

$L38:
ldc1$f2,8($4)
sdc1$f4,8($11)
lui$11,%hi($LC2)
mul.d$f0,$f2,$f0
.setnoreorder
.setnomacro
j$L43
sdc1$f0,8($8)
.setmacro
.setreorder

.endff_amrwb_lsp2lpc
.sizeff_amrwb_lsp2lpc, .-ff_amrwb_lsp2lpc
.align2
.globlff_acelp_lsf2lspd
.setnomips16
.setnomicromips
.entff_acelp_lsf2lspd
.typeff_acelp_lsf2lspd, &amp;lt; at &amp;gt;function
ff_acelp_lsf2lspd:
.frame$sp,56,$31# vars= 0, regs= 5/2, args= 16, gp= 8
.mask0x800f0000,-12
.fmask0x00300000,-8
.setnoreorder
.setnomacro

addiu$sp,$sp,-56
sw$16,28($sp)
sw$31,44($sp)
sw$19,40($sp)
sw$18,36($sp)
sw$17,32($sp)
sdc1$f20,48($sp)
blez$6,$L51
move$16,$6

lui$2,%hi($LC3)
ldc1$f20,%lo($LC3)($2)
move$19,$5
move$18,$4
move$17,$0
$L50:
lwc1$f12,0($19)
addiu$17,$17,1
addiu$19,$19,4
cvt.d.s$f12,$f12
jalcos
mul.d$f12,$f12,$f20

sdc1$f0,0($18)
bne$17,$16,$L50
addiu$18,$18,8

$L51:
lw$31,44($sp)
lw$19,40($sp)
lw$18,36($sp)
lw$17,32($sp)
lw$16,28($sp)
ldc1$f20,48($sp)
j$31
addiu$sp,$sp,56

.setmacro
.setreorder
.endff_acelp_lsf2lspd
.sizeff_acelp_lsf2lspd, .-ff_acelp_lsf2lspd
.align2
.globlff_acelp_lsf2lsp
.setnomips16
.setnomicromips
.entff_acelp_lsf2lsp
.typeff_acelp_lsf2lsp, &amp;lt; at &amp;gt;function
ff_acelp_lsf2lsp:
.frame$sp,48,$31# vars= 0, regs= 5/0, args= 16, gp= 8
.mask0x800f0000,-4
.fmask0x00000000,0
.setnoreorder
.setnomacro

addiu$sp,$sp,-48
sw$16,28($sp)
sw$31,44($sp)
sw$19,40($sp)
sw$18,36($sp)
sw$17,32($sp)
blez$6,$L56
move$16,$6

move$19,$5
move$18,$4
move$17,$0
$L55:
lh$2,0($19)
addiu$17,$17,1
addiu$19,$19,2
sll$4,$2,5
sll$3,$2,3
subu$3,$4,$3
sll$4,$3,5
subu$3,$4,$3
addu$3,$3,$2
sll$4,$3,3
subu$3,$4,$3
sll$3,$3,2
addu$2,$3,$2
jalff_cos
ext$4,$2,15,16

slt$3,$17,$16
sh$2,0($18)
bne$3,$0,$L55
addiu$18,$18,2

$L56:
lw$31,44($sp)
lw$19,40($sp)
lw$18,36($sp)
lw$17,32($sp)
lw$16,28($sp)
j$31
addiu$sp,$sp,48

.setmacro
.setreorder
.endff_acelp_lsf2lsp
.sizeff_acelp_lsf2lsp, .-ff_acelp_lsf2lsp
.align2
.globlff_acelp_lsp2lpc
.setnomips16
.setnomicromips
.entff_acelp_lsp2lpc
.typeff_acelp_lsp2lpc, &amp;lt; at &amp;gt;function
ff_acelp_lsp2lpc:
.frame$sp,120,$31# vars= 88, regs= 6/0, args= 0, gp= 8
.mask0x003f0000,-4
.fmask0x00000000,0
.setnoreorder
.setnomacro

lh$2,0($5)
addiu$sp,$sp,-120
li$3,4194304# 0x400000
subu$2,$0,$2
sll$2,$2,8
slt$7,$6,2
sw$21,116($sp)
sw$20,112($sp)
sw$19,108($sp)
sw$18,104($sp)
sw$17,100($sp)
sw$16,96($sp)
sw$2,12($sp)
bne$7,$0,$L59
sw$3,8($sp)

move$14,$5
addiu$7,$sp,12
move$17,$5
li$16,2# 0x2
$L63:
lw$13,-4($7)
lh$12,4($17)
addiu$18,$7,4
sw$13,4($7)
sra$25,$12,31
addiu$11,$7,-4
move$10,$18
move$9,$7
j$L61
move$8,$16

$L76:
lw$13,0($7)
addiu$7,$7,-4
$L61:
lw$3,0($9)
lw$24,0($11)
addiu$8,$8,-1
multu$ac0,$12,$3
sra$2,$3,31
slt$15,$8,2
addiu$11,$11,-4
addiu$9,$9,-4
mflo$20
mfhi$21
mult$2,$12
srl$2,$20,14
madd$25,$3
mflo$3
addu$21,$3,$21
sll$3,$21,18
or$2,$3,$2
subu$2,$24,$2
addu$13,$2,$13
sw$13,0($10)
beq$15,$0,$L76
addiu$10,$10,-4

lw$2,12($sp)
sll$12,$12,8
addiu$16,$16,1
subu$12,$2,$12
slt$2,$6,$16
sw$12,12($sp)
bne$2,$0,$L62
addiu$17,$17,4

j$L63
move$7,$18

$L62:
lh$2,2($5)
li$3,4194304# 0x400000
sw$3,52($sp)
subu$2,$0,$2
sll$2,$2,8
sw$2,56($sp)
addiu$11,$sp,56
li$16,2# 0x2
li$25,1# 0x1
$L67:
lw$13,-4($11)
lh$12,6($14)
addiu$5,$11,-4
addiu$17,$11,4
sw$13,4($11)
sra$24,$12,31
move$9,$5
move$10,$11
move$8,$17
j$L65
move$7,$16

$L77:
lw$13,0($10)
addiu$10,$10,-4
$L65:
lw$3,0($11)
lw$15,0($9)
addiu$7,$7,-1
multu$ac0,$12,$3
sra$2,$3,31
move$11,$5
addiu$9,$9,-4
addiu$5,$5,-4
mflo$18
mfhi$19
mult$2,$12
srl$2,$18,14
madd$24,$3
mflo$3
addu$19,$3,$19
sll$3,$19,18
or$2,$3,$2
subu$2,$15,$2
addu$13,$2,$13
sw$13,0($8)
bne$7,$25,$L77
addiu$8,$8,-4

lw$2,56($sp)
sll$12,$12,8
addiu$16,$16,1
subu$12,$2,$12
slt$2,$6,$16
sw$12,56($sp)
bne$2,$0,$L66
addiu$14,$14,4

j$L67
move$11,$17

$L66:
li$2,4096# 0x1000
sh$2,0($4)
slt$2,$6,3
$L79:
sll$18,$6,1
bne$2,$0,$L69
li$5,1# 0x1

addiu$5,$6,-3
srl$5,$5,1
addiu$8,$18,-1
lw$11,52($sp)
lw$14,56($sp)
lw$10,8($sp)
sll$2,$5,3
sll$8,$8,1
sll$9,$6,2
addiu$17,$sp,20
addu$17,$17,$2
addu$9,$4,$9
addu$8,$4,$8
addiu$2,$sp,12
move$7,$4
addiu$3,$sp,60
$L70:
lw$25,0($2)
subu$15,$12,$11
lw$11,0($3)
addiu$24,$25,1024
addu$24,$24,$10
lw$10,4($2)
subu$14,$11,$14
lw$12,4($3)
addiu$13,$10,1024
addu$13,$25,$13
subu$25,$13,$14
subu$16,$24,$15
addu$13,$14,$13
addu$15,$24,$15
sra$15,$15,11
sra$16,$16,11
sra$13,$13,11
sra$25,$25,11
addiu$2,$2,8
sh$15,2($7)
addiu$3,$3,8
sh$16,0($9)
move$14,$12
sh$13,4($7)
addiu$9,$9,-4
sh$25,0($8)
addiu$7,$7,4
bne$2,$17,$L70
addiu$8,$8,-4

sll$5,$5,1
addiu$5,$5,3
$L69:
addiu$7,$18,1
addiu$9,$sp,8
subu$7,$7,$5
addiu$3,$5,-1
sll$2,$5,2
sll$3,$3,2
sll$7,$7,1
sll$8,$5,1
addu$2,$9,$2
addiu$9,$sp,52
addu$7,$4,$7
addu$3,$9,$3
j$L72
addu$4,$4,$8

$L78:
lw$12,4($3)
$L72:
lw$10,-4($2)
lw$8,0($2)
lw$9,0($3)
addiu$5,$5,1
addu$8,$10,$8
subu$12,$12,$9
addiu$8,$8,1024
subu$10,$8,$12
addu$12,$12,$8
sra$12,$12,11
sra$10,$10,11
slt$9,$6,$5
sh$12,0($4)
addiu$3,$3,4
sh$10,0($7)
addiu$2,$2,4
addiu$4,$4,2
beq$9,$0,$L78
addiu$7,$7,-2

$L74:
lw$21,116($sp)
lw$20,112($sp)
lw$19,108($sp)
lw$18,104($sp)
lw$17,100($sp)
lw$16,96($sp)
j$31
addiu$sp,$sp,120

$L59:
lh$12,2($5)
li$2,4096# 0x1000
sw$3,52($sp)
subu$12,$0,$12
sll$12,$12,8
sh$2,0($4)
blez$6,$L74
sw$12,56($sp)

j$L79
slt$2,$6,3

.setmacro
.setreorder
.endff_acelp_lsp2lpc
.sizeff_acelp_lsp2lpc, .-ff_acelp_lsp2lpc
.align2
.globlff_acelp_lp_decode
.setnomips16
.setnomicromips
.entff_acelp_lp_decode
.typeff_acelp_lp_decode, &amp;lt; at &amp;gt;function
ff_acelp_lp_decode:
.frame$sp,80,$31# vars= 40, regs= 4/0, args= 16, gp= 8
.mask0x80070000,-4
.fmask0x00000000,0
.setnoreorder
.setnomacro

addiu$sp,$sp,-80
lw$2,96($sp)
sw$17,68($sp)
sw$16,64($sp)
move$17,$5
sw$31,76($sp)
sw$18,72($sp)
move$16,$6
blez$2,$L81
addiu$5,$sp,24

sll$10,$2,1
move$3,$0
$L82:
lhx$9,$3($7)
lhx$8,$3($16)
addu$6,$5,$3
addiu$3,$3,2
addu$8,$9,$8
sra$8,$8,1
bne$3,$10,$L82
sh$8,0($6)

$L81:
sra$18,$2,1
jalff_acelp_lsp2lpc
move$6,$18

move$4,$17
move$5,$16
jalff_acelp_lsp2lpc
move$6,$18

lw$31,76($sp)
lw$18,72($sp)
lw$17,68($sp)
lw$16,64($sp)
j$31
addiu$sp,$sp,80

.setmacro
.setreorder
.endff_acelp_lp_decode
.sizeff_acelp_lp_decode, .-ff_acelp_lp_decode
.section.rodata.cst8,"aM",&amp;lt; at &amp;gt;progbits,8
.align3
$LC0:
.word0
.word1072693248
.align3
$LC1:
.word0
.word-1073741824
.align3
$LC2:
.word0
.word1071644672
.align3
$LC3:
.word1413754136
.word1075388923
.ident"GCC: (Sourcery G++ Lite 4.4-303) 4.4.1"
.file1 "lsp.c"
.section .mdebug.abi32
.previous
.gnu_attribute 4, 1
.abicalls
.optionpic0
.text
.align2
.globlff_acelp_reorder_lsf
.setnomips16
.setnomicromips
.entff_acelp_reorder_lsf
.typeff_acelp_reorder_lsf, &amp;lt; at &amp;gt;function
ff_acelp_reorder_lsf:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
.setnoreorder
.setnomacro

lw$2,16($sp)
addiu$3,$2,-1
blez$3,$L2
nop

move$14,$0
move$10,$0
$L3:
addiu$8,$10,1
sll$8,$8,1
sll$9,$10,1
addu$9,$4,$9
addu$8,$4,$8
$L6:
lh$12,0($9)
lh$11,0($8)
slt$13,$11,$12
beq$13,$0,$L4
addiu$10,$10,-1

sh$12,0($8)
sh$11,0($9)
addiu$8,$8,-2
bgez$10,$L6
addiu$9,$9,-2

$L4:
addiu$14,$14,1
slt$8,$14,$3
bne$8,$0,$L3
move$10,$14

$L2:
blez$2,$L7
nop

move$8,$4
move$9,$0
$L8:
lh$10,0($8)
addiu$9,$9,1
slt$11,$6,$10
movn$6,$10,$11
seh$6,$6
sh$6,0($8)
addu$6,$6,$5
bne$9,$2,$L8
addiu$8,$8,2

$L7:
sll$3,$3,1
addu$4,$4,$3
lh$2,0($4)
slt$3,$7,$2
movn$2,$7,$3
j$31
sh$2,0($4)

.setmacro
.setreorder
.endff_acelp_reorder_lsf
.sizeff_acelp_reorder_lsf, .-ff_acelp_reorder_lsf
.align2
.globlff_set_min_dist_lsf
.setnomips16
.setnomicromips
.entff_set_min_dist_lsf
.typeff_set_min_dist_lsf, &amp;lt; at &amp;gt;function
ff_set_min_dist_lsf:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
.setnoreorder
.setnomacro

lw$2,16($sp)
mtc1$6,$f6
blez$2,$L17
mtc1$7,$f7

mtc1$0,$f0
move$3,$0
$L15:
cvt.d.s$f2,$f0
add.d$f2,$f2,$f6
lwc1$f0,0($4)
cvt.d.s$f4,$f0
c.lt.d$fcc0,$f2,$f4
bc1t$fcc0,$L14
addiu$3,$3,1

cvt.s.d$f0,$f2
$L14:
swc1$f0,0($4)
bne$3,$2,$L15
addiu$4,$4,4

$L17:
j$31
nop

.setmacro
.setreorder
.endff_set_min_dist_lsf
.sizeff_set_min_dist_lsf, .-ff_set_min_dist_lsf
.align2
.globlff_lsp2polyf
.setnomips16
.setnomicromips
.entff_lsp2polyf
.typeff_lsp2polyf, &amp;lt; at &amp;gt;function
ff_lsp2polyf:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
.setnoreorder
.setnomacro

lui$2,%hi($LC0)
ldc1$f0,%lo($LC0)($2)
lui$2,%hi($LC1)
ldc1$f12,%lo($LC1)($2)
sdc1$f0,0($5)
ldc1$f2,0($4)
slt$2,$6,2
addiu$15,$5,8
mul.d$f2,$f12,$f2
bne$2,$0,$L32
sdc1$f2,8($5)

move$2,$5
li$13,1# 0x1
li$12,2# 0x2
li$10,1# 0x1
$L24:
ldc1$f0,16($4)
ldc1$f4,0($2)
move$7,$13
mul.d$f0,$f12,$f0
add.d$f6,$f4,$f4
addiu$14,$2,8
mul.d$f2,$f0,$f2
add.d$f2,$f2,$f6
beq$13,$10,$L20
sdc1$f2,16($2)

slt$3,$12,5
bne$3,$0,$L31
addiu$3,$7,-2

ldc1$f6,8($2)
move$9,$2
addiu$7,$2,-8
addiu$8,$12,-2
move$3,$14
addiu$2,$2,-16
$L22:
mul.d$f10,$f0,$f4
ldc1$f2,0($7)
addiu$8,$8,-2
slt$11,$8,3
mul.d$f8,$f0,$f2
addiu$7,$7,-16
add.d$f10,$f10,$f2
add.d$f10,$f10,$f6
mov.d$f6,$f2
sdc1$f10,0($3)
ldc1$f2,0($2)
addiu$3,$3,-16
addiu$2,$2,-16
add.d$f8,$f8,$f2
add.d$f8,$f4,$f8
mov.d$f4,$f2
sdc1$f8,0($9)
beq$11,$0,$L22
addiu$9,$9,-16

addiu$7,$12,-5
srl$7,$7,1
sll$7,$7,1
addiu$2,$12,-3
subu$7,$2,$7
addiu$3,$7,-2
$L31:
addiu$8,$7,-1
sll$2,$7,3
sll$3,$3,3
sll$7,$8,3
addu$2,$5,$2
addu$7,$5,$7
j$L23
addu$3,$5,$3

$L30:
addiu$8,$8,-1
$L23:
ldc1$f2,0($7)
ldc1$f6,0($3)
ldc1$f4,0($2)
mul.d$f2,$f0,$f2
addiu$7,$7,-8
addiu$3,$3,-8
add.d$f2,$f2,$f6
add.d$f2,$f4,$f2
sdc1$f2,0($2)
bne$8,$10,$L30
addiu$2,$2,-8

$L20:
ldc1$f2,0($15)
addiu$12,$12,1
slt$3,$6,$12
add.d$f0,$f2,$f0
addiu$4,$4,16
move$2,$14
addiu$13,$13,1
bne$3,$0,$L32
sdc1$f0,0($15)

j$L24
ldc1$f2,8($14)

$L32:
j$31
nop

.setmacro
.setreorder
.endff_lsp2polyf
.sizeff_lsp2polyf, .-ff_lsp2polyf
.align2
.globlff_sort_nearly_sorted_floats
.setnomips16
.setnomicromips
.entff_sort_nearly_sorted_floats
.typeff_sort_nearly_sorted_floats, &amp;lt; at &amp;gt;function
ff_sort_nearly_sorted_floats:
.frame$sp,0,$31# vars= 0, regs= 0/0, args= 0, gp= 0
.mask0x00000000,0
.fmask0x00000000,0
.setnoreorder
.setnomacro

addiu$5,$5,-1
blez$5,$L40
move$7,$0

move$6,$0
$L35:
addiu$2,$6,1
sll$2,$2,2
sll$3,$6,2
addu$3,$4,$3
addu$2,$4,$2
$L38:
lwc1$f1,0($3)
lwc1$f0,0($2)
c.lt.s$fcc0,$f0,$f1
bc1f$fcc0,$L36
addiu$6,$6,-1

swc1$f1,0($2)
swc1$f0,0($3)
addiu$2,$2,-4
bgez$6,$L38
addiu$3,$3,-4

$L36:
addiu$7,$7,1
slt$2,$7,$5
bne$2,$0,$L35
move$6,$7

$L40:
j$31
nop

.setmacro
.setreorder
.endff_sort_nearly_sorted_floats
.sizeff_sort_nearly_sorted_floats, .-ff_sort_nearly_sorted_floats
.align2
.globlff_acelp_lsf2lspd
.setnomips16
.setnomicromips
.entff_acelp_lsf2lspd
.typeff_acelp_lsf2lspd, &amp;lt; at &amp;gt;function
ff_acelp_lsf2lspd:
.frame$sp,56,$31# vars= 0, regs= 5/2, args= 16, gp= 8
.mask0x800f0000,-12
.fmask0x00300000,-8
.setnoreorder
.setnomacro

addiu$sp,$sp,-56
sw$16,28($sp)
sw$31,44($sp)
sw$19,40($sp)
sw$18,36($sp)
sw$17,32($sp)
sdc1$f20,48($sp)
blez$6,$L44
move$16,$6

lui$2,%hi($LC2)
ldc1$f20,%lo($LC2)($2)
move$19,$5
move$18,$4
move$17,$0
$L43:
lwc1$f12,0($19)
addiu$17,$17,1
addiu$19,$19,4
cvt.d.s$f12,$f12
jalcos
mul.d$f12,$f12,$f20

sdc1$f0,0($18)
bne$17,$16,$L43
addiu$18,$18,8

$L44:
lw$31,44($sp)
lw$19,40($sp)
lw$18,36($sp)
lw$17,32($sp)
lw$16,28($sp)
ldc1$f20,48($sp)
j$31
addiu$sp,$sp,56

.setmacro
.setreorder
.endff_acelp_lsf2lspd
.sizeff_acelp_lsf2lspd, .-ff_acelp_lsf2lspd
.align2
.globlff_acelp_lsf2lsp
.setnomips16
.setnomicromips
.entff_acelp_lsf2lsp
.typeff_acelp_lsf2lsp, &amp;lt; at &amp;gt;function
ff_acelp_lsf2lsp:
.frame$sp,48,$31# vars= 0, regs= 5/0, args= 16, gp= 8
.mask0x800f0000,-4
.fmask0x00000000,0
.setnoreorder
.setnomacro

addiu$sp,$sp,-48
sw$16,28($sp)
sw$31,44($sp)
sw$19,40($sp)
sw$18,36($sp)
sw$17,32($sp)
blez$6,$L49
move$16,$6

move$19,$5
move$18,$4
move$17,$0
$L48:
lh$2,0($19)
addiu$17,$17,1
addiu$19,$19,2
sll$4,$2,5
sll$3,$2,3
subu$3,$4,$3
sll$4,$3,5
subu$3,$4,$3
addu$3,$3,$2
sll$4,$3,3
subu$3,$4,$3
sll$3,$3,2
addu$2,$3,$2
jalff_cos
ext$4,$2,15,16

slt$3,$17,$16
sh$2,0($18)
bne$3,$0,$L48
addiu$18,$18,2

$L49:
lw$31,44($sp)
lw$19,40($sp)
lw$18,36($sp)
lw$17,32($sp)
lw$16,28($sp)
j$31
addiu$sp,$sp,48

.setmacro
.setreorder
.endff_acelp_lsf2lsp
.sizeff_acelp_lsf2lsp, .-ff_acelp_lsf2lsp
.align2
.globlff_acelp_lsp2lpc
.setnomips16
.setnomicromips
.entff_acelp_lsp2lpc
.typeff_acelp_lsp2lpc, &amp;lt; at &amp;gt;function
ff_acelp_lsp2lpc:
.frame$sp,120,$31# vars= 88, regs= 6/0, args= 0, gp= 8
.mask0x003f0000,-4
.fmask0x00000000,0
.setnoreorder
.setnomacro

lh$2,0($5)
addiu$sp,$sp,-120
li$3,4194304# 0x400000
subu$2,$0,$2
sll$2,$2,8
slt$7,$6,2
sw$21,116($sp)
sw$20,112($sp)
sw$19,108($sp)
sw$18,104($sp)
sw$17,100($sp)
sw$16,96($sp)
sw$2,12($sp)
bne$7,$0,$L52
sw$3,8($sp)

move$14,$5
addiu$7,$sp,12
move$17,$5
li$16,2# 0x2
$L56:
lw$13,-4($7)
lh$12,4($17)
addiu$18,$7,4
sw$13,4($7)
sra$25,$12,31
addiu$11,$7,-4
move$10,$18
move$9,$7
j$L54
move$8,$16

$L69:
lw$13,0($7)
addiu$7,$7,-4
$L54:
lw$3,0($9)
lw$24,0($11)
addiu$8,$8,-1
multu$ac0,$12,$3
sra$2,$3,31
slt$15,$8,2
addiu$11,$11,-4
addiu$9,$9,-4
mflo$20
mfhi$21
mult$2,$12
srl$2,$20,14
madd$25,$3
mflo$3
addu$21,$3,$21
sll$3,$21,18
or$2,$3,$2
subu$2,$24,$2
addu$13,$2,$13
sw$13,0($10)
beq$15,$0,$L69
addiu$10,$10,-4

lw$2,12($sp)
sll$12,$12,8
addiu$16,$16,1
subu$12,$2,$12
slt$2,$6,$16
sw$12,12($sp)
bne$2,$0,$L55
addiu$17,$17,4

j$L56
move$7,$18

$L55:
lh$2,2($5)
li$3,4194304# 0x400000
sw$3,52($sp)
subu$2,$0,$2
sll$2,$2,8
sw$2,56($sp)
addiu$11,$sp,56
li$16,2# 0x2
li$25,1# 0x1
$L60:
lw$13,-4($11)
lh$12,6($14)
addiu$5,$11,-4
addiu$17,$11,4
sw$13,4($11)
sra$24,$12,31
move$9,$5
move$10,$11
move$8,$17
j$L58
move$7,$16

$L70:
lw$13,0($10)
addiu$10,$10,-4
$L58:
lw$3,0($11)
lw$15,0($9)
addiu$7,$7,-1
multu$ac0,$12,$3
sra$2,$3,31
move$11,$5
addiu$9,$9,-4
addiu$5,$5,-4
mflo$18
mfhi$19
mult$2,$12
srl$2,$18,14
madd$24,$3
mflo$3
addu$19,$3,$19
sll$3,$19,18
or$2,$3,$2
subu$2,$15,$2
addu$13,$2,$13
sw$13,0($8)
bne$7,$25,$L70
addiu$8,$8,-4

lw$2,56($sp)
sll$12,$12,8
addiu$16,$16,1
subu$12,$2,$12
slt$2,$6,$16
sw$12,56($sp)
bne$2,$0,$L59
addiu$14,$14,4

j$L60
move$11,$17

$L59:
li$2,4096# 0x1000
sh$2,0($4)
slt$2,$6,3
$L72:
sll$18,$6,1
bne$2,$0,$L62
li$5,1# 0x1

addiu$5,$6,-3
srl$5,$5,1
addiu$8,$18,-1
lw$11,52($sp)
lw$14,56($sp)
lw$10,8($sp)
sll$2,$5,3
sll$8,$8,1
sll$9,$6,2
addiu$17,$sp,20
addu$17,$17,$2
addu$9,$4,$9
addu$8,$4,$8
addiu$2,$sp,12
move$7,$4
addiu$3,$sp,60
$L63:
lw$25,0($2)
subu$15,$12,$11
lw$11,0($3)
addiu$24,$25,1024
addu$24,$24,$10
lw$10,4($2)
subu$14,$11,$14
lw$12,4($3)
addiu$13,$10,1024
addu$13,$25,$13
subu$25,$13,$14
subu$16,$24,$15
addu$13,$14,$13
addu$15,$24,$15
sra$15,$15,11
sra$16,$16,11
sra$13,$13,11
sra$25,$25,11
addiu$2,$2,8
sh$15,2($7)
addiu$3,$3,8
sh$16,0($9)
move$14,$12
sh$13,4($7)
addiu$9,$9,-4
sh$25,0($8)
addiu$7,$7,4
bne$2,$17,$L63
addiu$8,$8,-4

sll$5,$5,1
addiu$5,$5,3
$L62:
addiu$7,$18,1
addiu$9,$sp,8
subu$7,$7,$5
addiu$3,$5,-1
sll$2,$5,2
sll$3,$3,2
sll$7,$7,1
sll$8,$5,1
addu$2,$9,$2
addiu$9,$sp,52
addu$7,$4,$7
addu$3,$9,$3
j$L65
addu$4,$4,$8

$L71:
lw$12,4($3)
$L65:
lw$10,-4($2)
lw$8,0($2)
lw$9,0($3)
addiu$5,$5,1
addu$8,$10,$8
subu$12,$12,$9
addiu$8,$8,1024
subu$10,$8,$12
addu$12,$12,$8
sra$12,$12,11
sra$10,$10,11
slt$9,$6,$5
sh$12,0($4)
addiu$3,$3,4
sh$10,0($7)
addiu$2,$2,4
addiu$4,$4,2
beq$9,$0,$L71
addiu$7,$7,-2

$L67:
lw$21,116($sp)
lw$20,112($sp)
lw$19,108($sp)
lw$18,104($sp)
lw$17,100($sp)
lw$16,96($sp)
j$31
addiu$sp,$sp,120

$L52:
lh$12,2($5)
li$2,4096# 0x1000
sw$3,52($sp)
subu$12,$0,$12
sll$12,$12,8
sh$2,0($4)
blez$6,$L67
sw$12,56($sp)

j$L72
slt$2,$6,3

.setmacro
.setreorder
.endff_acelp_lsp2lpc
.sizeff_acelp_lsp2lpc, .-ff_acelp_lsp2lpc
.align2
.globlff_acelp_lp_decode
.setnomips16
.setnomicromips
.entff_acelp_lp_decode
.typeff_acelp_lp_decode, &amp;lt; at &amp;gt;function
ff_acelp_lp_decode:
.frame$sp,80,$31# vars= 40, regs= 4/0, args= 16, gp= 8
.mask0x80070000,-4
.fmask0x00000000,0
.setnoreorder
.setnomacro

addiu$sp,$sp,-80
lw$2,96($sp)
sw$17,68($sp)
sw$16,64($sp)
move$17,$5
sw$31,76($sp)
sw$18,72($sp)
move$16,$6
blez$2,$L74
addiu$5,$sp,24

sll$10,$2,1
move$3,$0
$L75:
lhx$9,$3($7)
lhx$8,$3($16)
addu$6,$5,$3
addiu$3,$3,2
addu$8,$9,$8
sra$8,$8,1
bne$3,$10,$L75
sh$8,0($6)

$L74:
sra$18,$2,1
jalff_acelp_lsp2lpc
move$6,$18

move$4,$17
move$5,$16
jalff_acelp_lsp2lpc
move$6,$18

lw$31,76($sp)
lw$18,72($sp)
lw$17,68($sp)
lw$16,64($sp)
j$31
addiu$sp,$sp,80

.setmacro
.setreorder
.endff_acelp_lp_decode
.sizeff_acelp_lp_decode, .-ff_acelp_lp_decode
.align2
.globlff_amrwb_lsp2lpc
.setnomips16
.setnomicromips
.entff_amrwb_lsp2lpc
.typeff_amrwb_lsp2lpc, &amp;lt; at &amp;gt;function
ff_amrwb_lsp2lpc:
.frame$sp,232,$31# vars= 176, regs= 3/8, args= 0, gp= 8
.mask0x00070000,-36
.fmask0x0ff00000,-8
.setnoreorder
.setnomacro

lui$3,%hi($LC1)
ldc1$f2,0($4)
ldc1$f12,%lo($LC1)($3)
lui$2,%hi($LC0)
ldc1$f0,%lo($LC0)($2)
mul.d$f2,$f2,$f12
sra$7,$6,1
addiu$sp,$sp,-232
slt$8,$7,2
sw$18,196($sp)
sw$17,192($sp)
sw$16,188($sp)
sdc1$f26,224($sp)
sdc1$f24,216($sp)
sdc1$f22,208($sp)
sdc1$f20,200($sp)
sw$0,8($sp)
sw$0,12($sp)
sdc1$f0,96($sp)
bne$8,$0,$L80
sdc1$f2,104($sp)

addiu$14,$sp,96
move$13,$4
move$8,$14
move$17,$4
li$25,1# 0x1
li$15,1# 0x1
$L85:
ldc1$f0,16($17)
ldc1$f6,8($8)
ldc1$f4,0($8)
mul.d$f0,$f12,$f0
move$10,$25
add.d$f2,$f4,$f4
mul.d$f8,$f0,$f6
add.d$f2,$f8,$f2
beq$25,$15,$L107
sdc1$f2,16($8)

addiu$16,$25,1
slt$9,$16,5
bne$9,$0,$L82
addiu$18,$8,8

move$12,$8
addiu$10,$8,-8
addiu$11,$25,-1
move$9,$18
addiu$8,$8,-16
$L83:
mul.d$f10,$f0,$f4
ldc1$f2,0($10)
addiu$11,$11,-2
slt$24,$11,3
mul.d$f8,$f0,$f2
addiu$10,$10,-16
add.d$f10,$f10,$f2
add.d$f10,$f10,$f6
mov.d$f6,$f2
sdc1$f10,0($9)
ldc1$f2,0($8)
addiu$9,$9,-16
addiu$8,$8,-16
add.d$f8,$f8,$f2
add.d$f8,$f4,$f8
mov.d$f4,$f2
sdc1$f8,0($12)
beq$24,$0,$L83
addiu$12,$12,-16

addiu$10,$25,-4
srl$10,$10,1
sll$10,$10,1
addiu$25,$25,-2
subu$10,$25,$10
$L82:
addiu$9,$10,-2
addiu$11,$10,-1
sll$8,$10,3
sll$9,$9,3
sll$10,$11,3
addu$8,$14,$8
addu$10,$14,$10
j$L84
addu$9,$14,$9

$L108:
addiu$11,$11,-1
$L84:
ldc1$f2,0($10)
ldc1$f6,0($9)
ldc1$f4,0($8)
mul.d$f2,$f0,$f2
addiu$10,$10,-8
addiu$9,$9,-8
add.d$f2,$f2,$f6
add.d$f2,$f4,$f2
sdc1$f2,0($8)
bne$11,$15,$L108
addiu$8,$8,-8

ldc1$f2,104($sp)
addiu$17,$17,16
move$8,$18
add.d$f0,$f2,$f0
move$25,$16
bne$16,$7,$L85
sdc1$f0,104($sp)

ldc1$f0,8($4)
$L111:
ldc1$f8,%lo($LC1)($3)
ldc1$f2,%lo($LC0)($2)
slt$3,$7,3
mul.d$f0,$f0,$f8
sdc1$f2,16($sp)
addiu$12,$sp,8
bne$3,$0,$L86
sdc1$f0,24($sp)

addiu$16,$sp,24
addiu$18,$7,-1
li$25,1# 0x1
move$17,$0
li$15,1# 0x1
addiu$24,$sp,16
$L89:
ldc1$f6,24($13)
ldc1$f2,0($16)
ldc1$f0,-8($16)
mul.d$f6,$f8,$f6
move$3,$25
add.d$f0,$f0,$f0
mul.d$f2,$f6,$f2
add.d$f0,$f2,$f0
beq$25,$15,$L87
sdc1$f0,8($16)

sll$10,$25,3
addiu$9,$17,-8
move$8,$17
$L88:
addu$11,$12,$8
ldc1$f0,8($11)
addu$11,$12,$9
ldc1$f4,8($11)
mul.d$f0,$f6,$f0
addu$11,$24,$10
ldc1$f2,0($11)
addiu$3,$3,-1
addiu$10,$10,-8
addiu$8,$8,-8
addiu$9,$9,-8
add.d$f0,$f0,$f4
add.d$f0,$f2,$f0
bne$3,$15,$L88
sdc1$f0,0($11)

$L87:
ldc1$f0,24($sp)
addiu$25,$25,1
addiu$13,$13,16
add.d$f6,$f0,$f6
addiu$16,$16,8
addiu$17,$17,8
bne$25,$18,$L89
sdc1$f6,24($sp)

$L86:
addiu$24,$6,-1
sll$3,$24,3
addu$4,$3,$4
slt$3,$7,5
ldc1$f8,0($4)
move$17,$24
bne$3,$0,$L109
addiu$18,$7,-2

ldc1$f6,%lo($LC0)($2)
lui$25,%hi($LC3)
addiu$15,$6,-2
sub.d$f10,$f6,$f8
add.d$f6,$f8,$f6
addiu$13,$6,-3
addiu$11,$6,-4
ldc1$f4,8($sp)
ldc1$f2,16($sp)
ldc1$f0,%lo($LC3)($25)
sll$15,$15,2
sll$13,$13,2
sll$11,$11,2
addu$15,$5,$15
addu$13,$5,$13
addu$11,$5,$11
addiu$10,$sp,104
addiu$9,$sp,24
move$4,$5
li$8,1# 0x1
$L92:
ldc1$f12,0($9)
ldc1$f22,0($10)
ldc1$f18,8($10)
sub.d$f20,$f12,$f4
ldc1$f4,8($9)
ldc1$f14,16($10)
mul.d$f18,$f6,$f18
sub.d$f16,$f4,$f2
ldc1$f2,16($9)
mul.d$f14,$f6,$f14
mul.d$f20,$f20,$f10
sub.d$f12,$f2,$f12
mul.d$f22,$f6,$f22
mul.d$f16,$f10,$f16
addiu$8,$8,3
mul.d$f12,$f10,$f12
addiu$3,$8,1
slt$16,$3,$18
addiu$10,$10,24
addiu$9,$9,24
sub.d$f24,$f22,$f20
add.d$f22,$f22,$f20
sub.d$f20,$f18,$f16
add.d$f16,$f18,$f16
sub.d$f18,$f14,$f12
add.d$f12,$f14,$f12
mul.d$f26,$f22,$f0
mul.d$f24,$f24,$f0
mul.d$f22,$f16,$f0
mul.d$f12,$f12,$f0
mul.d$f20,$f20,$f0
mul.d$f18,$f18,$f0
subu$17,$6,$8
cvt.s.d$f14,$f26
cvt.s.d$f17,$f24
cvt.s.d$f16,$f22
cvt.s.d$f12,$f12
cvt.s.d$f15,$f20
cvt.s.d$f13,$f18
swc1$f14,0($4)
swc1$f17,0($15)
swc1$f16,4($4)
addiu$15,$15,-12
swc1$f15,0($13)
swc1$f12,8($4)
addiu$13,$13,-12
swc1$f13,0($11)
addiu$4,$4,12
bne$16,$0,$L92
addiu$11,$11,-12

$L91:
ldc1$f10,%lo($LC0)($2)
addiu$6,$8,-1
addiu$4,$17,-1
sub.d$f12,$f10,$f8
add.d$f10,$f8,$f10
ldc1$f4,%lo($LC3)($25)
sll$9,$8,3
sll$6,$6,2
sll$4,$4,2
addiu$8,$8,-2
addu$14,$14,$9
sll$8,$8,3
addu$6,$5,$6
addu$4,$5,$4
$L93:
addu$10,$12,$8
addu$11,$12,$9
ldc1$f6,8($11)
ldc1$f0,8($10)
ldc1$f2,0($14)
slt$10,$3,$7
sub.d$f0,$f6,$f0
mul.d$f2,$f10,$f2
addiu$14,$14,8
addiu$9,$9,8
mul.d$f0,$f0,$f12
addiu$8,$8,8
addiu$3,$3,1
sub.d$f6,$f2,$f0
add.d$f2,$f2,$f0
mul.d$f6,$f6,$f4
mul.d$f2,$f2,$f4
cvt.s.d$f1,$f6
cvt.s.d$f0,$f2
swc1$f0,0($6)
swc1$f1,0($4)
addiu$6,$6,4
bne$10,$0,$L93
addiu$4,$4,-4

$L94:
ldc1$f4,%lo($LC0)($2)
sll$2,$7,3
addu$12,$2,$12
add.d$f4,$f8,$f4
ldc1$f0,88($12)
ldc1$f2,%lo($LC3)($25)
addiu$7,$7,-1
mul.d$f0,$f4,$f0
sll$7,$7,2
sll$24,$24,2
addu$24,$24,$5
cvt.s.d$f8,$f8
addu$5,$7,$5
lw$18,196($sp)
lw$17,192($sp)
mul.d$f0,$f0,$f2
lw$16,188($sp)
ldc1$f26,224($sp)
ldc1$f24,216($sp)
ldc1$f22,208($sp)
ldc1$f20,200($sp)
addiu$sp,$sp,232
cvt.s.d$f0,$f0
swc1$f0,0($5)
j$31
swc1$f8,0($24)

$L107:
ldc1$f2,104($sp)
addiu$18,$8,8
addiu$16,$15,1
add.d$f0,$f2,$f0
addiu$17,$17,16
move$8,$18
move$25,$16
bne$16,$7,$L85
sdc1$f0,104($sp)

j$L111
ldc1$f0,8($4)

$L80:
ldc1$f2,8($4)
addiu$24,$6,-1
sll$3,$24,3
mul.d$f12,$f2,$f12
addu$4,$3,$4
sdc1$f0,16($sp)
ldc1$f8,0($4)
addiu$12,$sp,8
lui$25,%hi($LC3)
j$L94
sdc1$f12,24($sp)

$L109:
li$8,1# 0x1
lui$25,%hi($LC3)
j$L91
li$3,2# 0x2

.setmacro
.setreorder
.endff_amrwb_lsp2lpc
.sizeff_amrwb_lsp2lpc, .-ff_amrwb_lsp2lpc
.align2
.globlff_acelp_lspd2lpc
.setnomips16
.setnomicromips
.entff_acelp_lspd2lpc
.typeff_acelp_lspd2lpc, &amp;lt; at &amp;gt;function
ff_acelp_lspd2lpc:
.frame$sp,224,$31# vars= 184, regs= 4/0, args= 16, gp= 8
.mask0x80070000,-4
.fmask0x00000000,0
.setnoreorder
.setnomacro

addiu$sp,$sp,-224
sw$17,212($sp)
sll$17,$6,3
sw$18,216($sp)
sw$16,208($sp)
addiu$17,$17,-4
move$16,$4
lui$18,%hi($LC1)
slt$4,$6,11
sw$5,200($sp)
sw$6,204($sp)
sw$31,220($sp)
jalassert
addu$17,$5,$17

ldc1$f2,0($16)
ldc1$f12,%lo($LC1)($18)
lui$25,%hi($LC0)
lw$6,204($sp)
mul.d$f2,$f2,$f12
ldc1$f0,%lo($LC0)($25)
slt$2,$6,2
lw$5,200($sp)
sdc1$f0,24($sp)
bne$2,$0,$L113
sdc1$f2,32($sp)

addiu$9,$sp,24
move$10,$16
move$2,$9
move$15,$16
li$13,1# 0x1
li$11,1# 0x1
$L118:
ldc1$f0,16($15)
ldc1$f6,8($2)
ldc1$f4,0($2)
mul.d$f0,$f12,$f0
move$4,$13
add.d$f2,$f4,$f4
mul.d$f8,$f0,$f6
add.d$f2,$f8,$f2
beq$13,$11,$L141
sdc1$f2,16($2)

addiu$14,$13,1
slt$3,$14,5
bne$3,$0,$L115
addiu$24,$2,8

move$8,$2
addiu$4,$2,-8
addiu$7,$13,-1
move$3,$24
addiu$2,$2,-16
$L116:
mul.d$f10,$f0,$f4
ldc1$f2,0($4)
addiu$7,$7,-2
slt$12,$7,3
mul.d$f8,$f0,$f2
addiu$4,$4,-16
add.d$f10,$f10,$f2
add.d$f10,$f10,$f6
mov.d$f6,$f2
sdc1$f10,0($3)
ldc1$f2,0($2)
addiu$3,$3,-16
addiu$2,$2,-16
add.d$f8,$f8,$f2
add.d$f8,$f4,$f8
mov.d$f4,$f2
sdc1$f8,0($8)
beq$12,$0,$L116
addiu$8,$8,-16

addiu$4,$13,-4
srl$4,$4,1
sll$4,$4,1
addiu$13,$13,-2
subu$4,$13,$4
$L115:
addiu$3,$4,-2
addiu$7,$4,-1
sll$2,$4,3
sll$3,$3,3
sll$4,$7,3
addu$2,$9,$2
addu$4,$9,$4
j$L117
addu$3,$9,$3

$L142:
addiu$7,$7,-1
$L117:
ldc1$f2,0($4)
ldc1$f6,0($3)
ldc1$f4,0($2)
mul.d$f2,$f0,$f2
addiu$4,$4,-8
addiu$3,$3,-8
add.d$f2,$f2,$f6
add.d$f2,$f4,$f2
sdc1$f2,0($2)
bne$7,$11,$L142
addiu$2,$2,-8

ldc1$f2,32($sp)
addiu$15,$15,16
move$2,$24
add.d$f0,$f2,$f0
move$13,$14
bne$14,$6,$L118
sdc1$f0,32($sp)

ldc1$f4,8($16)
$L147:
ldc1$f0,%lo($LC1)($18)
ldc1$f2,%lo($LC0)($25)
addiu$14,$sp,112
mov.d$f12,$f0
mul.d$f0,$f4,$f0
sdc1$f2,112($sp)
move$2,$14
li$13,1# 0x1
li$11,1# 0x1
sdc1$f0,120($sp)
$L123:
ldc1$f0,24($10)
ldc1$f6,8($2)
ldc1$f4,0($2)
mul.d$f0,$f12,$f0
move$4,$13
add.d$f2,$f4,$f4
mul.d$f8,$f0,$f6
add.d$f2,$f8,$f2
beq$13,$11,$L143
sdc1$f2,16($2)

addiu$15,$13,1
slt$3,$15,5
bne$3,$0,$L120
addiu$24,$2,8

move$8,$2
addiu$4,$2,-8
addiu$7,$13,-1
move$3,$24
addiu$2,$2,-16
$L121:
mul.d$f10,$f0,$f4
ldc1$f2,0($4)
addiu$7,$7,-2
slt$12,$7,3
mul.d$f8,$f0,$f2
addiu$4,$4,-16
add.d$f10,$f10,$f2
add.d$f10,$f10,$f6
mov.d$f6,$f2
sdc1$f10,0($3)
ldc1$f2,0($2)
addiu$3,$3,-16
addiu$2,$2,-16
add.d$f8,$f8,$f2
add.d$f8,$f4,$f8
mov.d$f4,$f2
sdc1$f8,0($8)
beq$12,$0,$L121
addiu$8,$8,-16

addiu$4,$13,-4
srl$4,$4,1
sll$4,$4,1
addiu$13,$13,-2
subu$4,$13,$4
$L120:
addiu$3,$4,-2
addiu$7,$4,-1
sll$2,$4,3
sll$3,$3,3
sll$4,$7,3
addu$2,$14,$2
addu$4,$14,$4
j$L122
addu$3,$14,$3

$L144:
addiu$7,$7,-1
$L122:
ldc1$f2,0($4)
ldc1$f6,0($3)
ldc1$f4,0($2)
mul.d$f2,$f0,$f2
addiu$4,$4,-8
addiu$3,$3,-8
add.d$f2,$f2,$f6
add.d$f2,$f4,$f2
sdc1$f2,0($2)
bne$7,$11,$L144
addiu$2,$2,-8

ldc1$f2,120($sp)
move$13,$15
addiu$10,$10,16
add.d$f0,$f2,$f0
move$2,$24
bne$6,$15,$L123
sdc1$f0,120($sp)

$L126:
sll$2,$6,3
$L146:
addu$2,$2,$9
addiu$6,$6,-1
lui$3,%hi($LC3)
ldc1$f10,0($2)
ldc1$f8,88($2)
sll$4,$6,2
ldc1$f12,%lo($LC3)($3)
sll$3,$6,3
addu$3,$14,$3
addu$5,$5,$4
subu$17,$17,$4
$L125:
ldc1$f4,-8($2)
ldc1$f6,0($3)
addiu$2,$2,-8
add.d$f2,$f4,$f10
sub.d$f0,$f8,$f6
mov.d$f10,$f4
addiu$3,$3,-8
mov.d$f8,$f6
sub.d$f4,$f2,$f0
add.d$f2,$f2,$f0
mul.d$f4,$f4,$f12
mul.d$f2,$f2,$f12
cvt.s.d$f1,$f4
cvt.s.d$f0,$f2
swc1$f0,0($5)
swc1$f1,0($17)
addiu$5,$5,-4
bne$2,$9,$L125
addiu$17,$17,4

$L127:
lw$31,220($sp)
lw$18,216($sp)
lw$17,212($sp)
lw$16,208($sp)
j$31
addiu$sp,$sp,224

$L143:
ldc1$f2,120($sp)
addiu$24,$2,8
addiu$15,$11,1
add.d$f0,$f2,$f0
move$13,$15
addiu$10,$10,16
move$2,$24
bne$6,$15,$L123
sdc1$f0,120($sp)

j$L146
sll$2,$6,3

$L141:
ldc1$f2,32($sp)
addiu$24,$2,8
addiu$14,$11,1
add.d$f0,$f2,$f0
addiu$15,$15,16
move$2,$24
move$13,$14
bne$14,$6,$L118
sdc1$f0,32($sp)

j$L147
ldc1$f4,8($16)

$L113:
ldc1$f2,8($16)
sdc1$f0,112($sp)
mul.d$f12,$f2,$f12
beq$6,$0,$L127
sdc1$f12,120($sp)

addiu$9,$sp,24
j$L126
addiu$14,$sp,112

.setmacro
.setreorder
.endff_acelp_lspd2lpc
.sizeff_acelp_lspd2lpc, .-ff_acelp_lspd2lpc
.section.rodata.cst8,"aM",&amp;lt; at &amp;gt;progbits,8
.align3
$LC0:
.word0
.word1072693248
.align3
$LC1:
.word0
.word-1073741824
.align3
$LC2:
.word1413754136
.word1075388923
.align3
$LC3:
.word0
.word1071644672
.ident"GCC: (Sourcery G++ Lite 4.4-303) 4.4.1"
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel&amp;lt; at &amp;gt;ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
&lt;/pre&gt;</description>
    <dc:creator>Babic, Nedeljko</dc:creator>
    <dc:date>2012-05-24T16:30:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145200">
    <title>Re: Format of decoded subtitles (was: matroska:Identify S_TEXT/UTF-8 tracks as SRT and not TEXT.)</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145200</link>
    <description>&lt;pre&gt;
maybe:
pick the most complete format and extend it to become a superset of
all you want to support

[...]

&lt;/pre&gt;</description>
    <dc:creator>Michael Niedermayer</dc:creator>
    <dc:date>2012-05-24T14:35:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145199">
    <title>Re: Format of decoded subtitles (was: matroska: Identify S_TEXT/UTF-8 tracks as SRT and not TEXT.)</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145199</link>
    <description>&lt;pre&gt;
So if I understand well, you would propose a model with libsubconvert
doing any kind of markup conversion instead of the current model where the
decoder is "encoding" the event in ASS, bitmap or text?

I don't think we really need to change this, I'm not sure to see the
direct benefit.


It should, for text-based subtitles. At least for the "useful" markup. But
I admit ASS has some annoying limitations, especially with some particular
subtitles features:

 - the first one I have in mind is that there is no text representation
   for the "last up to the next subtitles" feature. Example: MicroDVD (and
   SAMI which I'm working on ATM) have features like this:

   {500}{600}this is printed starting at frame 500 and last until frame 600
   {1234}{}this starts being displayed at frame 1234...
   {1400}{}...and will be "replaced" by this text until the end.

   We can express this in the AVPacket (pkt.duration = -1 for example),
   but to encode the ASS event, it's not possible to have 00:01:02:03
   -1:-1:-1:-1 for instance. So we need to workaround this.

 - One random limitation against SAMI: this insane HTML-based format
   (actually not HTML at all, but full CSS2 compliant...), has two
   subtitles place holders. Basically it's two subtitles in one (one to
   print the talker name, and one for what's being said), relying on
   various presentation markup expectation which ASS can't honor (I don't
   want to try converting &amp;lt;table&amp;gt; into ASS markup for example).

 - Other crazy, but of limited usefulness: &amp;lt;img&amp;gt; tag in SAMI (yes...) or
   even in JACOSub.

 - Last one is the precision limitation we already talked about (tb 1/100
   for ASS, and 1/1000 for ones like SRT).


For this particular use-case, isn't it possible to just alter the demuxed
subtitles packet (ASS, text or bitmap field) before feeding it to the
decoder doing the rendering?



Ah yes this was one of the issue: but don't we have width/height
information in the ASS header?

This makes me realize it is a problem if we have a subtitles format which
says "use the input video resolution to do &amp;lt;whatever&amp;gt;" (and don't have it
stored in its header like ASS) and we need to generate a ASS extradata
header with the input video resolution we don't have access to (or do
we?).


Using lavfi would solve the problem?


Well rendering can be done conditionally, even in the core. And anyway, I
don't expect to use anything else that libass for doing it.


I was wondering for long why this method wasn't preferred. This kind of
critics are useful :)

BTW, I don't think the encoders for (text) subtitles are much needed:
most people just want to render SubRip, MicroDVD and ASS, and eventually
convert an old deprecated not widely used format to a more modern one with
markup like ASS. This is why I emit some doubt about a "libsubconvert"
meant to do all kind of crazy convert.

&lt;/pre&gt;</description>
    <dc:creator>Clément Bœsch</dc:creator>
    <dc:date>2012-05-24T14:15:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145198">
    <title>FATE and git push</title>
    <link>http://permalink.gmane.org/gmane.comp.video.ffmpeg.devel/145198</link>
    <description>&lt;pre&gt;Hi

id like to remind everyone to please either run the regression tests
before you push changes or to push in a clone of ffmpeg and ask me
to pull. Iam happy to run the regression tests for you, iam not happy
to have everyones work disrupted due to broken regression tests.

&lt;/pre&gt;</description>
    <dc:creator>Michael Niedermayer</dc:creator>
    <dc:date>2012-05-24T12:29:11</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.video.ffmpeg.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.video.ffmpeg.devel</link>
  </textinput>
</rdf:RDF>

