20
edits
| Line 4: | Line 4: | ||
Related bugs: {{bug|942078}} <br> | Related bugs: {{bug|942078}} <br> | ||
Some information in MDN: https://developer.mozilla.org/en-US/docs/How_Mozilla_determines_MIME_Types | Some information in MDN: https://developer.mozilla.org/en-US/docs/How_Mozilla_determines_MIME_Types | ||
<OL> | |||
<LI>''' File Type Check'''<br> | |||
Files are categorized in 3 groups, pictures, music, and videos @gecko/toolkit/content/devicestorage.properties. | Files are categorized in 3 groups, pictures, music, and videos @gecko/toolkit/content/devicestorage.properties. | ||
You need to check if your file extension is in the following list. Otherwise it will be not recognized as media files. | You need to check if your file extension is in the following list. Otherwise it will be not recognized as media files. | ||
* Pictures: | |||
''*.jpe; *.jpg; *.jpeg; *.gif; *.png; *.bmp'' | ''*.jpe; *.jpg; *.jpeg; *.gif; *.png; *.bmp'' | ||
* Music: | |||
''*.mp3; *.ogg; *.m4a; *.m4b; *.m4p; *.m4r; *.3gp; *.mp4; *.m3u; *.pls; *.opus; *.amr'' | ''*.mp3; *.ogg; *.m4a; *.m4b; *.m4p; *.m4r; *.3gp; *.mp4; *.m3u; *.pls; *.opus; *.amr'' | ||
* Videos: | |||
''*.mp4; *.mpeg; *.mpg; *.ogv; *.ogx; *.webm; *.3gp; *.ogg; *.m4v;'' | ''*.mp4; *.mpeg; *.mpg; *.ogv; *.ogx; *.webm; *.3gp; *.ogg; *.m4v;'' | ||
<LI>'''MIME Type Get''' <br> | |||
For Gaia, <br> | For Gaia, <br> | ||
Before getting metadata and thumbnail then, canPlayType is used to check if it is valid video file by passing MIME type to gecko to check. <br> | Before getting metadata and thumbnail then, canPlayType is used to check if it is valid video file by passing MIME type to gecko to check. <br> | ||
| Line 24: | Line 24: | ||
This MIME type is obtained from extension list extraMimeEntries @http://dxr.mozilla.org/mozilla-central/source/uriloader/exthandler/nsExternalHelperAppService.cpp#483 <br> | This MIME type is obtained from extension list extraMimeEntries @http://dxr.mozilla.org/mozilla-central/source/uriloader/exthandler/nsExternalHelperAppService.cpp#483 <br> | ||
So if your file extension is not in the list. You will get a empty MIME. | So if your file extension is not in the list. You will get a empty MIME. | ||
<LI>'''Sniff'''<br> | |||
If you file passes those two checks explained above, it doesn't mean thumbnail can be generated or can be played successfully. Those checks only try to find a match in the mapping list of MIME and file extension. <br> | If you file passes those two checks explained above, it doesn't mean thumbnail can be generated or can be played successfully. Those checks only try to find a match in the mapping list of MIME and file extension. <br> | ||
In Gecko, DataSource(frameworks/base/media/libstagefright/DataSource.cpp sniff()) will sniff the files and try to find the corresponding extractor. You can find how many and which formats supported in RegisterDefaultSniffers(). | In Gecko, DataSource(frameworks/base/media/libstagefright/DataSource.cpp sniff()) will sniff the files and try to find the corresponding extractor. You can find how many and which formats supported in RegisterDefaultSniffers(). | ||
<LI>'''MIME mapper in Gaia'''<br> | |||
There is a mime and file extension mapping list in Gaia(http://mxr.mozilla.org/gaia/source/shared/js/mime_mapper.js). Currently this is used for those media files not in storage, like mail attachment. It can be used to get file extension by passing MIME type. | There is a mime and file extension mapping list in Gaia(http://mxr.mozilla.org/gaia/source/shared/js/mime_mapper.js). Currently this is used for those media files not in storage, like mail attachment. It can be used to get file extension by passing MIME type. | ||
</OL> | |||
edits