[FFmpeg-devel] [PATCH] avcodec/clearvideo: add inter-frame decoding
Paul B Mahol
onemda at gmail.com
Tue Apr 3 11:42:37 EEST 2018
On 4/3/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
> On Mon, Apr 02, 2018 at 08:18:02PM +0200, Paul B Mahol wrote:
>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>> ---
>> libavcodec/clearvideo.c | 2394
>> ++++++++++++++++++++++++++++++++++++++++++++++-
>> 1 file changed, 2378 insertions(+), 16 deletions(-)
>>
> [...]
>
>> @@ -271,6 +2022,332 @@ static int decode_mb(CLVContext *c, int x, int y)
>> return 0;
>> }
>>
>> +static MV pred(MV a, MV b, MV c)
>> +{
>> + MV mv;
>> +
>> + if (a.x < b.x) {
>> + if (b.x < c.x) {
>> + mv.x = b.x;
>> + } else {
>> + if (a.x < c.x) {
>> + mv.x = c.x;
>> + } else {
>> + mv.x = a.x;
>> + }
>> + }
>> + } else {
>> + if (b.x < c.x) {
>> + if (a.x < c.x) {
>> + mv.x = a.x;
>> + } else {
>> + mv.x = c.x;
>> + }
>> + } else {
>> + mv.x = b.x;
>> + }
>> + }
>> +
>> + if (a.y < b.y) {
>> + if (b.y < c.y) {
>> + mv.y = b.y;
>> + } else {
>> + if (a.y < c.y) {
>> + mv.y = c.y;
>> + } else {
>> + mv.y = a.y;
>> + }
>> + }
>> + } else {
>> + if (b.y < c.y) {
>> + if (a.y < c.y) {
>> + mv.y = a.y;
>> + } else {
>> + mv.y = c.y;
>> + }
>> + } else {
>> + mv.y = b.y;
>> + }
>> + }
>
> is this mid_pred() ?
Yes. Fixed locally.
>
>
> [...]
>> @@ -290,7 +2367,13 @@ static int clv_decode_frame(AVCodecContext *avctx,
>> void *data,
>>
>> frame_type = bytestream2_get_byte(&gb);
>>
>> - if (frame_type & 0x2) {
>
>> + if (frame_type & 0x7f == 0x30) {
>
> missing ()
Added locally.
>
>
> [...]
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Old school: Use the lowest level language in which you can solve the
> problem
> conveniently.
> New school: Use the highest level language in which the latest
> supercomputer
> can solve the problem without the user falling asleep waiting.
>
More information about the ffmpeg-devel
mailing list