[FFmpeg-cvslog] swscale/utils: fill xyz tables only when they will be used

Michael Niedermayer git at videolan.org
Tue Jan 7 03:47:23 CET 2014


ffmpeg | branch: release/2.1 | Michael Niedermayer <michaelni at gmx.at> | Sat Dec  7 02:04:31 2013 +0100| [08808084f6e9d3fbccb67d53b4f9a25f9bf81e2f] | committer: Michael Niedermayer

swscale/utils: fill xyz tables only when they will be used

makes the first call to sws_getContext() 1ms faster

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit 4d18060e56aac9d7248854ba75d5fc19f5cd3db8)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=08808084f6e9d3fbccb67d53b4f9a25f9bf81e2f
---

 libswscale/utils.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libswscale/utils.c b/libswscale/utils.c
index 6c5fa56..3cc2c9d 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -975,8 +975,6 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
     c->srcRange   = srcRange;
     c->dstRange   = dstRange;
 
-    fill_xyztables(c);
-
     if ((isYUV(c->dstFormat) || isGray(c->dstFormat)) && (isYUV(c->srcFormat) || isGray(c->srcFormat)))
         return -1;
 
@@ -1067,6 +1065,8 @@ static void handle_formats(SwsContext *c)
     c->dst0Alpha |= handle_0alpha(&c->dstFormat);
     c->srcXYZ    |= handle_xyz(&c->srcFormat);
     c->dstXYZ    |= handle_xyz(&c->dstFormat);
+    if (c->srcXYZ || c->dstXYZ)
+        fill_xyztables(c);
 }
 
 SwsContext *sws_alloc_context(void)



More information about the ffmpeg-cvslog mailing list