1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-21 15:27:00 +00:00

added skeleton for QT SMC decoder

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4228 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
melanson 2002-01-18 05:43:48 +00:00
parent 3d375b3230
commit 16c6cf34ce
6 changed files with 50 additions and 1 deletions

View File

@ -27,7 +27,7 @@ MANDIR = ${prefix}/man
# a BSD compatible 'install' program # a BSD compatible 'install' program
INSTALL = install INSTALL = install
SRCS_COMMON = cyuv.c adpcm.c xacodec.c cpudetect.c mp_msg.c ac3-iec958.c dec_audio.c dec_video.c msvidc.c cinepak.c fli.c qtrle.c codec-cfg.c cfgparser.c my_profile.c RTjpegN.c minilzo.c nuppelvideo.c spudec.c playtree.c playtreeparser.c asxparser.c SRCS_COMMON = cyuv.c adpcm.c xacodec.c cpudetect.c mp_msg.c ac3-iec958.c dec_audio.c dec_video.c msvidc.c cinepak.c fli.c qtrle.c codec-cfg.c cfgparser.c my_profile.c RTjpegN.c minilzo.c nuppelvideo.c spudec.c playtree.c playtreeparser.c asxparser.c qtsmc.c
SRCS_MENCODER = mencoder.c $(SRCS_COMMON) libao2/afmt.c divx4_vbr.c libvo/aclib.c libvo/img_format.c libvo/osd.c SRCS_MENCODER = mencoder.c $(SRCS_COMMON) libao2/afmt.c divx4_vbr.c libvo/aclib.c libvo/img_format.c libvo/osd.c
SRCS_MPLAYER = mplayer.c $(SRCS_COMMON) find_sub.c subreader.c lirc_mp.c mixer.c vobsub.c SRCS_MPLAYER = mplayer.c $(SRCS_COMMON) find_sub.c subreader.c lirc_mp.c mixer.c vobsub.c

View File

@ -241,6 +241,7 @@ static short get_driver(char *s,int audioflag)
"qtrle", "qtrle",
"nuv", "nuv",
"cyuv", "cyuv",
"qtsmc",
NULL NULL
}; };
char **drv=audioflag?audiodrv:videodrv; char **drv=audioflag?audiodrv:videodrv;

View File

@ -53,6 +53,7 @@
#define VFM_QTRLE 14 #define VFM_QTRLE 14
#define VFM_NUV 15 #define VFM_NUV 15
#define VFM_CYUV 16 #define VFM_CYUV 16
#define VFM_QTSMC 17
#ifndef GUID_TYPE #ifndef GUID_TYPE
#define GUID_TYPE #define GUID_TYPE

View File

@ -157,6 +157,15 @@ void decode_cyuv(
int height, int height,
int bit_per_pixel); int bit_per_pixel);
void qt_decode_smc(
unsigned char *encoded,
int encoded_size,
unsigned char *decoded,
int width,
int height,
int encoded_bpp,
int bytes_per_pixel);
//**************************************************************************// //**************************************************************************//
// The OpenDivX stuff: // The OpenDivX stuff:
//**************************************************************************// //**************************************************************************//
@ -593,6 +602,7 @@ switch(sh_video->codec->driver){
case VFM_MSVIDC: case VFM_MSVIDC:
case VFM_FLI: case VFM_FLI:
case VFM_QTRLE: case VFM_QTRLE:
case VFM_QTSMC:
{ {
#ifdef USE_MP_IMAGE #ifdef USE_MP_IMAGE
sh_video->image->type=MP_IMGTYPE_STATIC; sh_video->image->type=MP_IMGTYPE_STATIC;
@ -945,6 +955,14 @@ if(verbose>1){
((out_fmt&255)+7)/8); ((out_fmt&255)+7)/8);
blit_frame = 3; blit_frame = 3;
break; break;
case VFM_QTSMC:
qt_decode_smc(
start, in_size, sh_video->our_out_buffer,
sh_video->disp_w, sh_video->disp_h,
sh_video->bih->biBitCount,
((out_fmt&255)+7)/8);
blit_frame = 3;
break;
case VFM_CYUV: case VFM_CYUV:
decode_cyuv(start, in_size, sh_video->our_out_buffer, decode_cyuv(start, in_size, sh_video->our_out_buffer,
sh_video->disp_w, sh_video->disp_h, (out_fmt==IMGFMT_YUY2)?16:(out_fmt&255)); sh_video->disp_w, sh_video->disp_h, (out_fmt==IMGFMT_YUY2)?16:(out_fmt&255));

View File

@ -328,6 +328,14 @@ videocodec cyuv
driver cyuv driver cyuv
out UYVY out UYVY
videocodec qtsmc
info "Apple Graphics (SMC) codec"
status buggy
; codec fourcc = "smc "
format 0x20636d73
driver qtsmc
out BGR32,BGR24
audiocodec imaadpcm audiocodec imaadpcm
info "IMA ADPCM" info "IMA ADPCM"
status working status working

21
qtsmc.c Normal file
View File

@ -0,0 +1,21 @@
/*
Apple Graphics (SMC) Decoder for MPlayer
by Mike Melanson
*/
#include "config.h"
#include "bswap.h"
#define BE_16(x) (be2me_16(*(unsigned short *)(x)))
#define BE_32(x) (be2me_32(*(unsigned int *)(x)))
void qt_decode_smc(
unsigned char *encoded,
int encoded_size,
unsigned char *decoded,
int width,
int height,
int bytes_per_pixel)
{
}