00001 /* 00002 * framedisplayer.h -- sends frame objects to Displayer and audio device 00003 * Copyright (C) 2000 Arne Schirmacher <arne@schirmacher.de> 00004 * Copyright (C) 2001-2007 Dan Dennedy <dan@dennedy.org> 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software Foundation, 00018 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 */ 00020 00021 #ifndef _FRAME_DISPLAYER_H 00022 #define _FRAME_DISPLAYER_H 00023 00024 #include <gdk/gdk.h> 00025 #include <gtk/gtk.h> 00026 00027 #define DV_FOURCC_YV12 0x32315659 /* 4:2:0 Planar mode: Y + V + U (3 planes) */ 00028 #define DV_FOURCC_YUY2 0x32595559 /* 4:2:2 Packed mode: Y0+U0+Y1+V0 (1 plane) */ 00029 00030 #include "displayer.h" 00031 #include "oss.h" 00032 00033 class Frame; 00034 00035 class FrameDisplayer 00036 { 00037 public: 00038 Displayer *displayer; 00039 AudioResample<int16_ne_t,int16_ne_t> *resampler; 00040 00041 unsigned char pixels[ FRAME_MAX_WIDTH * FRAME_MAX_HEIGHT * 4 ]; 00042 00043 /* audio support */ 00044 kino_sound_t *audio_device; 00045 gint16 *audio_buffers[ 4 ]; 00046 gboolean audio_device_avail; 00047 gint audio_sampling_rate; 00048 00049 FrameDisplayer(); 00050 ~FrameDisplayer(); 00051 void CloseSound(); 00052 void Put( Frame &frame, GtkWidget *drawingarea, gboolean no_audio ); 00053 void PutSound( Frame &frame ); 00054 void PutGDKRGB32( Frame &frame, GtkWidget *drawingarea ); 00055 private: 00056 bool prevIsWide; 00057 }; 00058 00059 #endif
1.4.2