[poppler] Patch for embedding videos in to the pdf
srinivas adicherla
srinivas.adicherla at gmail.com
Wed Mar 9 22:37:35 PST 2011
Hi Albert
Sorry I forgot to remove xrefA from 'load_from_png'. And I check
if the
video_name is null iam assigning video_name = video_file
Thanks
--
A Srinivas
On Wed, Mar 9, 2011 at 6:09 PM, <poppler-request at lists.freedesktop.org>wrote:
> Send poppler mailing list submissions to
> poppler at lists.freedesktop.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://lists.freedesktop.org/mailman/listinfo/poppler
> or, via email, send a message with subject or body 'help' to
> poppler-request at lists.freedesktop.org
>
> You can reach the person managing the list at
> poppler-owner at lists.freedesktop.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of poppler digest..."
>
>
> Today's Topics:
>
> 1. poppler/Annot.cc poppler/Annot.h (Carlos Garcia Campos)
> 2. Re: Patch for embedding videos in to the pdf (Albert Astals Cid)
> 3. Re: Question about CurlCachedFileLoader::init (Albert Astals Cid)
> 4. 2 commits - poppler/Form.cc poppler/Form.h (Carlos Garcia Campos)
> 5. configure disable-X ignored (Tim Brody)
> 6. Re: configure disable-X ignored (Harry Roberts)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 8 Mar 2011 12:40:05 -0800 (PST)
> From: carlosgc at kemper.freedesktop.org (Carlos Garcia Campos)
> Subject: [poppler] poppler/Annot.cc poppler/Annot.h
> To: poppler at lists.freedesktop.org
> Message-ID: <20110308204006.A28B6F80C2 at kemper.freedesktop.org>
>
> poppler/Annot.cc | 8 ++++++--
> poppler/Annot.h | 2 +-
> 2 files changed, 7 insertions(+), 3 deletions(-)
>
> New commits:
> commit abe1e0d5a37bcdb4376901306d3adccfb33ff3b4
> Author: Carlos Garcia Campos <carlosgc at gnome.org>
> Date: Tue Mar 8 21:39:00 2011 +0100
>
> annots: Make sure no border is drawn for invalid border arrays
>
> Fixes regression on ClassSchedule_2091_ENGL.pdf
>
> diff --git a/poppler/Annot.cc b/poppler/Annot.cc
> index 7b800ad..ef1aa64 100644
> --- a/poppler/Annot.cc
> +++ b/poppler/Annot.cc
> @@ -439,7 +439,7 @@ AnnotBorder::AnnotBorder() {
> style = borderSolid;
> }
>
> -void AnnotBorder::parseDashArray(Object *dashObj) {
> +GBool AnnotBorder::parseDashArray(Object *dashObj) {
> GBool correct = gTrue;
> int tempLength = dashObj->arrayGetLength();
> double *tempDash = (double *) gmallocn (tempLength, sizeof (double));
> @@ -463,6 +463,8 @@ void AnnotBorder::parseDashArray(Object *dashObj) {
> } else {
> gfree (tempDash);
> }
> +
> + return correct;
> }
>
> AnnotBorder::~AnnotBorder() {
> @@ -508,7 +510,9 @@ AnnotBorderArray::AnnotBorderArray(Array *array) {
>
> if (arrayLength == 4) {
> if (array->get(3, &obj1)->isArray())
> - parseDashArray(&obj1);
> + correct = parseDashArray(&obj1);
> + else
> + correct = gFalse;
> obj1.free();
> }
> } else {
> diff --git a/poppler/Annot.h b/poppler/Annot.h
> index 4efd762..3126e53 100644
> --- a/poppler/Annot.h
> +++ b/poppler/Annot.h
> @@ -233,7 +233,7 @@ public:
> virtual AnnotBorderStyle getStyle() const { return style; }
>
> protected:
> - void parseDashArray(Object *dashObj);
> + GBool parseDashArray(Object *dashObj);
>
> AnnotBorderType type;
> double width;
>
>
> ------------------------------
>
> Message: 2
> Date: Tue, 8 Mar 2011 22:23:07 +0000
> From: Albert Astals Cid <aacid at kde.org>
> Subject: Re: [poppler] Patch for embedding videos in to the pdf
> To: poppler at lists.freedesktop.org
> Message-ID: <201103082223.07918.aacid at kde.org>
> Content-Type: Text/Plain; charset="iso-8859-1"
>
> A Divendres, 4 de mar? de 2011, srinivas adicherla va escriure:
> > Hi,
> >
> > Thank you very much for all your suggestions.
> > I added support for jpeg image also for the poster of the embedded
> > video. so if user doesn't give any poster the screen is empty.
> >
> > Please give me suggestions on this.
> >
>
> +static MemStream* load_from_png (FILE *f, Object *imgXObj, XRef *xrefA) {
>
> You don't seem to use xrefA, can you remove it?
>
> + // Extract the video name from the file uri
> + const char *video_name = strrchr(video_file, '/');
> + video_name++;
> +
> + Object obj1, obj2, obj3, obj4;
> +
> + annotObj.dictSet("T", obj1.initString(new GooString(video_name))); //
> title
>
> Will crash if there is no / in video_file
>
> Albert
>
>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 9 Mar 2011 00:00:22 +0000
> From: Albert Astals Cid <aacid at kde.org>
> Subject: Re: [poppler] Question about CurlCachedFileLoader::init
> To: poppler at lists.freedesktop.org
> Message-ID: <201103090000.23743.aacid at kde.org>
> Content-Type: Text/Plain; charset="us-ascii"
>
> A Diumenge, 30 de gener de 2011, Albert Astals Cid va escriure:
> > I see that in CurlCachedFileLoader::init we do
> > curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code);
> > And then never use code again. Can we just remove that line?
>
> Hib?
>
> Albert
>
> >
> > Albert
> > _______________________________________________
> > poppler mailing list
> > poppler at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/poppler
>
>
> ------------------------------
>
> Message: 4
> Date: Wed, 9 Mar 2011 01:26:25 -0800 (PST)
> From: carlosgc at kemper.freedesktop.org (Carlos Garcia Campos)
> Subject: [poppler] 2 commits - poppler/Form.cc poppler/Form.h
> To: poppler at lists.freedesktop.org
> Message-ID: <20110309092625.1AD1EF80C2 at kemper.freedesktop.org>
>
> poppler/Form.cc | 165
> ++++++++++++++++++++++++++++++--------------------------
> poppler/Form.h | 26 +++++---
> 2 files changed, 107 insertions(+), 84 deletions(-)
>
> New commits:
> commit 2dd7e1ba09d4501adf9d10ab4cb8ee003cace74a
> Author: Carlos Garcia Campos <carlosgc at gnome.org>
> Date: Wed Mar 9 10:25:00 2011 +0100
>
> forms: Move modified flag from FormWidget to FormField
>
> diff --git a/poppler/Form.cc b/poppler/Form.cc
> index 4acf010..2af8d3d 100644
> --- a/poppler/Form.cc
> +++ b/poppler/Form.cc
> @@ -68,7 +68,6 @@ FormWidget::FormWidget(XRef *xrefA, Object *aobj,
> unsigned num, Ref aref, FormFi
> double t;
> ID = 0;
> fontSize = 0.0;
> - modified = gFalse;
> childNum = num;
> xref = xrefA;
> aobj->copy(&obj);
> @@ -133,6 +132,10 @@ bool FormWidget::isReadOnly() const
> return field->isReadOnly();
> }
>
> +GBool FormWidget::isModified() const {
> + return field->isModified();
> +}
> +
> int FormWidget::encodeID (unsigned pageNum, unsigned fieldNum)
> {
> return (pageNum << 4*sizeof(unsigned)) + fieldNum;
> @@ -244,8 +247,6 @@ FormButtonType FormWidgetButton::getButtonType () const
> }
>
> void FormWidgetButton::setAppearanceState(char *state) {
> - modified = gTrue;
> -
> Object obj1;
> obj1.initName(state);
> obj.getDict()->set("AS", &obj1);
> @@ -342,7 +343,6 @@ void FormWidgetText::setContent(GooString* new_content)
> return;
> }
>
> - modified = gTrue;
> parent->setContentCopy(new_content);
> }
>
> @@ -373,7 +373,6 @@ void FormWidgetChoice::select (int i)
> return;
> }
> if (!_checkRange(i)) return;
> - modified = gTrue;
> parent->select(i);
> }
>
> @@ -384,7 +383,6 @@ void FormWidgetChoice::toggle (int i)
> return;
> }
> if (!_checkRange(i)) return;
> - modified = gTrue;
> parent->toggle(i);
> }
>
> @@ -394,7 +392,6 @@ void FormWidgetChoice::deselectAll ()
> error(-1, "FormWidgetChoice::deselectAll called on a read only
> field\n");
> return;
> }
> - modified = gTrue;
> parent->deselectAll();
> }
>
> @@ -424,7 +421,6 @@ void FormWidgetChoice::setEditChoice (GooString*
> new_content)
> return;
> }
>
> - modified = gTrue;
> parent->setEditChoice(new_content);
> }
>
> @@ -496,6 +492,7 @@ FormField::FormField(XRef* xrefA, Object *aobj, const
> Ref& aref, std::set<int> *
> fullyQualifiedName = NULL;
> quadding = quaddingLeftJustified;
> hasQuadding = gFalse;
> + modified = gFalse;
>
> ref = aref;
>
> @@ -837,6 +834,7 @@ GBool FormFieldButton::setState(char *state)
> }
> }
> updateState(state);
> + modified = gTrue;
> }
>
> return gTrue;
> @@ -933,6 +931,7 @@ void FormFieldText::setContentCopy (GooString*
> new_content)
> obj1.initString(content ? content->copy() : new GooString(""));
> obj.getDict()->set("V", &obj1);
> xref->setModifiedObject(&obj, ref);
> + modified = gTrue;
> }
>
> FormFieldText::~FormFieldText()
> @@ -1097,6 +1096,7 @@ void FormFieldChoice::updateSelection() {
>
> obj.getDict()->set("V", &obj1);
> xref->setModifiedObject(&obj, ref);
> + modified = gTrue;
> }
>
> void FormFieldChoice::unselectAll ()
> diff --git a/poppler/Form.h b/poppler/Form.h
> index 4913fa2..b5b4edd 100644
> --- a/poppler/Form.h
> +++ b/poppler/Form.h
> @@ -97,7 +97,7 @@ public:
> GooString *getMappingName() const;
> GooString *getFullyQualifiedName();
>
> - GBool isModified () { return modified; }
> + GBool isModified () const;
>
> bool isReadOnly() const;
>
> @@ -118,7 +118,6 @@ protected:
> Object obj;
> Ref ref;
> XRef *xref;
> - GBool modified;
>
> //index of this field in the parent's child list
> unsigned childNum;
> @@ -270,6 +269,8 @@ public:
> void setReadOnly (bool b) { readOnly = b; }
> bool isReadOnly () const { return readOnly; }
>
> + GBool isModified () const { return modified; }
> +
> GooString* getDefaultAppearance() const { return defaultAppearance; }
> GBool hasTextQuadding() const { return hasQuadding; }
> VariableTextQuadding getTextQuadding() const { return quadding; }
> @@ -298,6 +299,7 @@ public:
> int numChildren;
> FormWidget **widgets;
> bool readOnly;
> + GBool modified;
>
> GooString *partialName; // T field
> GooString *alternateUiName; // TU field
> commit b04f03be7e43e309af5f164ef71788e7b8915841
> Author: Carlos Garcia Campos <carlosgc at gnome.org>
> Date: Wed Mar 9 10:17:57 2011 +0100
>
> forms: Move field names handling from FormWidget to FormField
>
> diff --git a/poppler/Form.cc b/poppler/Form.cc
> index 4698124..4acf010 100644
> --- a/poppler/Form.cc
> +++ b/poppler/Form.cc
> @@ -75,28 +75,6 @@ FormWidget::FormWidget(XRef *xrefA, Object *aobj,
> unsigned num, Ref aref, FormFi
> type = formUndef;
> field = fieldA;
> Dict *dict = obj.getDict();
> - fullyQualifiedName = NULL;
> -
> - if (dict->lookup("T", &obj1)->isString()) {
> - partialName = obj1.getString()->copy();
> - } else {
> - partialName = NULL;
> - }
> - obj1.free();
> -
> - if (dict->lookup("TU", &obj1)->isString()) {
> - alternateUiName = obj1.getString()->copy();
> - } else {
> - alternateUiName = NULL;
> - }
> - obj1.free();
> -
> - if(dict->lookup("TM", &obj1)->isString()) {
> - mappingName = obj1.getString()->copy();
> - } else {
> - mappingName = NULL;
> - }
> - obj1.free();
>
> if (!dict->lookup("Rect", &obj1)->isArray()) {
> error(-1, "Annotation rectangle is wrong type");
> @@ -147,10 +125,6 @@ FormWidget::FormWidget(XRef *xrefA, Object *aobj,
> unsigned num, Ref aref, FormFi
>
> FormWidget::~FormWidget()
> {
> - delete partialName;
> - delete alternateUiName;
> - delete mappingName;
> - delete fullyQualifiedName;
> obj.free ();
> }
>
> @@ -192,50 +166,20 @@ void FormWidget::updateField (const char *key, Object
> *value)
> xref->setModifiedObject(obj1, ref1);
> }
>
> -GooString* FormWidget::getFullyQualifiedName() {
> - Object obj1, obj2;
> - Object parent;
> - GooString *parent_name;
> - GooString *full_name;
> -
> - if (fullyQualifiedName)
> - return fullyQualifiedName;
> -
> - full_name = new GooString();
> -
> - obj.copy(&obj1);
> - while (obj1.dictLookup("Parent", &parent)->isDict()) {
> - if (parent.dictLookup("T", &obj2)->isString()) {
> - parent_name = obj2.getString();
> -
> - if (parent_name->hasUnicodeMarker()) {
> - parent_name->del(0, 2); // Remove the unicode BOM
> - full_name->insert(0, "\0.", 2); // 2-byte unicode period
> - } else {
> - full_name->insert(0, '.'); // 1-byte ascii period
> - }
> +GooString *FormWidget::getPartialName() const {
> + return field->getPartialName();
> +}
>
> - full_name->insert(0, parent_name);
> - obj2.free();
> - }
> - obj1.free();
> - parent.copy(&obj1);
> - parent.free();
> - }
> - obj1.free();
> - parent.free();
> +GooString *FormWidget::getAlternateUiName() const {
> + return field->getAlternateUiName();
> +}
>
> - if (partialName) {
> - full_name->append(partialName);
> - } else {
> - int len = full_name->getLength();
> - // Remove the last period
> - if (len > 0)
> - full_name->del(len - 1, 1);
> - }
> +GooString *FormWidget::getMappingName() const {
> + return field->getMappingName();
> +}
>
> - fullyQualifiedName = full_name;
> - return fullyQualifiedName;
> +GooString *FormWidget::getFullyQualifiedName() {
> + return field->getFullyQualifiedName();
> }
>
> LinkAction *FormWidget::createActivationAction(Catalog *catalog)
> @@ -549,6 +493,7 @@ FormField::FormField(XRef* xrefA, Object *aobj, const
> Ref& aref, std::set<int> *
> widgets = NULL;
> readOnly = false;
> defaultAppearance = NULL;
> + fullyQualifiedName = NULL;
> quadding = quaddingLeftJustified;
> hasQuadding = gFalse;
>
> @@ -642,6 +587,27 @@ FormField::FormField(XRef* xrefA, Object *aobj, const
> Ref& aref, std::set<int> *
> hasQuadding = gTrue;
> }
> obj1.free();
> +
> + if (dict->lookup("T", &obj1)->isString()) {
> + partialName = obj1.getString()->copy();
> + } else {
> + partialName = NULL;
> + }
> + obj1.free();
> +
> + if (dict->lookup("TU", &obj1)->isString()) {
> + alternateUiName = obj1.getString()->copy();
> + } else {
> + alternateUiName = NULL;
> + }
> + obj1.free();
> +
> + if(dict->lookup("TM", &obj1)->isString()) {
> + mappingName = obj1.getString()->copy();
> + } else {
> + mappingName = NULL;
> + }
> + obj1.free();
> }
>
> FormField::~FormField()
> @@ -660,6 +626,10 @@ FormField::~FormField()
> obj.free();
>
> delete defaultAppearance;
> + delete partialName;
> + delete alternateUiName;
> + delete mappingName;
> + delete fullyQualifiedName;
> }
>
> void FormField::fillChildrenSiblingsID()
> @@ -714,6 +684,51 @@ FormWidget* FormField::findWidgetByRef (Ref aref)
> return NULL;
> }
>
> +GooString* FormField::getFullyQualifiedName() {
> + Object obj1, obj2;
> + Object parent;
> + GooString *parent_name;
> + GooString *full_name;
> +
> + if (fullyQualifiedName)
> + return fullyQualifiedName;
> +
> + full_name = new GooString();
> +
> + obj.copy(&obj1);
> + while (obj1.dictLookup("Parent", &parent)->isDict()) {
> + if (parent.dictLookup("T", &obj2)->isString()) {
> + parent_name = obj2.getString();
> +
> + if (parent_name->hasUnicodeMarker()) {
> + parent_name->del(0, 2); // Remove the unicode BOM
> + full_name->insert(0, "\0.", 2); // 2-byte unicode period
> + } else {
> + full_name->insert(0, '.'); // 1-byte ascii period
> + }
> +
> + full_name->insert(0, parent_name);
> + obj2.free();
> + }
> + obj1.free();
> + parent.copy(&obj1);
> + parent.free();
> + }
> + obj1.free();
> + parent.free();
> +
> + if (partialName) {
> + full_name->append(partialName);
> + } else {
> + int len = full_name->getLength();
> + // Remove the last period
> + if (len > 0)
> + full_name->del(len - 1, 1);
> + }
> +
> + fullyQualifiedName = full_name;
> + return fullyQualifiedName;
> +}
>
> //------------------------------------------------------------------------
> // FormFieldButton
> diff --git a/poppler/Form.h b/poppler/Form.h
> index 74539ca..4913fa2 100644
> --- a/poppler/Form.h
> +++ b/poppler/Form.h
> @@ -92,9 +92,9 @@ public:
> void setFontSize(double f) { fontSize = f; }
> double getFontSize () { return fontSize; }
>
> - GooString *getPartialName() const { return partialName; }
> - GooString *getAlternateUiName() const { return alternateUiName; }
> - GooString *getMappingName() const { return mappingName; }
> + GooString *getPartialName() const;
> + GooString *getAlternateUiName() const;
> + GooString *getMappingName() const;
> GooString *getFullyQualifiedName();
>
> GBool isModified () { return modified; }
> @@ -119,10 +119,6 @@ protected:
> Ref ref;
> XRef *xref;
> GBool modified;
> - GooString *partialName; // T field
> - GooString *alternateUiName; // TU field
> - GooString *mappingName; // TM field
> - GooString *fullyQualifiedName;
>
> //index of this field in the parent's child list
> unsigned childNum;
> @@ -278,6 +274,11 @@ public:
> GBool hasTextQuadding() const { return hasQuadding; }
> VariableTextQuadding getTextQuadding() const { return quadding; }
>
> + GooString *getPartialName() const { return partialName; }
> + GooString *getAlternateUiName() const { return alternateUiName; }
> + GooString *getMappingName() const { return mappingName; }
> + GooString *getFullyQualifiedName();
> +
> FormWidget* findWidgetByRef (Ref aref);
>
> // only implemented in FormFieldButton
> @@ -298,6 +299,11 @@ public:
> FormWidget **widgets;
> bool readOnly;
>
> + GooString *partialName; // T field
> + GooString *alternateUiName; // TU field
> + GooString *mappingName; // TM field
> + GooString *fullyQualifiedName;
> +
> // Variable Text
> GooString *defaultAppearance;
> GBool hasQuadding;
>
>
> ------------------------------
>
> Message: 5
> Date: Wed, 09 Mar 2011 12:12:12 +0000
> From: Tim Brody <tdb2 at ecs.soton.ac.uk>
> Subject: [poppler] configure disable-X ignored
> To: <poppler at lists.freedesktop.org>
> Message-ID:
> <EMEW3|6471e8481072a626ce8a2f9c29970ea6n28CCI04tdb2|ecs.soton.ac.uk
> |a1f95b03c3687364498a6c45aaef738a at ecs.soton.ac.uk>
>
> Content-Type: text/plain; charset="UTF-8"
>
> $ git clone git://git.freedesktop.org/git/poppler/poppler
> $ cd poppler
> $ ./autogen.sh --prefix=/usr/local/poppler --disable-cairo-output
> --disable-poppler-glib --disable-gtk-test --disable-poppler-qt4
> --disable-splash-output --disable-poppler-cpp
> $ make
>
> ...
> Building poppler with support for:
> font configuration: fontconfig
> splash output: no
> cairo output: no
> abiword output: no
> qt4 wrapper: no
> glib wrapper: no
> introspection: no
> cpp wrapper: no
> use gtk-doc: no
> use libjpeg: yes
> use libpng: yes
> use libtiff: no
> use zlib: no
> use libcurl: no
> use libopenjpeg: yes
> use cms: yes
> command line utils: yes
>
> $ make 2>&1
>
> ...
> gtk-test.cc:14:21: error: gdk/gdk.h: No such file or directory
> In file included from gtk-test.cc:19:
> ../glib/poppler.h:22:25: error: glib-object.h: No such file or directory
> In file included from ../glib/poppler.h:201,
> from gtk-test.cc:19:
>
> (Followed by more errors related to cairo)
>
> I'd like to "backport" current poppler onto servers and even with distros
> <year old (Fedora Core 13) it's a nightmare. Is it unreasonable to ask
> poppler to maintain compatibility with stable releases of dependent
> libraries e.g. cairo 1.0, glib 2.0 etc? It surely can't help testing to
> restrict your community to those people on the very latest library levels?
>
> --
> All the best,
> Tim.
>
>
> ------------------------------
>
> Message: 6
> Date: Wed, 9 Mar 2011 12:39:13 +0000
> From: Harry Roberts <harry at midnight-labs.org>
> Subject: Re: [poppler] configure disable-X ignored
> To: Tim Brody <tdb2 at ecs.soton.ac.uk>
> Cc: poppler at lists.freedesktop.org
> Message-ID:
> <AANLkTi=Tf91cKtDaSjRGmS3drcKU87HaLRwtpsbM5+8- at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> On a related note I was unable to build a recent checkout of Poppler
> because
> it tries to build all the GTK based tests regardless of whether or not the
> configure script found gdk/gtk etc.
>
> I got around it by commenting out the 'tests' target in Makefile (I was in
> a
> hurry), after that it builds & runs fine on Debian Lenny.
>
> On 9 March 2011 12:12, Tim Brody <tdb2 at ecs.soton.ac.uk> wrote:
>
> > $ git clone git://git.freedesktop.org/git/poppler/poppler
> > $ cd poppler
> > $ ./autogen.sh --prefix=/usr/local/poppler --disable-cairo-output
> > --disable-poppler-glib --disable-gtk-test --disable-poppler-qt4
> > --disable-splash-output --disable-poppler-cpp
> > $ make
> >
> > ...
> > Building poppler with support for:
> > font configuration: fontconfig
> > splash output: no
> > cairo output: no
> > abiword output: no
> > qt4 wrapper: no
> > glib wrapper: no
> > introspection: no
> > cpp wrapper: no
> > use gtk-doc: no
> > use libjpeg: yes
> > use libpng: yes
> > use libtiff: no
> > use zlib: no
> > use libcurl: no
> > use libopenjpeg: yes
> > use cms: yes
> > command line utils: yes
> >
> > $ make 2>&1
> >
> > ...
> > gtk-test.cc:14:21: error: gdk/gdk.h: No such file or directory
> > In file included from gtk-test.cc:19:
> > ../glib/poppler.h:22:25: error: glib-object.h: No such file or directory
> > In file included from ../glib/poppler.h:201,
> > from gtk-test.cc:19:
> >
> > (Followed by more errors related to cairo)
> >
> > I'd like to "backport" current poppler onto servers and even with distros
> > <year old (Fedora Core 13) it's a nightmare. Is it unreasonable to ask
> > poppler to maintain compatibility with stable releases of dependent
> > libraries e.g. cairo 1.0, glib 2.0 etc? It surely can't help testing to
> > restrict your community to those people on the very latest library
> levels?
> >
> > --
> > All the best,
> > Tim.
> > _______________________________________________
> > poppler mailing list
> > poppler at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/poppler
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.freedesktop.org/archives/poppler/attachments/20110309/f79f14a2/attachment.html
> >
>
> ------------------------------
>
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler
>
>
> End of poppler Digest, Vol 73, Issue 14
> ***************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/poppler/attachments/20110310/cc940081/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: srinivas_video_embedd.patch
Type: text/x-patch
Size: 14733 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/poppler/attachments/20110310/cc940081/attachment-0001.bin>
More information about the poppler
mailing list