Better EXIF extraction - replace check_call() exiftool nonsense

Bug #680886 reported by Jason Gerard DeRose on 2010-11-24
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Dmedia
High
Unassigned

Bug Description

So for the record, all my check_call() tomfoolery with `exiftool`, `totem-video-thumbnailer`, and `totem-video-indexer` were just to get something working as quickly as possible to demo at UDS.

benoitc on #couchdb suggested that we look at hachoir-metadata or Kaa as a replacement for the `exiftool` silliness:

http://pypi.python.org/pypi/hachoir-metadata/

http://doc.freevo.org/2.0/Kaa

benotic leans toward hachoir-metadata, so that's where I'll start first.

-----

This bus is about replacing exiftool usage in extract_exif of file dmedialib/extractor.py
http://bazaar.launchpad.net/~dmedia/dmedia/trunk/annotate/head:/dmedialib/extractor.py#L93

Related bugs:

totem-video-thumbnailer : bug #687962
totem-video-indexer : bug #687961

Related branches

Changed in dmedia:
milestone: none → 0.2
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → Jason Gerard DeRose (jderose)
Jason Gerard DeRose (jderose) wrote :

Manish, did you want to take this one? I think that's what your said on #novacut, so I went ahead and assigned this to you. If you're not interested, just assign it back to me.

Changed in dmedia:
assignee: Jason Gerard DeRose (jderose) → Manish Sinha (manishsinha)

I am still interested, but not able to do it now since I am at home
(hometown) where internet connection is pretty flaky and on top of it lots
of power problems. If you want you can work on it.

I am not able to assign it to you since I can only the bug to teams of which
I am a part. I can assign it to you only if I am a part of dmedia team. This
is a Launchpad restriction AFAIK

On Wed, Dec 15, 2010 at 8:34 AM, Jason Gerard DeRose <email address hidden>wrote:

> Manish, did you want to take this one? I think that's what your said on
> #novacut, so I went ahead and assigned this to you. If you're not
> interested, just assign it back to me.
>
> ** Changed in: dmedia
> Assignee: Jason Gerard DeRose (jderose) => Manish Sinha (manishsinha)
>
> --
> You received this bug notification because you are a bug assignee.
> https://bugs.launchpad.net/bugs/680886
>
> Title:
> Better EXIF extraction - replace check_call() exiftool nonsense
>

Jason Gerard DeRose (jderose) wrote :

Manish, I re-targeted this for dmedia 0.3... so if you want to take this on next month, it will be waiting for you.

Changed in dmedia:
milestone: 0.2 → 0.3
Jason Gerard DeRose (jderose) wrote :

Oh, and enjoy your visit home, Manish!

Changed in dmedia:
milestone: 0.3 → 0.4
Jason Gerard DeRose (jderose) wrote :

I'm trying to keep the 0.4 cycle more focused, so I'm re-targeted this for 0.5 as it doesn't fit the 0.4 theme. Which is not to say someone can't take this on during 0.4 - if you completed it, I will land it!

Changed in dmedia:
importance: Medium → High
milestone: 0.4 → 0.5

I can see that the information which can be fetched are
* Image Width
* Image Height
* Bits/pixel
* Pixel Format
* Compression Ratio
* Compression
* MIME Type
* Endianness
* Format Version
* Comment

Hope this much is enough

Right now we have

* ExifTool Version Number [Not needed]
* File Name [Possible]
* Directory [Possible]
* File Size [Possible]
* File Modification Date/Time [Possible]
* File Permissions [Possible]
* File Type [Covered by Compression]
* MIME Type [In Hachoir]
* JFIF Version [Covered by Format version]
* Resolution Unit
* X Resolution
* Y Resolution
* Image Width [In Hachoir]
* Image Height [In Hachoir]
* Encoding Process
* Bits Per Sample
* Color Components
* Y Cb Cr Sub Sampling
* Image Size [In Hachoir]

The ones without [comment] are problematic

Changed in dmedia:
milestone: 0.5 → 0.6
Changed in dmedia:
status: Triaged → In Progress

Unassigned myself as it needs to be done via gstreamer. I have no clue about it as of now. Later sometime, I might learn

Changed in dmedia:
assignee: Manish Sinha (मनीष सिन्हा) (manishsinha) → nobody
Jason Gerard DeRose (jderose) wrote :

Thanks for all your work on this, Manish. Even though we don't quite have a solution yet, you've given us a broad survey of the options. It's a shame EXIF from Python is such a pain... think that reflects the fact that EXIF is a pain (and a mess) in its own right.

I've never tried EXIF extraction with GStreamer, will be exciting to see what we can do there... would be nice to use GStreamer as our metadata extractor across the board.

On Sun, Apr 24, 2011 at 3:53 AM, Jason Gerard DeRose
<email address hidden> wrote:
> Thanks for all your work on this, Manish.  Even though we don't quite
> have a solution yet, you've given us a broad survey of the options.
> It's a shame EXIF from Python is such a pain... think that reflects the
> fact that EXIF is a pain (and a mess) in its own right.
>
> I've never tried EXIF extraction with GStreamer, will be exciting to see
> what we can do there... would be nice to use GStreamer as our metadata
> extractor across the board.

You can give it a try.

Till date the only exif library I have faith on is taglib-sharp made
by the awesome banshee developers.

https://github.com/mono/taglib-sharp
https://github.com/mono/taglib-sharp/tree/master/examples
https://github.com/mono/taglib-sharp/blob/master/examples/ParsePhoto.cs

Sadly, I never knew it was such a pain in python. No clue how people
manage to extract exif data in all those applications

Changed in dmedia:
milestone: 0.6 → 0.7
Changed in dmedia:
milestone: 0.7 → 0.8
Changed in dmedia:
status: In Progress → Triaged
milestone: 11.08 → 11.11
Changed in dmedia:
milestone: 11.11 → 11.12
Changed in dmedia:
milestone: 11.12 → 12.02
Changed in dmedia:
milestone: 12.02 → 12.04
Changed in dmedia:
milestone: 12.04 → 12.06
Changed in dmedia:
milestone: 12.06 → 12.07
milestone: 12.07 → 12.08
Changed in dmedia:
milestone: 12.08 → 12.09
Changed in dmedia:
milestone: 12.09 → 12.10
Changed in dmedia:
milestone: 12.10 → 12.11
Changed in dmedia:
milestone: 12.11 → 12.12
Changed in dmedia:
milestone: 12.12 → 13.02
Changed in dmedia:
milestone: 13.02 → 13.05
Changed in dmedia:
milestone: 13.05 → 13.07
Changed in dmedia:
milestone: 13.07 → 13.08
Changed in dmedia:
milestone: 13.08 → 13.10
Changed in dmedia:
milestone: 13.10 → 13.12
Changed in dmedia:
milestone: 13.12 → 14.02
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers