diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2015-06-28 15:12:40 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2015-06-28 15:12:40 +0000 |
commit | 18f7275cb7726939aacbffd59ee23ea5aa7929b3 (patch) | |
tree | 79f137ea529245652830831a4f13f3eb3f2062c2 /converter/ppm/ppmtoyuvsplit.c | |
parent | 8db29e17c89162f47555f9d3a9ea15e25f338fa7 (diff) | |
download | netpbm-mirror-18f7275cb7726939aacbffd59ee23ea5aa7929b3.tar.gz netpbm-mirror-18f7275cb7726939aacbffd59ee23ea5aa7929b3.tar.xz netpbm-mirror-18f7275cb7726939aacbffd59ee23ea5aa7929b3.zip |
Release 10.35.96
git-svn-id: http://svn.code.sf.net/p/netpbm/code/super_stable@2582 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter/ppm/ppmtoyuvsplit.c')
-rw-r--r-- | converter/ppm/ppmtoyuvsplit.c | 50 |
1 files changed, 39 insertions, 11 deletions
diff --git a/converter/ppm/ppmtoyuvsplit.c b/converter/ppm/ppmtoyuvsplit.c index 2dddebfc..133161c1 100644 --- a/converter/ppm/ppmtoyuvsplit.c +++ b/converter/ppm/ppmtoyuvsplit.c @@ -35,8 +35,40 @@ #endif #include <string.h> +#include "nstring.h" #include "ppm.h" + + +struct FileNameSet { + const char * u; + const char * v; + const char * y; +}; + + + +static void +makeOutputFileName(const char * const baseName, + struct FileNameSet * const fnameP) { + + asprintfN(&fnameP->u, "%s.U", baseName); + asprintfN(&fnameP->v, "%s.V", baseName); + asprintfN(&fnameP->y, "%s.Y", baseName); +} + + + +static void +termFileNameSet(struct FileNameSet const fname) { + + strfree(fname.u); + strfree(fname.v); + strfree(fname.y); +} + + + int main(argc, argv) char **argv; @@ -49,8 +81,8 @@ char **argv; pixval maxval; myLONG u,v,y0,y1,y2,y3,u0,u1,u2,u3,v0,v1,v2,v3; unsigned char *y1buf,*y2buf,*ubuf,*vbuf; - char ufname[256],vfname[256],yfname[256]; - + struct FileNameSet fname; + /* Output file names - .U, .V, .Y */ ppm_init(&argc, argv); @@ -59,17 +91,13 @@ char **argv; if (argc == 3) ifp = pm_openr(argv[2]); else ifp = stdin; - strcpy(ufname,argv[1]); - strcpy(vfname,argv[1]); - strcpy(yfname,argv[1]); + makeOutputFileName(argv[1], &fname); - strcat(ufname,".U"); - strcat(vfname,".V"); - strcat(yfname,".Y"); + uf = pm_openw(fname.u); + vf = pm_openw(fname.v); + yf = pm_openw(fname.y); - uf = fopen(ufname,"wb"); - vf = fopen(vfname,"wb"); - yf = fopen(yfname,"wb"); + termFileNameSet(fname); if(!(uf && vf && yf)) { perror("error opening output files"); |