diff --git a/include/composer_extn_intf.h b/include/composer_extn_intf.h
index a6a4fba..9bc3f0d 100644
--- a/include/composer_extn_intf.h
+++ b/include/composer_extn_intf.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -32,6 +32,7 @@
 
 #include <dlfcn.h>
 #include "frame_scheduler_intf.h"
+#include "display_extn_intf.h"
 
 #define COMPOSER_EXTN_REV_MAJOR (1)
 #define COMPOSER_EXTN_REV_MINOR (0)
@@ -44,6 +45,8 @@
  public:
   virtual int CreateFrameScheduler(FrameSchedulerIntf **intf) = 0;
   virtual void DestroyFrameScheduler(FrameSchedulerIntf *intf) = 0;
+  virtual int CreateDisplayExtn(DisplayExtnIntf **intf) = 0;
+  virtual void DestroyDisplayExtn(DisplayExtnIntf *intf) = 0;
  protected:
   virtual ~ComposerExtnIntf() { }
 };
diff --git a/include/display_extn_intf.h b/include/display_extn_intf.h
new file mode 100644
index 0000000..84cd508
--- /dev/null
+++ b/include/display_extn_intf.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __DISP_EXTN_INTF_H__
+#define __DISP_EXTN_INTF_H__
+
+namespace composer {
+
+class DisplayExtnIntf {
+ public:
+  virtual int SetContentFps(uint32_t fps) = 0;
+ protected:
+  virtual ~DisplayExtnIntf() { }
+};
+
+}  // namespace composer
+
+#endif  // __DISP_EXTN_INTF_H__
