TPESystem/Media/MediaSupportFileFormat: Difference between revisions

Jump to navigation Jump to search
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>
* ''' File Type Check'''  
<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:
* Pictures:
''*.jpe; *.jpg; *.jpeg; *.gif; *.png; *.bmp''
''*.jpe; *.jpg; *.jpeg; *.gif; *.png; *.bmp''
** Music:
* 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:
* Videos:
''*.mp4; *.mpeg; *.mpg; *.ogv; *.ogx; *.webm; *.3gp; *.ogg; *.m4v;''
''*.mp4; *.mpeg; *.mpg; *.ogv; *.ogx; *.webm; *.3gp; *.ogg; *.m4v;''
*'''MIME Type Get'''
<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.  
*'''Sniff'''  
<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().
*'''MIME mapper in Gaia'''
<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>
20

edits

Navigation menu