[cvs] / xvidcore / src / xvid.c Repository:
ViewVC logotype

Diff of /xvidcore/src/xvid.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.81, Tue Jun 2 13:06:49 2009 UTC revision 1.84, Sun Oct 17 17:46:43 2010 UTC
# Line 4  Line 4 
4   *  - Native API implementation  -   *  - Native API implementation  -
5   *   *
6   *  Copyright(C) 2001-2004 Peter Ross <pross@xvid.org>   *  Copyright(C) 2001-2004 Peter Ross <pross@xvid.org>
7     *               2002-2010 Michael Militzer <isibaar@xvid.org>
8   *   *
9   *  This program is free software ; you can redistribute it and/or modify   *  This program is free software ; you can redistribute it and/or modify
10   *  it under the terms of the GNU General Public License as published by   *  it under the terms of the GNU General Public License as published by
# Line 43  Line 44 
44  #endif  #endif
45  #endif  #endif
46    
47    #if defined(__amigaos4__)
48    #include <exec/exec.h>
49    #include <proto/exec.h>
50    #endif
51    
52  #include "xvid.h"  #include "xvid.h"
53  #include "decoder.h"  #include "decoder.h"
54  #include "encoder.h"  #include "encoder.h"
# Line 69  Line 75 
75    
76  #if (defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)) && defined(_MSC_VER)  #if (defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)) && defined(_MSC_VER)
77  #       include <windows.h>  #       include <windows.h>
78  #elif defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) || defined(ARCH_IS_PPC)  #elif defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) || (defined(ARCH_IS_PPC) && !defined(__amigaos4__))
79  #       include <signal.h>  #       include <signal.h>
80  #       include <setjmp.h>  #       include <setjmp.h>
81    
# Line 82  Line 88 
88          }          }
89  #endif  #endif
90    
   
91  /*  /*
92   * Calls the funcptr, and returns whether SIGILL (illegal instruction) was   * Calls the funcptr, and returns whether SIGILL (illegal instruction) was
93   * signalled   * signalled
# Line 105  Line 110 
110          }          }
111          return(0);          return(0);
112  }  }
113  #elif defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) || defined(ARCH_IS_PPC)  #elif defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) || (defined(ARCH_IS_PPC) && !defined(__amigaos4__))
114  static int  static int
115  sigill_check(void (*func)())  sigill_check(void (*func)())
116  {  {
# Line 157  Line 162 
162  #endif  #endif
163    
164  #if defined(ARCH_IS_PPC)  #if defined(ARCH_IS_PPC)
165    #if defined(__amigaos4__)
166            {
167                    uint32_t vector_unit = VECTORTYPE_NONE;
168                    IExec->GetCPUInfoTags(GCIT_VectorUnit, &vector_unit, TAG_END);
169                    if (vector_unit == VECTORTYPE_ALTIVEC) {
170                            cpu_flags |= XVID_CPU_ALTIVEC;
171                    }
172            }
173    #else
174          if (!sigill_check(altivec_trigger))          if (!sigill_check(altivec_trigger))
175                  cpu_flags |= XVID_CPU_ALTIVEC;                  cpu_flags |= XVID_CPU_ALTIVEC;
176  #endif  #endif
177    #endif
178    
179          return cpu_flags;          return cpu_flags;
180  }  }
181    
182    
183  /*****************************************************************************  /*****************************************************************************
184   * XviD Init Entry point   * Xvid Init Entry point
185   *   *
186   * Well this function initialize all internal function pointers according   * Well this function initialize all internal function pointers according
187   * to the CPU features forced by the library client or autodetected (depending   * to the CPU features forced by the library client or autodetected (depending
# Line 707  Line 722 
722        info -> num_threads = 1;        info -> num_threads = 1;
723    }    }
724    
725    #elif defined(__amigaos4__)
726    
727      {
728        uint32_t num_threads = 1;
729        IExec->GetCPUInfoTags(GCIT_NumberOfCPUs, &num_threads, TAG_END);
730        info->num_threads = num_threads;
731      }
732    
733  #endif  #endif
734    
735          return 0;          return 0;
# Line 744  Line 767 
767                                                  convert->output.csp, convert->interlacing);                                                  convert->output.csp, convert->interlacing);
768                          break;                          break;
769    
770                    case XVID_CSP_INTERNAL :
771                            img.y = (uint8_t*)convert->input.plane[0];
772                            img.u = (uint8_t*)convert->input.plane[1];
773                            img.v = (uint8_t*)convert->input.plane[2];
774                            image_output(&img, width, height, convert->input.stride[0],
775                                                    (uint8_t**)convert->output.plane, convert->output.stride,
776                                                    convert->output.csp, convert->interlacing);
777                            break;
778    
779                  default :                  default :
780                          return XVID_ERR_FORMAT;                          return XVID_ERR_FORMAT;
781          }          }
# Line 754  Line 786 
786  }  }
787    
788  /*****************************************************************************  /*****************************************************************************
789   * XviD Global Entry point   * Xvid Global Entry point
790   *   *
791   * Well this function initialize all internal function pointers according   * Well this function initialize all internal function pointers according
792   * to the CPU features forced by the library client or autodetected (depending   * to the CPU features forced by the library client or autodetected (depending
# Line 787  Line 819 
819  }  }
820    
821  /*****************************************************************************  /*****************************************************************************
822   * XviD Native decoder entry point   * Xvid Native decoder entry point
823   *   *
824   * This function is just a wrapper to all the option cases.   * This function is just a wrapper to all the option cases.
825   *   *
# Line 819  Line 851 
851    
852    
853  /*****************************************************************************  /*****************************************************************************
854   * XviD Native encoder entry point   * Xvid Native encoder entry point
855   *   *
856   * This function is just a wrapper to all the option cases.   * This function is just a wrapper to all the option cases.
857   *   *

Legend:
Removed from v.1.81  
changed lines
  Added in v.1.84

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4