[x265] [PATCH 1 of 5] common: introduce x265_slurp_file, reads data from file to string buffer
Steve Borho
steve at borho.org
Fri Jul 11 21:13:42 CEST 2014
On Fri, Jul 11, 2014 at 6:12 AM, <aarthi at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Aarthi Thirumalai
> # Date 1405074962 -19800
> # Fri Jul 11 16:06:02 2014 +0530
> # Node ID 86b4c19eb7061753fa98332a1b59024c387845d0
> # Parent 29ae3f84c3eaa36ecb2669b380e7f31824e802fe
> common: introduce x265_slurp_file, reads data from file to string buffer.
>
> diff -r 29ae3f84c3ea -r 86b4c19eb706 source/common/common.cpp
> --- a/source/common/common.cpp Fri Jul 11 15:25:10 2014 +0530
> +++ b/source/common/common.cpp Fri Jul 11 16:06:02 2014 +0530
> @@ -156,6 +156,53 @@
> uint32_t x265_picturePlaneSize(int csp, int width, int height, int plane)
> {
> uint32_t size = (uint32_t)(width >> x265_cli_csps[csp].width[plane]) * (height >> x265_cli_csps[csp].height[plane]);
> -
> return size;
> }
> +
> +char* x265_slurp_file(const char *filename)
> +{
> + if (!filename)
> + return NULL;
> +
> + int bError = 0;
> + size_t fSize;
> + char *buf = NULL;
> +
> + FILE *fh = fopen(filename, "rb");
> + if (!fh)
> + {
> + x265_log(NULL, X265_LOG_ERROR, "unable to open file %s \n", filename);
> + return NULL;
> + }
> +
> + bError |= fseek(fh, 0, SEEK_END) < 0;
> + bError |= (fSize = ftell(fh)) <= 0;
> + bError |= fseek(fh, 0, SEEK_SET) < 0;
> + if (bError)
> + goto error;
> +
> + buf = X265_MALLOC(char, fSize + 2);
> + if (!buf)
> + {
> + x265_log(NULL, X265_LOG_ERROR, "unable to allocate memory \n");
> + goto error;
> + }
> +
> + bError |= fread(buf, 1, fSize, fh) != fSize;
> + if (buf[fSize - 1] != '\n')
> + buf[fSize++] = '\n';
> + buf[fSize] = 0;
> + fclose(fh);
> +
> + if (bError)
> + {
> + x265_log(NULL, X265_LOG_ERROR, "unable to read the file\n");
> + free(buf);
memory allocated by X265_ALLOC() must be released by X265_FREE() else
it might cause crashes on some platforms. Queued with this fix
> + buf = NULL;
> + }
> + return buf;
> +
> +error:
> + fclose(fh);
> + return NULL;
> +}
> diff -r 29ae3f84c3ea -r 86b4c19eb706 source/common/common.h
> --- a/source/common/common.h Fri Jul 11 15:25:10 2014 +0530
> +++ b/source/common/common.h Fri Jul 11 16:06:02 2014 +0530
> @@ -208,7 +208,6 @@
> double x265_ssim2dB(double ssim);
> double x265_qScale2qp(double qScale);
> double x265_qp2qScale(double qp);
> -
> uint32_t x265_picturePlaneSize(int csp, int width, int height, int plane);
> -
> +char* x265_slurp_file(const char *filename);
> #endif // ifndef X265_COMMON_H
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
--
Steve Borho
More information about the x265-devel
mailing list