[x265] [PATCH] CLI: fix '--seek' option for pipe input
Mateusz Brzostek
mateusz at msystem.waw.pl
Fri Mar 10 21:22:43 CET 2017
This small patch is to fix issue #324.
Please review.
# HG changeset patch
# User Ma0 <mateuszb at poczta.onet.pl>
# Date 1489176787 -3600
# Fri Mar 10 21:13:07 2017 +0100
# Node ID 2b53475eb1916eceed880276b9ca368387badd4c
# Parent 88fd9082764c7d7b4668e30763a93215980efd70
CLI: fix '--seek' option for pipe input
diff -r 88fd9082764c -r 2b53475eb191 source/input/y4m.cpp
--- a/source/input/y4m.cpp Wed Mar 08 17:15:59 2017 +0530
+++ b/source/input/y4m.cpp Fri Mar 10 21:13:07 2017 +0100
@@ -141,7 +141,14 @@
if (info.skipFrames)
{
#if X86_64
- ifs->seekg((uint64_t)estFrameSize * info.skipFrames, ios::cur);
+ if (ifs != &cin)
+ ifs->seekg((uint64_t)estFrameSize * info.skipFrames, ios::cur);
+ else
+ for (int i = 0; i < info.skipFrames; i++)
+ {
+ ifs->read(buf[0], estFrameSize - framesize);
+ ifs->read(buf[0], framesize);
+ }
#else
for (int i = 0; i < info.skipFrames; i++)
ifs->ignore(estFrameSize);
diff -r 88fd9082764c -r 2b53475eb191 source/input/yuv.cpp
--- a/source/input/yuv.cpp Wed Mar 08 17:15:59 2017 +0530
+++ b/source/input/yuv.cpp Fri Mar 10 21:13:07 2017 +0100
@@ -131,7 +131,11 @@
if (info.skipFrames)
{
#if X86_64
- ifs->seekg((uint64_t)framesize * info.skipFrames, ios::cur);
+ if (ifs != &cin)
+ ifs->seekg((uint64_t)framesize * info.skipFrames, ios::cur);
+ else
+ for (int i = 0; i < info.skipFrames; i++)
+ ifs->read(buf[0], framesize);
#else
for (int i = 0; i < info.skipFrames; i++)
ifs->ignore(framesize);
-------------- next part --------------
# HG changeset patch
# User Ma0 <mateuszb at poczta.onet.pl>
# Date 1489176787 -3600
# Fri Mar 10 21:13:07 2017 +0100
# Node ID 2b53475eb1916eceed880276b9ca368387badd4c
# Parent 88fd9082764c7d7b4668e30763a93215980efd70
CLI: fix '--seek' option for pipe input
diff -r 88fd9082764c -r 2b53475eb191 source/input/y4m.cpp
--- a/source/input/y4m.cpp Wed Mar 08 17:15:59 2017 +0530
+++ b/source/input/y4m.cpp Fri Mar 10 21:13:07 2017 +0100
@@ -141,7 +141,14 @@
if (info.skipFrames)
{
#if X86_64
- ifs->seekg((uint64_t)estFrameSize * info.skipFrames, ios::cur);
+ if (ifs != &cin)
+ ifs->seekg((uint64_t)estFrameSize * info.skipFrames, ios::cur);
+ else
+ for (int i = 0; i < info.skipFrames; i++)
+ {
+ ifs->read(buf[0], estFrameSize - framesize);
+ ifs->read(buf[0], framesize);
+ }
#else
for (int i = 0; i < info.skipFrames; i++)
ifs->ignore(estFrameSize);
diff -r 88fd9082764c -r 2b53475eb191 source/input/yuv.cpp
--- a/source/input/yuv.cpp Wed Mar 08 17:15:59 2017 +0530
+++ b/source/input/yuv.cpp Fri Mar 10 21:13:07 2017 +0100
@@ -131,7 +131,11 @@
if (info.skipFrames)
{
#if X86_64
- ifs->seekg((uint64_t)framesize * info.skipFrames, ios::cur);
+ if (ifs != &cin)
+ ifs->seekg((uint64_t)framesize * info.skipFrames, ios::cur);
+ else
+ for (int i = 0; i < info.skipFrames; i++)
+ ifs->read(buf[0], framesize);
#else
for (int i = 0; i < info.skipFrames; i++)
ifs->ignore(framesize);
More information about the x265-devel
mailing list