From: Shashank Sharma <contactshashanksharma@gmail.com>
To: linux-media@vger.kernel.org
Cc: hverkuil-cisco@xs4all.nl,
Shashank Sharma <shashank.sharma@amd.com>,
Pekka Paalanen <ppaalanen@gmail.com>,
Jani Nikula <jani.nikula@intel.com>,
Shashank Sharma <contactshashanksharma@gmail.com>
Subject: [PATCH 1/3] edid-decode: Introduce libedid-decode wrapper
Date: Fri, 4 Mar 2022 13:49:59 +0100 [thread overview]
Message-ID: <20220304125001.1732057-1-contactshashanksharma@gmail.com> (raw)
From: Shashank Sharma <shashank.sharma@amd.com>
This patch does some small changes to make the core logic of
edid-decode tool available to a shared library wrapper. With
these changes, the EDID's 'state' variable will be avialble
to another process via some library API calls.
Cc: Pekka Paalanen <ppaalanen@gmail.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Shashank Sharma <contactshashanksharma@gmail.com>
---
Makefile | 22 +++++++++++++++++++++-
edid-decode.cpp | 15 ++++++++++++++-
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 1843700..ebf3370 100644
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,20 @@
ifeq ($(OS),Windows_NT)
bindir ?= /usr/bin
mandir ?= /usr/share/man
+ libdir ?= /usr/lib
+ includedir ?= /usr/include
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
bindir ?= /usr/local/sbin
mandir ?= /usr/local/share/man
+ libdir ?= /usr/local/lib
+ includedir ?= /usr/include
else
bindir ?= /usr/bin
mandir ?= /usr/share/man
+ libdir ?= /usr/lib
+ includedir ?= /usr/include
endif
endif
@@ -19,6 +25,11 @@ SOURCES = edid-decode.cpp parse-base-block.cpp parse-cta-block.cpp \
parse-di-ext-block.cpp parse-vtb-ext-block.cpp calc-gtf-cvt.cpp
WARN_FLAGS = -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wimplicit-fallthrough
+LIB_NAME = libedid-decode.so
+LIB_FLAGS = -fPIC
+LIBLINK_FLAGS = -shared
+LIB_SOURCES = libedid-decode-api.cpp
+
all: edid-decode
sha = -DSHA=$(shell if test -d .git ; then git rev-parse --short=12 HEAD ; fi)
@@ -30,11 +41,20 @@ edid-decode: $(SOURCES) edid-decode.h oui.h Makefile
edid-decode.js: $(SOURCES) edid-decode.h oui.h Makefile
$(EMXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(WARN_FLAGS) $(sha) $(date) -s EXPORTED_FUNCTIONS='["_parse_edid"]' -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' -o $@ $(SOURCES) -lm
+libedid-decode: $(SOURCES) edid-decode.h oui.h Makefile
+ $(CXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(WARN_FLAGS) -g $(LIB_FLAGS) $(sha) $(date) $(LIBLINK_FLAGS) -o $(LIB_NAME) $(LIB_SOURCES) $(SOURCES) -lm
+
clean:
- rm -f edid-decode
+ rm -f edid-decode libedid-decode.so
install:
mkdir -p $(DESTDIR)$(bindir)
install -m 0755 edid-decode $(DESTDIR)$(bindir)
mkdir -p $(DESTDIR)$(mandir)/man1
install -m 0644 edid-decode.1 $(DESTDIR)$(mandir)/man1
+
+install-lib:
+ mkdir -p $(DESTDIR)$(libdir)
+ mkdir -p $(DESTDIR)$(includedir)
+ install -m 0755 libedid-decode.so $(DESTDIR)$(libdir)
+ install -m 0644 libedid-decode-api.h $(DESTDIR)$(includedir)
diff --git a/edid-decode.cpp b/edid-decode.cpp
index 4a90aba..babff4a 100644
--- a/edid-decode.cpp
+++ b/edid-decode.cpp
@@ -21,7 +21,7 @@
#define STR(x) #x
#define STRING(x) STR(x)
-static edid_state state;
+edid_state state;
static unsigned char edid[EDID_PAGE_SIZE * EDID_MAX_BLOCKS];
static bool odd_hex_digits;
@@ -1012,6 +1012,19 @@ static bool extract_edid(int fd, FILE *error)
state.edid_size = edid_data.size();
return true;
}
+struct edid_state *extract_edid_state(int fd, FILE *error)
+{
+ bool ret;
+
+ ret = extract_edid(fd, error);
+ if (ret) {
+ /* update the number of blocks */
+ state.num_blocks = state.edid_size / EDID_PAGE_SIZE;
+ return &state;
+ }
+
+ return NULL;
+}
static unsigned char crc_calc(const unsigned char *b)
{
--
2.32.0
next reply other threads:[~2022-03-04 12:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-04 12:49 Shashank Sharma [this message]
2022-03-04 12:50 ` [PATCH 2/3] edid-decode: Introduce libedid-decode APIs Shashank Sharma
2022-03-07 16:11 ` Pekka Paalanen
2022-03-07 17:00 ` Shashank Sharma
2022-03-04 12:50 ` [PATCH 3/3] edid-decode: Add test utility for libedid-decode Shashank Sharma
2022-03-07 15:54 ` [PATCH 1/3] edid-decode: Introduce libedid-decode wrapper Pekka Paalanen
2022-03-07 16:48 ` Shashank Sharma
2022-03-08 11:21 ` Pekka Paalanen
2022-03-08 12:09 ` Hans Verkuil
2022-03-08 14:30 ` Pekka Paalanen
2022-03-08 16:36 ` Hans Verkuil
2022-03-09 14:09 ` Pekka Paalanen
2022-03-09 14:31 ` Sharma, Shashank
2022-03-09 15:41 ` Pekka Paalanen
2022-03-09 14:45 ` Hans Verkuil
2022-03-09 15:57 ` Pekka Paalanen
2022-03-09 16:00 ` Hans Verkuil
2022-03-10 12:52 ` Pekka Paalanen
2022-04-13 10:40 ` Pekka Paalanen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220304125001.1732057-1-contactshashanksharma@gmail.com \
--to=contactshashanksharma@gmail.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jani.nikula@intel.com \
--cc=linux-media@vger.kernel.org \
--cc=ppaalanen@gmail.com \
--cc=shashank.sharma@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.