You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.7KB

  1. /*
  2. * H261 common code
  3. * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
  4. * Copyright (c) 2004 Maarten Daniels
  5. *
  6. * This file is part of FFmpeg.
  7. *
  8. * FFmpeg is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU Lesser General Public
  10. * License as published by the Free Software Foundation; either
  11. * version 2.1 of the License, or (at your option) any later version.
  12. *
  13. * FFmpeg is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * Lesser General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU Lesser General Public
  19. * License along with FFmpeg; if not, write to the Free Software
  20. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  21. */
  22. /**
  23. * @file
  24. * h261codec.
  25. */
  26. #include "dsputil.h"
  27. #include "avcodec.h"
  28. #include "h261.h"
  29. #define IS_FIL(a) ((a)&MB_TYPE_H261_FIL)
  30. uint8_t ff_h261_rl_table_store[2][2*MAX_RUN + MAX_LEVEL + 3];
  31. void ff_h261_loop_filter(MpegEncContext *s){
  32. H261Context * h= (H261Context*)s;
  33. const int linesize = s->linesize;
  34. const int uvlinesize= s->uvlinesize;
  35. uint8_t *dest_y = s->dest[0];
  36. uint8_t *dest_cb= s->dest[1];
  37. uint8_t *dest_cr= s->dest[2];
  38. if(!(IS_FIL (h->mtype)))
  39. return;
  40. s->dsp.h261_loop_filter(dest_y , linesize);
  41. s->dsp.h261_loop_filter(dest_y + 8, linesize);
  42. s->dsp.h261_loop_filter(dest_y + 8 * linesize , linesize);
  43. s->dsp.h261_loop_filter(dest_y + 8 * linesize + 8, linesize);
  44. s->dsp.h261_loop_filter(dest_cb, uvlinesize);
  45. s->dsp.h261_loop_filter(dest_cr, uvlinesize);
  46. }