[svn] / trunk / xvidcore / examples / xvid_encraw.c Repository:
ViewVC logotype

Diff of /trunk/xvidcore/examples/xvid_encraw.c

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

revision 558, Sat Sep 28 14:26:53 2002 UTC revision 684, Wed Nov 27 21:09:10 2002 UTC
# Line 19  Line 19 
19   *  along with this program; if not, write to the Free Software   *  along with this program; if not, write to the Free Software
20   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21   *   *
22   * $Id: xvid_encraw.c,v 1.2 2002-09-28 14:26:53 edgomez Exp $   * $Id: xvid_encraw.c,v 1.5 2002-11-27 21:09:10 edgomez Exp $
23   *   *
24   ****************************************************************************/   ****************************************************************************/
25    
# Line 36  Line 36 
36    
37  #include <stdio.h>  #include <stdio.h>
38  #include <stdlib.h>  #include <stdlib.h>
39    #include <string.h>
40  #include <math.h>  #include <math.h>
41  #ifndef _MSC_VER  #ifndef _MSC_VER
42  #include <sys/time.h>  #include <sys/time.h>
# Line 50  Line 51 
51   ****************************************************************************/   ****************************************************************************/
52    
53  static int const motion_presets[7] = {  static int const motion_presets[7] = {
54          0,                                                        // Q 0          0,                                                        /* Q 0 */
55          PMV_EARLYSTOP16,                                          // Q 1          PMV_EARLYSTOP16,                                          /* Q 1 */
56          PMV_EARLYSTOP16,                                          // Q 2          PMV_EARLYSTOP16,                                          /* Q 2 */
57          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16,                    // Q 3          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16,                    /* Q 3 */
58          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16,                    // Q 4          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16,                    /* Q 4 */
59          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EARLYSTOP8 |  // Q 5          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EARLYSTOP8 |  /* Q 5 */
60          PMV_HALFPELREFINE8,          PMV_HALFPELREFINE8,
61          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EXTSEARCH16 | // Q 6          PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EXTSEARCH16 | /* Q 6 */
62          PMV_USESQUARES16 | PMV_EARLYSTOP8 | PMV_HALFPELREFINE8          PMV_USESQUARES16 | PMV_EARLYSTOP8 | PMV_HALFPELREFINE8
63  };  };
64    
65  static int const general_presets[7] = {  static int const general_presets[7] = {
66          XVID_H263QUANT,                               // Q 0          XVID_H263QUANT,                               /* Q 0 */
67          XVID_MPEGQUANT,                               // Q 1          XVID_MPEGQUANT,                               /* Q 1 */
68          XVID_H263QUANT,                               // Q 2          XVID_H263QUANT,                               /* Q 2 */
69          XVID_H263QUANT | XVID_HALFPEL,                // Q 3          XVID_H263QUANT | XVID_HALFPEL,                /* Q 3 */
70          XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, // Q 4          XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, /* Q 4 */
71          XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, // Q 5          XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, /* Q 5 */
72          XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V  // Q 6          XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V  /* Q 6 */
73  };  };
74    
75    
# Line 310  Line 311 
311   *                            Main loop   *                            Main loop
312   ****************************************************************************/   ****************************************************************************/
313    
314            totalsize = LONG_PACK('M','P','4','U');
315            if(*((char *)(&totalsize)) == 'M')
316                    bigendian = 1;
317            else
318                    bigendian = 0;
319    
320          if (ARG_SAVEMPEGSTREAM && (ARG_OUTPUTTYPE || ARG_OUTPUTFILE)) {          if (ARG_SAVEMPEGSTREAM && (ARG_OUTPUTTYPE || ARG_OUTPUTFILE)) {
321    
322                  if (ARG_OUTPUTFILE == NULL && ARG_OUTPUTTYPE)                  if (ARG_OUTPUTFILE == NULL && ARG_OUTPUTTYPE)
# Line 324  Line 331 
331    
332                  /* Write header */                  /* Write header */
333                  if (ARG_OUTPUTTYPE) {                  if (ARG_OUTPUTTYPE) {
                         char *ptr;  
                         long test;  
334    
335                          test = LONG_PACK('M','P','4','U');                          long test = LONG_PACK('M','P','4','U');
                         ptr = (unsigned char *)&test;  
                         if(*ptr == 'M')  
                                 bigendian = 1;  
                         else  
                                 bigendian = 0;  
336    
337                          test = (!bigendian)?SWAP(test):test;                          test = (!bigendian)?SWAP(test):test;
338    
# Line 354  Line 354 
354          do {          do {
355    
356                  if (ARG_INPUTTYPE)                  if (ARG_INPUTTYPE)
357                          status = read_pgmdata(in_file, in_buffer);      // read PGM data (YUV-format)                          status = read_pgmdata(in_file, in_buffer);      /* read PGM data (YUV-format) */
358                  else                  else
359                          status = read_yuvdata(in_file, in_buffer);      // read raw data (YUV-format)                          status = read_yuvdata(in_file, in_buffer);      /* read raw data (YUV-format) */
360    
361                  if (status)                  if (status)
362                  {                  {
# Line 649  Line 649 
649          XVID_ENC_STATS xstats;          XVID_ENC_STATS xstats;
650    
651          xframe.bitstream = bitstream;          xframe.bitstream = bitstream;
652          xframe.length = -1;     // this is written by the routine          xframe.length = -1;     /* this is written by the routine */
653    
654          xframe.image = image;          xframe.image = image;
655          xframe.colorspace = XVID_CSP_YV12;      // defined in <xvid.h>          xframe.colorspace = XVID_CSP_YV12;      /* defined in <xvid.h> */
656    
657          xframe.intra = -1; // let the codec decide between I-frame (1) and P-frame (0)          xframe.intra = -1; /* let the codec decide between I-frame (1) and P-frame (0) */
658    
659          xframe.quant = ARG_QUANTI;      // is quant != 0, use a fixed quant (and ignore bitrate)          xframe.quant = ARG_QUANTI;      /* is quant != 0, use a fixed quant (and ignore bitrate) */
660    
661          xframe.motion = motion_presets[ARG_QUALITY];          xframe.motion = motion_presets[ARG_QUALITY];
662          xframe.general = general_presets[ARG_QUALITY];          xframe.general = general_presets[ARG_QUALITY];

Legend:
Removed from v.558  
changed lines
  Added in v.684

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