Am 21.07.16 um 04:17 schrieb Umair Khan:
> On Tue, Jul 19, 2016 at 11:17 PM, Umair Khan <omerj...@gmail.com> wrote:
>>
>> Updated patch.
>>
>> On Tue, Jul 19, 2016 at 8:19 PM, Thilo Borgmann <thilo.borgm...@mail.de> 
>> wrote:
>>> Am 19.07.16 um 15:42 schrieb Umair Khan:
>>>> On Tue, Jul 19, 2016 at 5:20 PM, Thilo Borgmann <thilo.borgm...@mail.de> 
>>>> wrote:
>>>>> Am 19.07.16 um 09:22 schrieb Umair Khan:
>>>>>> On Tue, Jul 19, 2016 at 12:29 PM, Paul B Mahol <one...@gmail.com> wrote:
>>>>>>>
>>>>>>> On 7/19/16, Umair Khan <omerj...@gmail.com> wrote:
>>>>>>>> On Tue, Jul 19, 2016 at 3:08 AM, Michael Niedermayer
>>>>>>>> <mich...@niedermayer.cc> wrote:
>>>>>>>>> On Mon, Jul 18, 2016 at 11:42:48PM +0530, Umair Khan wrote:
>>>>>>>>>> On Sun, Jul 17, 2016 at 3:38 PM, Michael Niedermayer
>>>>>>>>>> <mich...@niedermayer.cc> wrote:
>>>>>>>>>>> On Sun, Jul 17, 2016 at 11:54:49AM +0200, Michael Niedermayer wrote:
>>>>>>>>>>>> On Sun, Jul 17, 2016 at 09:00:48AM +0530, Umair Khan wrote:
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sun, Jul 17, 2016 at 12:25 AM, Thilo Borgmann
>>>>>>>>>>>>> <thilo.borgm...@mail.de> wrote:
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> From 70e65b26cc3f84c9c664c30808b43a5e1cf16eaa Mon Sep 17 
>>>>>>>>>>>>>>> 00:00:00
>>>>>>>>>>>>>>> 2001
>>>>>>>>>>>>>>> From: Umair Khan <omerj...@gmail.com>
>>>>>>>>>>>>>>> Date: Sat, 16 Jul 2016 23:52:39 +0530
>>>>>>>>>>>>>>> Subject: [PATCH 1/1] avcodec/alsdec: implement floating point
>>>>>>>>>>>>>>> decoding
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> It conforms to RM22 version of the reference codec.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Signed-off-by: Umair Khan <omerj...@gmail.com>
>>>>>>>>>>>>>>> ---
>>>>>>>>>>>>>>>  libavcodec/Makefile           |   2 +-
>>>>>>>>>>>>>>>  libavcodec/alsdec.c           | 284
>>>>>>>>>>>>>>> +++++++++++++++++++++++++++++++++++++++++-
>>>>>>>>>>>>>>>  libavcodec/mlz.c              | 171 +++++++++++++++++++++++++
>>>>>>>>>>>>>>>  libavcodec/mlz.h              |  69 ++++++++++
>>>>>>>>>>>>>>>  libavutil/softfloat_ieee754.h | 115 +++++++++++++++++
>>>>>>>>>>>>>>>  5 files changed, 638 insertions(+), 3 deletions(-)
>>>>>>>>>>>>>>>  create mode 100644 libavcodec/mlz.c
>>>>>>>>>>>>>>>  create mode 100644 libavcodec/mlz.h
>>>>>>>>>>>>>>>  create mode 100644 libavutil/softfloat_ieee754.h
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
>>>>>>>>>>>>>>> index abef19e..a03adf5 100644
>>>>>>>>>>>>>>> --- a/libavcodec/Makefile
>>>>>>>>>>>>>>> +++ b/libavcodec/Makefile
>>>>>>>>>>>>>>> @@ -163,7 +163,7 @@ OBJS-$(CONFIG_ALAC_DECODER)            +=
>>>>>>>>>>>>>>> alac.o alac_data.o alacdsp.o
>>>>>>>>>>>>>>>  OBJS-$(CONFIG_ALAC_ENCODER)            += alacenc.o alac_data.o
>>>>>>>>>>>>>>>  OBJS-$(CONFIG_ALIAS_PIX_DECODER)       += aliaspixdec.o
>>>>>>>>>>>>>>>  OBJS-$(CONFIG_ALIAS_PIX_ENCODER)       += aliaspixenc.o
>>>>>>>>>>>>>>> -OBJS-$(CONFIG_ALS_DECODER)             += alsdec.o bgmc.o
>>>>>>>>>>>>>>> mpeg4audio.o
>>>>>>>>>>>>>>> +OBJS-$(CONFIG_ALS_DECODER)             += alsdec.o bgmc.o mlz.o
>>>>>>>>>>>>>>> mpeg4audio.o
>>>>>>>>>>>>>>>  OBJS-$(CONFIG_AMRNB_DECODER)           += amrnbdec.o
>>>>>>>>>>>>>>> celp_filters.o   \
>>>>>>>>>>>>>>>                                            celp_math.o
>>>>>>>>>>>>>>> acelp_filters.o \
>>>>>>>>>>>>>>>                                            acelp_vectors.o
>>>>>>>>>>>>>>>      \
>>>>>>>>>>>>>>> diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c
>>>>>>>>>>>>>>> index a7e58a2..c710fc3 100644
>>>>>>>>>>>>>>> --- a/libavcodec/alsdec.c
>>>>>>>>>>>>>>> +++ b/libavcodec/alsdec.c
>>>>>>>>>>>>>>> @@ -35,8 +35,11 @@
>>>>>>>>>>>>>>>  [...]
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> +/** multiply two softfloats and handle the rounding off
>>>>>>>>>>>>>>> + */
>>>>>>>>>>>>>>> +static SoftFloat_IEEE754 multiply(SoftFloat_IEEE754 a,
>>>>>>>>>>>>>>> SoftFloat_IEEE754 b) {
>>>>>>>>>>>>>>> [...]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Why is this in alsdec.c?
>>>>>>>>>>>>>
>>>>>>>>>>>>> This is not the actual IEEE 754 multiplication. It is as is
>>>>>>>>>>>>> mentioned
>>>>>>>>>>>>> in the reference spec.
>>>>>>>>>>>>> The typical one for 754 floats, I've implemented here separately -
>>>>>>>>>>>>> https://github.com/omerjerk/FFmpeg/commit/d6cd4bf66b9da46dd87580d7d974ce44abdcfba2#diff-4dd4b2d8d523f336fbefa96e9252187cR93
>>>>>>>>>>>>>
>>>>>>>>>>>>>> [...]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> diff --git a/libavcodec/mlz.c b/libavcodec/mlz.c
>>>>>>>>>>>>>>> new file mode 100644
>>>>>>>>>>>>>>> index 0000000..cb2ed6a
>>>>>>>>>>>>>>> --- /dev/null
>>>>>>>>>>>>>>> +++ b/libavcodec/mlz.c
>>>>>>>>>>>>>>> [...]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> +static int input_code(GetBitContext* gb, int len) {
>>>>>>>>>>>>>>> +    int tmp_code = 0;
>>>>>>>>>>>>>>> +    int i;
>>>>>>>>>>>>>>> +    for (i = 0; i < len; ++i) {
>>>>>>>>>>>>>>> +        tmp_code += get_bits1(gb) << i;
>>>>>                              |=
>>>>> should be better.
>>>>>
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +    return tmp_code;
>>>>>>>>>>>>>>> +}
>>>>>
>>>>> Also, you could revert it byte-wise using ff_revert[]... if len is often 
>>>>> bigger
>>>>> than 8 that might be worth it.
>>>>
>>>> I didn't get you.
>>>
>>> tmp_code |= get_bits1(gb) << i;
>>>
>>>
>>>> I tried logging that variable and len is always greater than 8. So
>>>> what should we go with?
>>>> It was 9 or 10 for the file I ran. And going with the logic of lzw, it
>>>> will hardly be greater than 11 ever.
>>>
>>> I think it would not benefit enough from ff_reverse then. Keep the loop.
> 
> I'm really sorry for top posting. But anything else with the patch left?

Nothing yet, more reviewers might be working on it though... thus another week
should be spent to wait for more comments.

-Thilo

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to