view mmx_defs.h @ 10686:8eb690f0e342

- seek() is always synchronized to keyframes, so the decoders don't crash anymore; successfully tested with libmpeg2 and ffmpeg12 - support for tables PAT and PMT, used the associate pids to program and to play the right streams - option -tsprog <number> to specify the chosen program (-vid and -aid still override the single stream pids) - initial support for MPEG4 in TS (M4V is working, but not AAC yet) - defragmenting mechanism (without buffering, so it has 0 added cost) to improve the playback of high bitrate movies - refers to demux_mpg_control() to get length and percentage position in the stream patch by Nico <nsabbi@libero.it>
author arpi
date Sun, 24 Aug 2003 18:07:00 +0000
parents e9bd97d5c5cc
children
line wrap: on
line source

/*
  This file contains most common definitions to make MMX stuff
  easy portable between different kinds of mmx clones
  Written By Nick Kurshev <nickols_k@mail.ru>
*/

#ifndef MMXDEFS_INCLUDED
#define MMXDEFS_INCLUDED

#include "config.h"

#undef HAVE_MMX1
#if defined(HAVE_MMX) && !defined(HAVE_MMX2) && !defined(HAVE_3DNOW) && !defined(HAVE_SSE)
#define HAVE_MMX1
#endif

#undef HAVE_K6_2PLUS
#if !defined( HAVE_MMX2 ) && defined( HAVE_3DNOW )
#define HAVE_K6_2PLUS
#endif

#ifdef HAVE_SSE2
#define MMREG_SIZE 16
#else
#define MMREG_SIZE 8
#endif

#ifdef HAVE_3DNOW
#define PREFETCH  "prefetch"
#define PREFETCHW "prefetchw" 
#define PAVGB	  "pavgusb"
#elif defined ( HAVE_MMX2 )
#define PREFETCH "prefetchnta"
#define PREFETCHW "prefetcht0" 
#define PAVGB	  "pavgb"
#else
#define PREFETCH "/nop"
#define PREFETCHW "/nop" 
#endif

#ifdef HAVE_3DNOW
/* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */
#define EMMS     "femms"
#else
#define EMMS     "emms"
#endif

#ifdef HAVE_MMX2
#define MOVNTQ "movntq"
#define SFENCE "sfence"
#else
#define MOVNTQ "movq"
#define SFENCE "/nop"
#endif


#endif