mirror of
https://github.com/mpv-player/mpv
synced 2025-01-03 05:22:23 +00:00
fe6c4fcae2
Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32181 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32182 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32183 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace some sizeof(type) by sizeof(*pointer) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32184 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32186 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32187 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32188 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizoef(type) by sizeof(*ptrvar). Besides being consistent with FFmpeg style, this reduces the size of a patch to rename these types to not conflict with the windows.h definitions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32189 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32191 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32192 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(type) by sizeof(*ptrvar) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32193 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove a useless cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32194 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(type) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32195 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove a useless cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32196 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace several sizeof(WAVEFORMATEX) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32197 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace one more instance of sizeof(WAVEFORMATEX); fix compilation. patch by Clément Bœsch, ubitux gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32199 b3059339-0415-0410-9bf9-f77b7e298cf2 Avoid some pointless uses of sizeof() and one related cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32200 b3059339-0415-0410-9bf9-f77b7e298cf2 Merge one malloc() + memset() invocation into calloc(). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32202 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32203 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(WAVEFORMATEX) occurrences. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32205 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32206 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(BITMAPINFOHEADER) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32207 b3059339-0415-0410-9bf9-f77b7e298cf2
118 lines
3.0 KiB
C
118 lines
3.0 KiB
C
/*
|
|
* This file is part of MPlayer.
|
|
*
|
|
* MPlayer is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* MPlayer is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#ifndef MPLAYER_TVI_DEF_H
|
|
#define MPLAYER_TVI_DEF_H
|
|
|
|
#include <stdlib.h> /* malloc */
|
|
#include <string.h> /* memset */
|
|
#include "libmpcodecs/img_format.h"
|
|
#include "tv.h"
|
|
|
|
static int init(priv_t *priv);
|
|
static int uninit(priv_t *priv);
|
|
static int control(priv_t *priv, int cmd, void *arg);
|
|
static int start(priv_t *priv);
|
|
static double grab_video_frame(priv_t *priv, char *buffer, int len);
|
|
static int get_video_framesize(priv_t *priv);
|
|
static double grab_audio_frame(priv_t *priv, char *buffer, int len);
|
|
static int get_audio_framesize(priv_t *priv);
|
|
|
|
static const tvi_functions_t functions =
|
|
{
|
|
init,
|
|
uninit,
|
|
control,
|
|
start,
|
|
grab_video_frame,
|
|
get_video_framesize,
|
|
grab_audio_frame,
|
|
get_audio_framesize
|
|
};
|
|
|
|
static tvi_handle_t *new_handle(void)
|
|
{
|
|
tvi_handle_t *h = malloc(sizeof(tvi_handle_t));
|
|
|
|
if (!h)
|
|
return NULL;
|
|
h->priv = calloc(1, sizeof(priv_t));
|
|
if (!h->priv)
|
|
{
|
|
free(h);
|
|
return NULL;
|
|
}
|
|
|
|
h->functions = &functions;
|
|
h->seq = 0;
|
|
h->chanlist = -1;
|
|
h->chanlist_s = NULL;
|
|
h->norm = -1;
|
|
h->channel = -1;
|
|
h->scan = NULL;
|
|
return h;
|
|
}
|
|
|
|
/**
|
|
Fills video frame in given buffer with blue color for yv12,i420,uyvy,yuy2.
|
|
Other formats will be filled with 0xC0
|
|
*/
|
|
static inline void fill_blank_frame(char* buffer,int len,int fmt){
|
|
int i;
|
|
// RGB(0,0,255) <-> YVU(41,110,240)
|
|
|
|
switch(fmt){
|
|
case IMGFMT_YV12:
|
|
memset(buffer, 41,4*len/6); //Y
|
|
memset(buffer+4*len/6, 110,len/6);//V
|
|
memset(buffer+5*len/6, 240,len/6);//U
|
|
break;
|
|
case IMGFMT_I420:
|
|
memset(buffer, 41,4*len/6); //Y
|
|
memset(buffer+4*len/6, 240,len/6);//U
|
|
memset(buffer+5*len/6, 110,len/6);//V
|
|
break;
|
|
case IMGFMT_UYVY:
|
|
for(i=0;i<len;i+=4){
|
|
buffer[i]=0xFF;
|
|
buffer[i+1]=0;
|
|
buffer[i+2]=0;
|
|
buffer[i+3]=0;
|
|
}
|
|
break;
|
|
case IMGFMT_YUY2:
|
|
for(i=0;i<len;i+=4){
|
|
buffer[i]=0;
|
|
buffer[i+1]=0xFF;
|
|
buffer[i+2]=0;
|
|
buffer[i+3]=0;
|
|
}
|
|
break;
|
|
case IMGFMT_MJPEG:
|
|
/*
|
|
This is compressed format. I don't know yet how to fill such frame with blue color.
|
|
Keeping frame unchanged.
|
|
*/
|
|
break;
|
|
default:
|
|
memset(buffer,0xC0,len);
|
|
}
|
|
}
|
|
|
|
#endif /* MPLAYER_TVI_DEF_H */
|