[poppler] Preliminary movie support

Albert Astals Cid aacid at kde.org
Sun Feb 3 11:25:33 PST 2008


A Diumenge 03 Febrer 2008, Hugo Mercier va escriure:
> Hi,
>
> Here is a patch based on the last git commit which add preliminary
> access to movies.
> It is based on the previous patch I sent to this list, but it has been
> rewritten to better suit Annot modifications and to take movie options
> into account.
>
> Currently, the following features are supported :
> - movies introduced before PDF 1.5 :
>   - Parsing of 'Movie annotation' : a new AnnotMovie class has been added
>   - Parsing of 'Movie Action' : a new LinkMovie class has been added
> - movies introduced with PDF 1.5 :
>   - Parsing of 'Screen annotation'  : new AnnotScreen added
>   - Parsing of 'Rendition Action' (which may include embedded movies)
>
> : new LinkRendition
>
>  (a movie (with options), either originated from a movie annotation or
> a rendition object is stored in a common 'Movie' object )
> - Access to the movies through the glib frontend.
>
> It still lacks parsing of some movie options, modifications of the qt
> frontend to access movies and a lot of tests.
>
>
> Of course, feel free to comment.

Not commenging in glib code as we have better people to that.

Minor comments:
 * Use poppler own types in poppler core code (yeah i know it sucks)
   * Use poppler's Gulong instead of long in poppler core core 
   * Use poppler's gFalse and gTrue in poppler core core
   * Use GBool on Movie.h
 * You killed "Sound" from the if on createAnnot, is that a mistake?

Important things:
 * The Movie ownernship is not clear to me, AnnotMovie creates one but never 
deletes it, that makes an instant leak. Same for LinkRendition. I think your 
idea is that people needs to call getMovie and then take care of deleting 
themselves. That's unaccetable because not everyone might want to care about 
Annots and because if there are two calls to getMovie it creates a "who has 
to delete dilemma". Probably the easiest solution is making the getMovie 
functions return a copy of movie the caller has to care to delete.

Critical things:
 * Movie.h is GPLv3+ which makes it impossible for us to use it, it needs to 
be GPLv2+ 

Albert


More information about the poppler mailing list