Recherche avancée

Médias (91)

Autres articles (48)

  • MediaSPIP : Modification des droits de création d’objets et de publication définitive

    11 novembre 2010, par

    Par défaut, MediaSPIP permet de créer 5 types d’objets.
    Toujours par défaut les droits de création et de publication définitive de ces objets sont réservés aux administrateurs, mais ils sont bien entendu configurables par les webmestres.
    Ces droits sont ainsi bloqués pour plusieurs raisons : parce que le fait d’autoriser à publier doit être la volonté du webmestre pas de l’ensemble de la plateforme et donc ne pas être un choix par défaut ; parce qu’avoir un compte peut servir à autre choses également, (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (8991)

  • 9 Ways to Customise Your Matomo Like a Pro

    5 octobre 2022, par Erin

    Matomo is a feature-rich web analytics platform. As such, it has many layers of depth — core features, extra plug-ins, custom dimensions, reports, extensions and integrations. 

    Most of the product elements you see can be personalised and customised to your needs with minimal restrictions. However, this breadth of choice can be overlooked by new users. 

    In this post, we explain how to get the most out of Matomo with custom reports, dashboards, dimensions and even app design. 

    How to customise your Matomo web analytics

    To make major changes to Matomo (e.g., create custom dashboards or install new plugins), you’ll have to be a Matomo Super User (a.k.a. The Admin). Super Users can also grant administrator permissions to others so that more people could customise your Matomo deployment. 

    Most feature-related customisations (e.g. configuring a custom report, adding custom goal tracking, etc.) can be done by all users. 

    With the above in mind, here’s how you can tweak Matomo to better serve your website analytics needs : 

    1. Custom dashboards

    Matomo Customisable Dashboard and Widgets

    Dashboards provide a panorama view of all the collected website statistics. We display different categories of stats and KPIs as separate widgets — a standalone module you can also customise. 

    On your dashboard, you can change the type, position and number of widgets on display. This is an easy way to create separate dashboard views for different projects, clients or team members. Rather than a one-size-fits-all dashboard, a custom dashboard designed for a specific role or business unit will increase data-driven decision-making and efficiency across the business.

    You can create a new dashboard view in a few clicks. Then select a preferred layout — a split-page view or multi columns. Next, populate the new dashboard area with preferred widgets showing :

    Or code a custom widget area to pull specific website stats or other reporting data you need. Once you are done, arrange everything with our drag-and-drop functionality. 

    Matomo Widgets

    Popular feature use cases

    • Personalised website statistics layout for convenient viewing 
    • Simplified analytics dashboards for the line of business leaders/stakeholders 
    • Project- or client-specific dashboards for easy report sharing 

    Read more about customising Matomo dashboards and widget areas

    2. Custom reports

    Matomo Custom Reports

    As the name implies, Custom Reports widget allows you to mesh any of the dimensions and metrics collected by Matomo into a custom website traffic analysis. Custom reports save users time by providing specific data needed in one view so there is no need to jump back and forth between multiple reports or toggle through a report to find data.

    For each custom report, you can select up to three dimensions and then apply additional quantitative measurements (metrics) to drill down into the data.

    For example, if you want to closely observe mobile conversion rates in one market, you can create the following custom report :

    • Dimensions : User Type (registered), Device type (mobile), Location (France)
    • Metrics : Visits, Conversion Rate, Revenue, Avg. Generation Time.

    Custom Report widget is available within Matomo Cloud and as a plugin for Matomo On-Premise.

    &lt;script type=&quot;text/javascript&quot;&gt;<br />
           if ('function' === typeof window.playMatomoVideo){<br />
           window.playMatomoVideo(&quot;custom_reports&quot;, &quot;#custom_reports&quot;)<br />
           } else {<br />
           document.addEventListener(&quot;DOMContentLoaded&quot;, function() { window.playMatomoVideo(&quot;custom_reports&quot;, &quot;#custom_reports&quot;); });<br />
           }<br />
      &lt;/script&gt;

    Popular feature use cases

    • Campaign-specific reporting to better understand the impact of different promo strategies 
    • Advanced event tracking for conversion optimization 
    • Market segmentation reports to analyse different audience cohorts 

    Read more about creating and analysing Custom Reports.

    3. Custom widgets

    Matomo Customisable Widgets

    We realise that our users have different degrees of analytics knowledge. Some love in-depth reporting dimensions and multi-row reporting tables. Others just want to see essential stats. 

    To delight both the pros and the novice users, we’ve created widgets — reporting sub-modules you can add, delete or rearrange in a few clicks. Essentially, a widget is a slice of a dashboard area you can populate with extra information. 

    You can add pre-made custom widgets to Matomo or develop your own widget to display custom reports or even external data (e.g., offline sales volume). At the same time, you can also embed Matomo widgets into other applications (e.g., a website CMS or corporate portal).

    Popular feature use cases

    • Display main goals (e.g., new trial sign-ups) on the main dashboard for greater visibility 
    • Highlight cost-per-conversion reporting by combining goals and conversion data to keep your budgets in check 
    • Run omnichannel eCommerce analytics (with embedded offline sales data) to get a 360-degree view into your operations 

    Read more about creating widgets in Matomo (beginner’s guide)

    4. Custom dimensions 

    Matomo Custom Dimensions

    Dimensions describe the characteristics of reported data. Think of them as “filters” — a means to organise website analytics data by a certain parameter such as “Browser”, “Country”, “Device Type”, “User Type” and many more. 

    Custom Dimensions come in handy for all sorts of segmentation reports. For example, comparing conversion rates between registered and guest users. Or tracking revenue by device type and location. 

    For convenience, we’ve grouped Custom Dimensions in two categories :

    Visit dimensions. These associate metadata about a user with Visitor profiles — a summary of different knowledge you have about your audience. Reports for Visit scoped custom dimensions are available in the Visitors section of your dashboard. 

    Action dimensions. These segment users by specific actions tracked by Matomo such as pageviews, events completion, downloads, form clicks, etc. When configuring Custom Dimensions, you can select among pre-defined action types or code extra action dimensions. Action scoped custom dimensions are available in the Behaviours section of Matomo. 

    Depending on your Matomo version, you can apply 5 – 15 custom dimensions to reports. 

    Important : Since you can’t delete dimensions (only deactivate them), think about your use case first. Custom Dimensions each have their own dedicated reports page on your Matomo dashboard. 

    Popular custom dimension use cases among users :

    • Segmenting reports by users’ screen resolution size to understand how your website performs on different devices
    • Monitor conversion rates for different page types to determine your best-performing assets 

    Read more about creating, tracking and managing Custom Dimensions

    5. Custom scheduled reports

    Manually sending reports can be time consuming, especially if you have multiple clients or provide reports to numerous stakeholders. Custom scheduled reports remove this manual process to improve efficiency and ensure timely distribution of data to relevant users.

    Any report in Matomo (default or custom) can be shared with others by email as a PDF file, HTML content or as an attached CSV document. 

    You can customise which data you want to send to different people — your colleagues, upper management, clients or other company divisions. Then set up the frequency of email dispatches and Matomo will do the rest. 

    Auto-scheduling an email report is easy. Name your report, select a Segment (aka custom or standard report), pick time, file format and sender. 

    Matomo Schedule Reports

    You can also share links to Matomo reports as text messages, if you are using ASPSMS or Clockwork SMS

    Popular feature use cases

    • Convenient stakeholder reporting on key website KPIs 
    • Automated client updates to keep clients informed and reduce workload 
    • Easy data downloads for doing custom analysis with business intelligence tools 

    Read more about email reporting features in Matomo

    6. Custom alerts

    Matomo Custom Alerts

    Custom Alerts is a Matomo plugin for keeping you updated on the most important analytics events. Unlike Custom Reports, which provide a complete or segmented analytics snapshot, alerts are better suited for tracking individual events. For example, significant traffic increases from a specific channel, new 404 pages or major goal achievement (e.g., hitting 1,000 sales in a week). 

    Custom Alerts are a convenient way to keep your finger on the pulse of your site so you can quickly remedy an issue or get updated on reaching a crucial KPI promptly. You can receive custom alerts via email or text message in a matter of minutes.

    To avoid flooding your inbox with alerts, we recommend reserving Custom Alerts for a select few use cases (3 to 5) and schedule custom Email Reports to receive general web page analytics. 

    Popular custom alerts use cases among users :

    • Monitor sudden drops in revenue to investigate the cause behind them and solve any issues promptly 
    • Get notified of traffic spikes or sudden dips to better manage your website’s technical performance 

    Read more about creating and managing Custom Alerts

    7. Goals

    Matomo Customisable Goal Funnels

    Goals feature helps you better understand how your website performs on certain business objectives such as lead generation, online sales or content discovery. A goal is a quantifiable action you want to measure (e.g., a specific page visit, form submission or a file download). 

    When combined together, Goals make up your sales funnel — a series of specific actions you expect users to complete in order to convert. 

    Goals-setting and Funnel Analytics are a powerful, customisable combo for understanding how people navigate your website ; what makes them take action or, on the contrary, lose interest and bounce off. 

    On Matomo, you can simultaneously track multiple goals, monitor multiple conversions per one visit (e.g., when one user requests two content downloads) and assign revenue targets to specific goals.

    &lt;script type=&quot;text/javascript&quot;&gt;<br />
           if ('function' === typeof window.playMatomoVideo){<br />
           window.playMatomoVideo(&quot;goals&quot;, &quot;#goals&quot;)<br />
           } else {<br />
           document.addEventListener(&quot;DOMContentLoaded&quot;, function() { window.playMatomoVideo(&quot;goals&quot;, &quot;#goals&quot;); });<br />
           }<br />
      &lt;/script&gt;

    Separately, Matomo Cloud users also get access to a premium Funnels feature and Multi Channel Conversion Attribution. On-Premises Matomo users can get both as paid plugins via our Marketplace.

    Popular goal tracking use cases among users :

    • Tracking newsletter subscription to maximise subscriber growth 
    • Conversion tracking for gated content (e.g., eBooks) to understand how each asset performs 
    • Analysing the volume of job applications per post to better interpret your HR marketing performance 

    Read more about creating and managing Goals in Matomo.

    8. Themes

    Matomo On-Premise Customisable Themes

    Want to give your Matomo app a distinctive visual flair ? Pick a new free theme for your On-Premises installation. Minimalistic, dark or classic — our community created six different looks that other Matomo users can download and install in a few clicks. 

    If you have some HTML/CSS/JS knowledge, you can also design your own Matomo theme. Since Matomo is an open-source project, we don’t restrict interface customisation and always welcome creativity from our users.

    Read more about designing your own Matomo theme (developer documentation).

    9. White labelling

    Matomo white label options

    Matomo is one of the few website analytics tools to support white labelling. White labelling means that you can distribute our product to others under your brand. 

    For example, as a web design agency, you can delight customers with pre-installed GDPR-friendly website analytics. Marketing services providers, in turn, can present their clients with embedded reporting widgets, robust funnel analytics and 100% unsampled data. 

    Apart from selecting a custom theme, you can also align Matomo with your brand by :

    • Customising product name
    • Using custom header/font colours 
    • Change your tracking endpoint
    • Remove links to Matomo.org

    To streamline Matomo customisation and set-up, we developed a White Label plug-in. It provides a convenient set of controls for changing your Matomo deployment and distributing access rights to other users or sharing embedded Matomo widgets). 

    Read more about white labelling Matomo

    Learning more about Matomo 

    Matomo has an ever-growing list of features, ranging from standard website tracking controls to unique conversion rate optimisation tools (heatmaps, media analytics, user cohorts and more).

    To learn more about Matomo features you can check our free video web analytics training series where we cover the basics. For feature-specific tips, tricks and configurations, browse our video content or written guides

  • MediaCodec hardware decoder much slower with different server configuration ?

    19 octobre 2013, par mathieujofis

    I've been using the Android MediaCodec in order to (hardware) decode H.264 frames on my Galaxy S4 coming from a Live 555 RTSP live (real-time) stream. After changing my Live 555 server configuration from using ffmpeg (with x264) to encode frames, to using strictly x264 to encode frames, the time to decode frames with MediaCodec takes much longer. Basically, MediaCodec can't keep up with the stream, and displays the video in slow motion, getting slower and slower as time goes on. Going back to ffmpeg isn't a solution for me, because I need the ability to encode into discrete NAL units, rather than a whole frame like ffmpeg does.

    I was wondering if this was either : A) An issue with the way my server is encoding NAL units, or B) An issue with my Android client, specifically the way it is receiving and decoding NAL units.

    My encoding configuration with x264 is :

    x264_param_default_preset(&amp;param,"ultrafast", "zerolatency:fastdecode");
    param.i_threads = 1;
    param.i_bframe = 1;
    param.i_width = image_width;
    param.i_height = image_height;
    param.i_fps_num = 60;
    param.i_fps_den = 1;
    param.i_keyint_max = 10;

    param.rc.i_rc_method = X264_RC_ABR;
    param.rc.i.bitrate = 6000;
    param.i_sps_id = 7;
    param.b_repeat_headers = 1;
    param.b_annexb = 0;

    My Android MediaCodec client is set up as follows :

    I receive each individual NAL unit on a separate Live 555 RTSP client thread. Each NAL is put into a queue along with its size and presentation time. A separate decoder thread grabs NALs from this queue, and if there are none available, waits until there are.

    Some notes :

    What I generally see happen is the queue starts filling up with NALs, instead of staying close to empty. So, I know that the decoder thread is not working fast enough. I don't think this is an inherent problem with decoding on an Android phone (for example, processing limitations) because it does the same thing for very low bitrates— also again, it DID work when I was using ffmpeg to encode. If I omit certain NAL units, the decoder can start to keep up. Since I'm using Cyanogenmod 10.1, bumping up the minimum CPU frequency helps, too.

    Edit :

    Here is a log of the Android client, as well as a log highlighting the garbage collector specifically—

    Entire Logcat :

    10-15 16:40:03.955: D/DecodeActivity(18859): INFO_OUTPUT_BUFFERS_CHANGED
    10-15 16:40:03.995: E/OMX-VDEC-1080P(288): Sync frame received
    10-15 16:40:03.995: E/OMX-VDEC-1080P(288):  No color conversion required
    10-15 16:40:03.995: E/OMX-VDEC-1080P(288): Get_parameter: OMX_IndexParamPortDefinition: nPortIndex (1), nFrameWidth (1280), nFrameHeight (720), nStride (1280), nSliceHeight (736), nBitrate (-1073741824), xFramerate (0x1e), nBufferSize (1433600), nBufferCountMin (4), nBufferCountActual (8), bBuffersContiguous (1918394328), nBufferAlignment (1075643347), bEnabled (1), bPopulated (1), eCompressionFormat (0x0), eColorFormat (0x7fa30c03)
    10-15 16:40:03.995: D/DecodeActivity(18859): New format {height=720, what=1869968451, color-format=2141391875, slice-height=736, crop-left=0, width=1280, crop-bottom=719, crop-top=0, mime=video/raw, stride=1280, crop-right=1279}
    10-15 16:40:04.005: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4966) fps(201.369308)
    10-15 16:40:04.015: W/IInputConnectionWrapper(1069): showStatusIcon on inactive InputConnection
    10-15 16:40:04.025: I/ActivityManager(698): Displayed com.mathieu.alloclient.javadecoder/.MainActivity: +617ms
    10-15 16:40:04.025: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4766) fps(209.819550)
    10-15 16:40:04.125: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4733) fps(211.282486)
    10-15 16:40:04.445: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4711) fps(212.269150)
    10-15 16:40:04.495: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4700) fps(212.765961)
    10-15 16:40:05.676: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4688) fps(213.310577)
    10-15 16:40:06.087: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 1ms
    10-15 16:40:06.207: D/dalvikvm(698): GC_EXPLICIT freed 4120K, 39% free 24216K/39664K, paused 7ms+9ms, total 117ms
    10-15 16:40:06.537: D/ALSADevice(288): standby: handle 0x40024450 h 0x0
    10-15 16:40:06.577: D/alsa_ucm(288): snd_use_case_set(): uc_mgr 0x400fbfb0 identifier _verb value Inactive
    10-15 16:40:06.577: D/alsa_ucm(288): Set mixer controls for HiFi Lowlatency enable 0
    10-15 16:40:06.577: D/alsa_ucm(288): Setting mixer control: SLIMBUS_0_RX Audio Mixer MultiMedia5, value: 0
    10-15 16:40:06.577: D/alsa_ucm(288): snd_use_case_set(): uc_mgr 0x400fbfb0 identifier _disdev value Line
    10-15 16:40:06.577: D/alsa_ucm(288): disdev: device Line not enabled, no need to disable
    10-15 16:40:06.577: D/alsa_ucm(288): snd_use_case_set(): uc_mgr 0x400fbfb0 identifier _disdev value Speaker
    10-15 16:40:06.577: D/alsa_ucm(288): Set mixer controls for Speaker enable 0
    10-15 16:40:06.577: D/alsa_ucm(288): Setting mixer control: RX5 MIX1 INP1, value: ZERO
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: RX5 MIX1 INP2, value: ZERO
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: LINEOUT2 Volume, value: 0
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: LINEOUT4 Volume, value: 0
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: RX5 Digital Volume, value: 0
    10-15 16:40:06.587: D/AudioUsbALSA(288): exitPlaybackThread, mproxypfdPlayback: -1
    10-15 16:40:06.587: D/AudioUsbALSA(288): closeDevice handle 0x0
    10-15 16:40:06.587: D/AudioUsbALSA(288): closeDevice handle 0x0
    10-15 16:40:17.638: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4677) fps(213.812271)
    10-15 16:40:17.698: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4644) fps(215.331604)
    10-15 16:40:20.681: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4633) fps(215.842865)
    10-15 16:40:21.111: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4611) fps(216.872696)
    10-15 16:40:25.746: D/dalvikvm(698): GC_CONCURRENT freed 5829K, 41% free 23778K/39664K, paused 10ms+24ms, total 165ms
    10-15 16:40:28.448: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.800000 hotplug_avg_load_dw: 74
    10-15 16:40:28.448: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:243.000000
    10-15 16:40:30.841: W/SystemClock(698): time going backwards: prev 16555345563411(ioctl) vs now 16555345441341(ioctl), tid=764
    10-15 16:40:44.684: D/dalvikvm(698): GC_CONCURRENT freed 5302K, 41% free 23774K/39664K, paused 6ms+9ms, total 107ms
    10-15 16:40:57.467: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4577) fps(218.483719)
    10-15 16:41:14.383: D/dalvikvm(698): GC_CONCURRENT freed 5371K, 41% free 23768K/39664K, paused 7ms+8ms, total 146ms
    10-15 16:41:14.403: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:4.500000 hotplug_avg_load_dw: 89
    10-15 16:41:14.403: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:41:14.403: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:41:14.403: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:922.000000
    10-15 16:41:27.466: E/kickstart(862): Total bytes received so far: 48
    10-15 16:41:27.466: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_HELLO
    10-15 16:41:27.466: E/kickstart(862): EVENT: SENDING --> SAHARA_HELLO_RESPONSE
    10-15 16:41:27.466: E/kickstart(862): EVENT: sahara_mode                         = 2
    10-15 16:41:27.466: E/kickstart(862): EVENT: m_comm->sahara_hello_packet_rx.mode = 2
    10-15 16:41:27.466: E/kickstart(862): EVENT: helloRx.mode                        = 2
    10-15 16:41:27.466: E/kickstart(862): Total bytes received so far: 64
    10-15 16:41:27.466: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_MEMORY_DEBUG
    10-15 16:41:27.466: E/kickstart(862): Total bytes received so far: 116
    10-15 16:41:27.466: E/kickstart(862): EVENT: 0x46980000, len=000C0000, "m9kefs1", ""
    10-15 16:41:27.466: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_MEMORY_REGION
    10-15 16:41:27.466: E/kickstart(862): EVENT: Saving "/dev/block/platform/msm_sdcc.1/by-name/m9kefs1"
    10-15 16:41:27.526: E/kickstart(862): Total bytes received so far: 786548
    10-15 16:41:27.526: E/kickstart(862): EVENT: Received: 786432 bytes
    10-15 16:41:27.526: E/kickstart(862): EVENT: Writing to disk
    10-15 16:41:27.526: E/kickstart(862): EVENT: Successfully wrote to disk
    10-15 16:41:27.526: E/kickstart(862): Received file "m9kefs1"
    10-15 16:41:27.576: E/kickstart(862): Sync finish Received file "m9kefs1"
    10-15 16:41:27.576: E/kickstart(862): 786432 bytes transferred in 0.106s (7.10 MBps)
    10-15 16:41:27.576: E/kickstart(862): EVENT: num_debug_entries not >=0
    10-15 16:41:27.576: E/kickstart(862): Successfully downloaded files from target
    10-15 16:41:27.576: E/kickstart(862): EVENT: SENDING --> SAHARA_RESET
    10-15 16:41:27.576: E/kickstart(862): Total bytes received so far: 786556
    10-15 16:41:27.576: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_RESET_RESP
    10-15 16:41:27.576: E/kickstart(862): Sahara protocol completed
    10-15 16:41:27.576: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_HELLO
    10-15 16:41:27.746: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.100000 hotplug_avg_load_dw: 79
    10-15 16:41:27.746: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:244.000000
    10-15 16:41:49.598: D/dalvikvm(698): GC_CONCURRENT freed 5339K, 41% free 23775K/39664K, paused 10ms+7ms, total 134ms
    10-15 16:42:17.225: I/ActivityManager(698): Start proc com.cyanogenmod.lockclock for service com.cyanogenmod.lockclock/.weather.WeatherUpdateService: pid=18954 uid=10028 gids={50028, 3003, 1028}
    10-15 16:42:17.865: D/WeatherXmlParser(18954): Weather updated: WeatherInfo for Santa Barbara@ Tue Oct 15 16:42:17 PDT 2013: Fair(34), temperature 29°C, low 11°, high 27°, humidity 14%, wind 11km/h at W
    10-15 16:42:17.945: I/ActivityManager(698): No longer want com.google.android.apps.uploader (pid 13565): empty #17
    10-15 16:42:24.021: D/dalvikvm(698): GC_CONCURRENT freed 5277K, 41% free 23770K/39664K, paused 8ms+11ms, total 106ms
    10-15 16:42:35.983: W/ThrottleService(698): unable to find stats for iface rmnet0
    10-15 16:42:59.476: D/dalvikvm(698): GC_CONCURRENT freed 5345K, 41% free 23770K/39664K, paused 6ms+13ms, total 168ms
    10-15 16:43:02.098: E/kickstart(862): Total bytes received so far: 48
    10-15 16:43:02.098: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_HELLO
    10-15 16:43:02.098: E/kickstart(862): EVENT: SENDING --> SAHARA_HELLO_RESPONSE
    10-15 16:43:02.098: E/kickstart(862): EVENT: sahara_mode                         = 2
    10-15 16:43:02.098: E/kickstart(862): EVENT: m_comm->sahara_hello_packet_rx.mode = 2
    10-15 16:43:02.098: E/kickstart(862): EVENT: helloRx.mode                        = 2
    10-15 16:43:02.098: E/kickstart(862): Total bytes received so far: 64
    10-15 16:43:02.098: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_MEMORY_DEBUG
    10-15 16:43:02.108: E/kickstart(862): Total bytes received so far: 116
    10-15 16:43:02.108: E/kickstart(862): EVENT: 0x46980000, len=000C0000, "m9kefs2", ""
    10-15 16:43:02.108: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_MEMORY_REGION
    10-15 16:43:02.108: E/kickstart(862): EVENT: Saving "/dev/block/platform/msm_sdcc.1/by-name/m9kefs2"
    10-15 16:43:02.158: E/kickstart(862): Total bytes received so far: 786548
    10-15 16:43:02.158: E/kickstart(862): EVENT: Received: 786432 bytes
    10-15 16:43:02.158: E/kickstart(862): EVENT: Writing to disk
    10-15 16:43:02.168: E/kickstart(862): EVENT: Successfully wrote to disk
    10-15 16:43:02.168: E/kickstart(862): Received file "m9kefs2"
    10-15 16:43:02.218: E/kickstart(862): Sync finish Received file "m9kefs2"
    10-15 16:43:02.218: E/kickstart(862): 786432 bytes transferred in 0.113s (6.65 MBps)
    10-15 16:43:02.218: E/kickstart(862): EVENT: num_debug_entries not >=0
    10-15 16:43:02.218: E/kickstart(862): Successfully downloaded files from target
    10-15 16:43:02.218: E/kickstart(862): EVENT: SENDING --> SAHARA_RESET
    10-15 16:43:02.218: E/kickstart(862): Total bytes received so far: 786556
    10-15 16:43:02.218: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_RESET_RESP
    10-15 16:43:02.218: E/kickstart(862): Sahara protocol completed
    10-15 16:43:02.218: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_HELLO
    10-15 16:43:17.563: W/SystemClock(698): time going backwards: prev 16722067121029(ioctl) vs now 16722066968441(ioctl), tid=764
    10-15 16:43:34.610: D/dalvikvm(698): GC_CONCURRENT freed 5359K, 41% free 23772K/39664K, paused 9ms+9ms, total 113ms
    10-15 16:43:36.452: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:3.900000 hotplug_avg_load_dw: 100
    10-15 16:43:36.452: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:43:36.452: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:43:36.452: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:194.000000
    10-15 16:44:09.965: D/dalvikvm(698): GC_CONCURRENT freed 5369K, 41% free 23779K/39664K, paused 8ms+8ms, total 103ms
    10-15 16:44:09.965: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 30ms
    10-15 16:44:10.605: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.800000 hotplug_avg_load_dw: 133
    10-15 16:44:10.605: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:244.000000
    10-15 16:44:12.707: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:4.100000 hotplug_avg_load_dw: 116
    10-15 16:44:12.707: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:12.707: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:12.707: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:97.000000
    10-15 16:44:14.008: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:1.700000 hotplug_avg_load_dw: 140
    10-15 16:44:14.008: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:240.000000
    10-15 16:44:14.759: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:4.900000 hotplug_avg_load_dw: 132
    10-15 16:44:14.759: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:14.759: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:14.759: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:97.000000
    10-15 16:44:15.360: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.300000 hotplug_avg_load_dw: 139
    10-15 16:44:15.360: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:243.000000
    10-15 16:44:15.560: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:3.900000 hotplug_avg_load_dw: 133
    10-15 16:44:15.560: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:15.560: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:15.560: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:95.000000
    10-15 16:44:16.361: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.500000 hotplug_avg_load_dw: 132
    10-15 16:44:16.361: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:242.000000
    10-15 16:44:16.661: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:3.700000 hotplug_avg_load_dw: 127
    10-15 16:44:16.661: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:16.661: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:16.661: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:97.000000
    10-15 16:44:20.605: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:1.700000 hotplug_avg_load_dw: 122
    10-15 16:44:20.605: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:244.000000
    10-15 16:44:20.615: W/ProcessStats(698): Skipping unknown process pid 19038
    10-15 16:44:20.615: W/ProcessStats(698): Skipping unknown process pid 19041

    Garbage collector entries in Logcat :

    10-15 16:40:06.087: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 1ms
    10-15 16:40:06.207: D/dalvikvm(698): GC_EXPLICIT freed 4120K, 39% free 24216K/39664K,   paused 7ms+9ms, total 117ms
    10-15 16:40:25.746: D/dalvikvm(698): GC_CONCURRENT freed 5829K, 41% free 23778K/39664K, paused 10ms+24ms, total 165ms
    10-15 16:40:44.684: D/dalvikvm(698): GC_CONCURRENT freed 5302K, 41% free 23774K/39664K, paused 6ms+9ms, total 107ms
    10-15 16:41:14.383: D/dalvikvm(698): GC_CONCURRENT freed 5371K, 41% free 23768K/39664K, paused 7ms+8ms, total 146ms
    10-15 16:41:49.598: D/dalvikvm(698): GC_CONCURRENT freed 5339K, 41% free 23775K/39664K, paused 10ms+7ms, total 134ms
    10-15 16:42:24.021: D/dalvikvm(698): GC_CONCURRENT freed 5277K, 41% free 23770K/39664K, paused 8ms+11ms, total 106ms
    10-15 16:42:59.476: D/dalvikvm(698): GC_CONCURRENT freed 5345K, 41% free 23770K/39664K, paused 6ms+13ms, total 168ms
    10-15 16:43:34.610: D/dalvikvm(698): GC_CONCURRENT freed 5359K, 41% free 23772K/39664K, paused 9ms+9ms, total 113ms
    10-15 16:44:09.965: D/dalvikvm(698): GC_CONCURRENT freed 5369K, 41% free 23779K/39664K, paused 8ms+8ms, total 103ms
    10-15 16:44:09.965: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 30ms
    10-15 16:44:24.389: D/dalvikvm(698): GC_EXPLICIT freed 3618K, 41% free 23768K/39664K, paused 12ms+11ms, total 123ms
  • MediaCodec hardware decoder much slower with different server configuration ?

    19 octobre 2013, par mathieujofis

    I've been using the Android MediaCodec in order to (hardware) decode H.264 frames on my Galaxy S4 coming from a Live 555 RTSP live (real-time) stream. After changing my Live 555 server configuration from using ffmpeg (with x264) to encode frames, to using strictly x264 to encode frames, the time to decode frames with MediaCodec takes much longer. Basically, MediaCodec can't keep up with the stream, and displays the video in slow motion, getting slower and slower as time goes on. Going back to ffmpeg isn't a solution for me, because I need the ability to encode into discrete NAL units, rather than a whole frame like ffmpeg does.

    I was wondering if this was either : A) An issue with the way my server is encoding NAL units, or B) An issue with my Android client, specifically the way it is receiving and decoding NAL units.

    My encoding configuration with x264 is :

    x264_param_default_preset(&amp;param,"ultrafast", "zerolatency:fastdecode");
    param.i_threads = 1;
    param.i_bframe = 1;
    param.i_width = image_width;
    param.i_height = image_height;
    param.i_fps_num = 60;
    param.i_fps_den = 1;
    param.i_keyint_max = 10;

    param.rc.i_rc_method = X264_RC_ABR;
    param.rc.i.bitrate = 6000;
    param.i_sps_id = 7;
    param.b_repeat_headers = 1;
    param.b_annexb = 0;

    My Android MediaCodec client is set up as follows :

    I receive each individual NAL unit on a separate Live 555 RTSP client thread. Each NAL is put into a queue along with its size and presentation time. A separate decoder thread grabs NALs from this queue, and if there are none available, waits until there are.

    Some notes :

    What I generally see happen is the queue starts filling up with NALs, instead of staying close to empty. So, I know that the decoder thread is not working fast enough. I don't think this is an inherent problem with decoding on an Android phone (for example, processing limitations) because it does the same thing for very low bitrates— also again, it DID work when I was using ffmpeg to encode. If I omit certain NAL units, the decoder can start to keep up. Since I'm using Cyanogenmod 10.1, bumping up the minimum CPU frequency helps, too.

    Edit :

    Here is a log of the Android client, as well as a log highlighting the garbage collector specifically—

    Entire Logcat :

    10-15 16:40:03.955: D/DecodeActivity(18859): INFO_OUTPUT_BUFFERS_CHANGED
    10-15 16:40:03.995: E/OMX-VDEC-1080P(288): Sync frame received
    10-15 16:40:03.995: E/OMX-VDEC-1080P(288):  No color conversion required
    10-15 16:40:03.995: E/OMX-VDEC-1080P(288): Get_parameter: OMX_IndexParamPortDefinition: nPortIndex (1), nFrameWidth (1280), nFrameHeight (720), nStride (1280), nSliceHeight (736), nBitrate (-1073741824), xFramerate (0x1e), nBufferSize (1433600), nBufferCountMin (4), nBufferCountActual (8), bBuffersContiguous (1918394328), nBufferAlignment (1075643347), bEnabled (1), bPopulated (1), eCompressionFormat (0x0), eColorFormat (0x7fa30c03)
    10-15 16:40:03.995: D/DecodeActivity(18859): New format {height=720, what=1869968451, color-format=2141391875, slice-height=736, crop-left=0, width=1280, crop-bottom=719, crop-top=0, mime=video/raw, stride=1280, crop-right=1279}
    10-15 16:40:04.005: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4966) fps(201.369308)
    10-15 16:40:04.015: W/IInputConnectionWrapper(1069): showStatusIcon on inactive InputConnection
    10-15 16:40:04.025: I/ActivityManager(698): Displayed com.mathieu.alloclient.javadecoder/.MainActivity: +617ms
    10-15 16:40:04.025: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4766) fps(209.819550)
    10-15 16:40:04.125: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4733) fps(211.282486)
    10-15 16:40:04.445: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4711) fps(212.269150)
    10-15 16:40:04.495: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4700) fps(212.765961)
    10-15 16:40:05.676: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4688) fps(213.310577)
    10-15 16:40:06.087: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 1ms
    10-15 16:40:06.207: D/dalvikvm(698): GC_EXPLICIT freed 4120K, 39% free 24216K/39664K, paused 7ms+9ms, total 117ms
    10-15 16:40:06.537: D/ALSADevice(288): standby: handle 0x40024450 h 0x0
    10-15 16:40:06.577: D/alsa_ucm(288): snd_use_case_set(): uc_mgr 0x400fbfb0 identifier _verb value Inactive
    10-15 16:40:06.577: D/alsa_ucm(288): Set mixer controls for HiFi Lowlatency enable 0
    10-15 16:40:06.577: D/alsa_ucm(288): Setting mixer control: SLIMBUS_0_RX Audio Mixer MultiMedia5, value: 0
    10-15 16:40:06.577: D/alsa_ucm(288): snd_use_case_set(): uc_mgr 0x400fbfb0 identifier _disdev value Line
    10-15 16:40:06.577: D/alsa_ucm(288): disdev: device Line not enabled, no need to disable
    10-15 16:40:06.577: D/alsa_ucm(288): snd_use_case_set(): uc_mgr 0x400fbfb0 identifier _disdev value Speaker
    10-15 16:40:06.577: D/alsa_ucm(288): Set mixer controls for Speaker enable 0
    10-15 16:40:06.577: D/alsa_ucm(288): Setting mixer control: RX5 MIX1 INP1, value: ZERO
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: RX5 MIX1 INP2, value: ZERO
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: LINEOUT2 Volume, value: 0
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: LINEOUT4 Volume, value: 0
    10-15 16:40:06.587: D/alsa_ucm(288): Setting mixer control: RX5 Digital Volume, value: 0
    10-15 16:40:06.587: D/AudioUsbALSA(288): exitPlaybackThread, mproxypfdPlayback: -1
    10-15 16:40:06.587: D/AudioUsbALSA(288): closeDevice handle 0x0
    10-15 16:40:06.587: D/AudioUsbALSA(288): closeDevice handle 0x0
    10-15 16:40:17.638: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4677) fps(213.812271)
    10-15 16:40:17.698: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4644) fps(215.331604)
    10-15 16:40:20.681: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4633) fps(215.842865)
    10-15 16:40:21.111: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4611) fps(216.872696)
    10-15 16:40:25.746: D/dalvikvm(698): GC_CONCURRENT freed 5829K, 41% free 23778K/39664K, paused 10ms+24ms, total 165ms
    10-15 16:40:28.448: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.800000 hotplug_avg_load_dw: 74
    10-15 16:40:28.448: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:243.000000
    10-15 16:40:30.841: W/SystemClock(698): time going backwards: prev 16555345563411(ioctl) vs now 16555345441341(ioctl), tid=764
    10-15 16:40:44.684: D/dalvikvm(698): GC_CONCURRENT freed 5302K, 41% free 23774K/39664K, paused 6ms+9ms, total 107ms
    10-15 16:40:57.467: E/OMX-VDEC-1080P(288): set_frame_rate: frm_int(4577) fps(218.483719)
    10-15 16:41:14.383: D/dalvikvm(698): GC_CONCURRENT freed 5371K, 41% free 23768K/39664K, paused 7ms+8ms, total 146ms
    10-15 16:41:14.403: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:4.500000 hotplug_avg_load_dw: 89
    10-15 16:41:14.403: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:41:14.403: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:41:14.403: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:922.000000
    10-15 16:41:27.466: E/kickstart(862): Total bytes received so far: 48
    10-15 16:41:27.466: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_HELLO
    10-15 16:41:27.466: E/kickstart(862): EVENT: SENDING --> SAHARA_HELLO_RESPONSE
    10-15 16:41:27.466: E/kickstart(862): EVENT: sahara_mode                         = 2
    10-15 16:41:27.466: E/kickstart(862): EVENT: m_comm->sahara_hello_packet_rx.mode = 2
    10-15 16:41:27.466: E/kickstart(862): EVENT: helloRx.mode                        = 2
    10-15 16:41:27.466: E/kickstart(862): Total bytes received so far: 64
    10-15 16:41:27.466: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_MEMORY_DEBUG
    10-15 16:41:27.466: E/kickstart(862): Total bytes received so far: 116
    10-15 16:41:27.466: E/kickstart(862): EVENT: 0x46980000, len=000C0000, "m9kefs1", ""
    10-15 16:41:27.466: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_MEMORY_REGION
    10-15 16:41:27.466: E/kickstart(862): EVENT: Saving "/dev/block/platform/msm_sdcc.1/by-name/m9kefs1"
    10-15 16:41:27.526: E/kickstart(862): Total bytes received so far: 786548
    10-15 16:41:27.526: E/kickstart(862): EVENT: Received: 786432 bytes
    10-15 16:41:27.526: E/kickstart(862): EVENT: Writing to disk
    10-15 16:41:27.526: E/kickstart(862): EVENT: Successfully wrote to disk
    10-15 16:41:27.526: E/kickstart(862): Received file "m9kefs1"
    10-15 16:41:27.576: E/kickstart(862): Sync finish Received file "m9kefs1"
    10-15 16:41:27.576: E/kickstart(862): 786432 bytes transferred in 0.106s (7.10 MBps)
    10-15 16:41:27.576: E/kickstart(862): EVENT: num_debug_entries not >=0
    10-15 16:41:27.576: E/kickstart(862): Successfully downloaded files from target
    10-15 16:41:27.576: E/kickstart(862): EVENT: SENDING --> SAHARA_RESET
    10-15 16:41:27.576: E/kickstart(862): Total bytes received so far: 786556
    10-15 16:41:27.576: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_RESET_RESP
    10-15 16:41:27.576: E/kickstart(862): Sahara protocol completed
    10-15 16:41:27.576: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_HELLO
    10-15 16:41:27.746: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.100000 hotplug_avg_load_dw: 79
    10-15 16:41:27.746: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:244.000000
    10-15 16:41:49.598: D/dalvikvm(698): GC_CONCURRENT freed 5339K, 41% free 23775K/39664K, paused 10ms+7ms, total 134ms
    10-15 16:42:17.225: I/ActivityManager(698): Start proc com.cyanogenmod.lockclock for service com.cyanogenmod.lockclock/.weather.WeatherUpdateService: pid=18954 uid=10028 gids={50028, 3003, 1028}
    10-15 16:42:17.865: D/WeatherXmlParser(18954): Weather updated: WeatherInfo for Santa Barbara@ Tue Oct 15 16:42:17 PDT 2013: Fair(34), temperature 29°C, low 11°, high 27°, humidity 14%, wind 11km/h at W
    10-15 16:42:17.945: I/ActivityManager(698): No longer want com.google.android.apps.uploader (pid 13565): empty #17
    10-15 16:42:24.021: D/dalvikvm(698): GC_CONCURRENT freed 5277K, 41% free 23770K/39664K, paused 8ms+11ms, total 106ms
    10-15 16:42:35.983: W/ThrottleService(698): unable to find stats for iface rmnet0
    10-15 16:42:59.476: D/dalvikvm(698): GC_CONCURRENT freed 5345K, 41% free 23770K/39664K, paused 6ms+13ms, total 168ms
    10-15 16:43:02.098: E/kickstart(862): Total bytes received so far: 48
    10-15 16:43:02.098: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_HELLO
    10-15 16:43:02.098: E/kickstart(862): EVENT: SENDING --> SAHARA_HELLO_RESPONSE
    10-15 16:43:02.098: E/kickstart(862): EVENT: sahara_mode                         = 2
    10-15 16:43:02.098: E/kickstart(862): EVENT: m_comm->sahara_hello_packet_rx.mode = 2
    10-15 16:43:02.098: E/kickstart(862): EVENT: helloRx.mode                        = 2
    10-15 16:43:02.098: E/kickstart(862): Total bytes received so far: 64
    10-15 16:43:02.098: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_MEMORY_DEBUG
    10-15 16:43:02.108: E/kickstart(862): Total bytes received so far: 116
    10-15 16:43:02.108: E/kickstart(862): EVENT: 0x46980000, len=000C0000, "m9kefs2", ""
    10-15 16:43:02.108: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_MEMORY_REGION
    10-15 16:43:02.108: E/kickstart(862): EVENT: Saving "/dev/block/platform/msm_sdcc.1/by-name/m9kefs2"
    10-15 16:43:02.158: E/kickstart(862): Total bytes received so far: 786548
    10-15 16:43:02.158: E/kickstart(862): EVENT: Received: 786432 bytes
    10-15 16:43:02.158: E/kickstart(862): EVENT: Writing to disk
    10-15 16:43:02.168: E/kickstart(862): EVENT: Successfully wrote to disk
    10-15 16:43:02.168: E/kickstart(862): Received file "m9kefs2"
    10-15 16:43:02.218: E/kickstart(862): Sync finish Received file "m9kefs2"
    10-15 16:43:02.218: E/kickstart(862): 786432 bytes transferred in 0.113s (6.65 MBps)
    10-15 16:43:02.218: E/kickstart(862): EVENT: num_debug_entries not >=0
    10-15 16:43:02.218: E/kickstart(862): Successfully downloaded files from target
    10-15 16:43:02.218: E/kickstart(862): EVENT: SENDING --> SAHARA_RESET
    10-15 16:43:02.218: E/kickstart(862): Total bytes received so far: 786556
    10-15 16:43:02.218: E/kickstart(862): EVENT: RECEIVED &lt;-- SAHARA_RESET_RESP
    10-15 16:43:02.218: E/kickstart(862): Sahara protocol completed
    10-15 16:43:02.218: E/kickstart(862): EVENT: STATE &lt;-- SAHARA_WAIT_HELLO
    10-15 16:43:17.563: W/SystemClock(698): time going backwards: prev 16722067121029(ioctl) vs now 16722066968441(ioctl), tid=764
    10-15 16:43:34.610: D/dalvikvm(698): GC_CONCURRENT freed 5359K, 41% free 23772K/39664K, paused 9ms+9ms, total 113ms
    10-15 16:43:36.452: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:3.900000 hotplug_avg_load_dw: 100
    10-15 16:43:36.452: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:43:36.452: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:43:36.452: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:194.000000
    10-15 16:44:09.965: D/dalvikvm(698): GC_CONCURRENT freed 5369K, 41% free 23779K/39664K, paused 8ms+8ms, total 103ms
    10-15 16:44:09.965: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 30ms
    10-15 16:44:10.605: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.800000 hotplug_avg_load_dw: 133
    10-15 16:44:10.605: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:244.000000
    10-15 16:44:12.707: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:4.100000 hotplug_avg_load_dw: 116
    10-15 16:44:12.707: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:12.707: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:12.707: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:97.000000
    10-15 16:44:14.008: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:1.700000 hotplug_avg_load_dw: 140
    10-15 16:44:14.008: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:240.000000
    10-15 16:44:14.759: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:4.900000 hotplug_avg_load_dw: 132
    10-15 16:44:14.759: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:14.759: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:14.759: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:97.000000
    10-15 16:44:15.360: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.300000 hotplug_avg_load_dw: 139
    10-15 16:44:15.360: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:243.000000
    10-15 16:44:15.560: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:3.900000 hotplug_avg_load_dw: 133
    10-15 16:44:15.560: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:15.560: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:15.560: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:95.000000
    10-15 16:44:16.361: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:2.500000 hotplug_avg_load_dw: 132
    10-15 16:44:16.361: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:242.000000
    10-15 16:44:16.661: E/MP-Decision(1385): num online cores: 3 reqd : 4 available : 4 rq_depth:3.700000 hotplug_avg_load_dw: 127
    10-15 16:44:16.661: E/MP-Decision(1385): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:0.000000
    10-15 16:44:16.661: E/MP-Decision(1385): UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 total_time_up:0.000000
    10-15 16:44:16.661: E/MP-Decision(1385): UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 total_time_up:97.000000
    10-15 16:44:20.605: E/MP-Decision(1385): num online cores: 4 reqd : 3 available : 4 rq_depth:1.700000 hotplug_avg_load_dw: 122
    10-15 16:44:20.605: E/MP-Decision(1385): DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 total_time_down:244.000000
    10-15 16:44:20.615: W/ProcessStats(698): Skipping unknown process pid 19038
    10-15 16:44:20.615: W/ProcessStats(698): Skipping unknown process pid 19041

    Garbage collector entries in Logcat :

    10-15 16:40:06.087: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 1ms
    10-15 16:40:06.207: D/dalvikvm(698): GC_EXPLICIT freed 4120K, 39% free 24216K/39664K,   paused 7ms+9ms, total 117ms
    10-15 16:40:25.746: D/dalvikvm(698): GC_CONCURRENT freed 5829K, 41% free 23778K/39664K, paused 10ms+24ms, total 165ms
    10-15 16:40:44.684: D/dalvikvm(698): GC_CONCURRENT freed 5302K, 41% free 23774K/39664K, paused 6ms+9ms, total 107ms
    10-15 16:41:14.383: D/dalvikvm(698): GC_CONCURRENT freed 5371K, 41% free 23768K/39664K, paused 7ms+8ms, total 146ms
    10-15 16:41:49.598: D/dalvikvm(698): GC_CONCURRENT freed 5339K, 41% free 23775K/39664K, paused 10ms+7ms, total 134ms
    10-15 16:42:24.021: D/dalvikvm(698): GC_CONCURRENT freed 5277K, 41% free 23770K/39664K, paused 8ms+11ms, total 106ms
    10-15 16:42:59.476: D/dalvikvm(698): GC_CONCURRENT freed 5345K, 41% free 23770K/39664K, paused 6ms+13ms, total 168ms
    10-15 16:43:34.610: D/dalvikvm(698): GC_CONCURRENT freed 5359K, 41% free 23772K/39664K, paused 9ms+9ms, total 113ms
    10-15 16:44:09.965: D/dalvikvm(698): GC_CONCURRENT freed 5369K, 41% free 23779K/39664K, paused 8ms+8ms, total 103ms
    10-15 16:44:09.965: D/dalvikvm(698): WAIT_FOR_CONCURRENT_GC blocked 30ms
    10-15 16:44:24.389: D/dalvikvm(698): GC_EXPLICIT freed 3618K, 41% free 23768K/39664K, paused 12ms+11ms, total 123ms