Recherche avancée

Médias (1)

Mot : - Tags -/wave

Autres articles (80)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

Sur d’autres sites (12342)

  • Play video using mse (media source extension) in google chrome

    23 août 2019, par liyuqihxc

    I’m working on a project that convert rtsp stream (ffmpeg) and play it on the web page (signalr + mse).

    So far it works pretty much as I expected on the latest version of edge and firefox, but not chrome.

    here’s the code

    public class WebmMediaStreamContext
    {
       private Process _ffProcess;
       private readonly string _cmd;
       private byte[] _initSegment;
       private Task _readMediaStreamTask;
       private CancellationTokenSource _cancellationTokenSource;

       private const string _CmdTemplate = "-i {0} -c:v libvpx -tile-columns 4 -frame-parallel 1 -keyint_min 90 -g 90 -f webm -dash 1 pipe:";

       public static readonly byte[] ClusterStart = { 0x1F, 0x43, 0xB6, 0x75, 0x01, 0x00, 0x00, 0x00 };

       public event EventHandler<clusterreadyeventargs> ClusterReadyEvent;

       public WebmMediaStreamContext(string rtspFeed)
       {
           _cmd = string.Format(_CmdTemplate, rtspFeed);
       }

       public async Task StartConverting()
       {
           if (_ffProcess != null)
               throw new InvalidOperationException();

           _ffProcess = new Process();
           _ffProcess.StartInfo = new ProcessStartInfo
           {
               FileName = "ffmpeg/ffmpeg.exe",
               Arguments = _cmd,
               UseShellExecute = false,
               CreateNoWindow = true,
               RedirectStandardOutput = true
           };
           _ffProcess.Start();

           _initSegment = await ParseInitSegmentAndStartReadMediaStream();
       }

       public byte[] GetInitSegment()
       {
           return _initSegment;
       }

       // Find the first cluster, and everything before it is the InitSegment
       private async Task ParseInitSegmentAndStartReadMediaStream()
       {
           Memory<byte> buffer = new byte[10 * 1024];
           int length = 0;
           while (length != buffer.Length)
           {
               length += await _ffProcess.StandardOutput.BaseStream.ReadAsync(buffer.Slice(length));
               int cluster = buffer.Span.IndexOf(ClusterStart);
               if (cluster >= 0)
               {
                   _cancellationTokenSource = new CancellationTokenSource();
                   _readMediaStreamTask = new Task(() => ReadMediaStreamProc(buffer.Slice(cluster, length - cluster).ToArray(), _cancellationTokenSource.Token), _cancellationTokenSource.Token, TaskCreationOptions.LongRunning);
                   _readMediaStreamTask.Start();
                   return buffer.Slice(0, cluster).ToArray();
               }
           }

           throw new InvalidOperationException();
       }

       private void ReadMoreBytes(Span<byte> buffer)
       {
           int size = buffer.Length;
           while (size > 0)
           {
               int len = _ffProcess.StandardOutput.BaseStream.Read(buffer.Slice(buffer.Length - size));
               size -= len;
           }
       }

       // Parse every single cluster and fire ClusterReadyEvent
       private void ReadMediaStreamProc(byte[] bytesRead, CancellationToken cancel)
       {
           Span<byte> buffer = new byte[5 * 1024 * 1024];
           bytesRead.CopyTo(buffer);
           int bufferEmptyIndex = bytesRead.Length;

           do
           {
               if (bufferEmptyIndex &lt; ClusterStart.Length + 4)
               {
                   ReadMoreBytes(buffer.Slice(bufferEmptyIndex, 1024));
                   bufferEmptyIndex += 1024;
               }

               int clusterDataSize = BitConverter.ToInt32(
                   buffer.Slice(ClusterStart.Length, 4)
                   .ToArray()
                   .Reverse()
                   .ToArray()
               );
               int clusterSize = ClusterStart.Length + 4 + clusterDataSize;
               if (clusterSize > buffer.Length)
               {
                   byte[] newBuffer = new byte[clusterSize];
                   buffer.Slice(0, bufferEmptyIndex).CopyTo(newBuffer);
                   buffer = newBuffer;
               }

               if (bufferEmptyIndex &lt; clusterSize)
               {
                   ReadMoreBytes(buffer.Slice(bufferEmptyIndex, clusterSize - bufferEmptyIndex));
                   bufferEmptyIndex = clusterSize;
               }

               ClusterReadyEvent?.Invoke(this, new ClusterReadyEventArgs(buffer.Slice(0, bufferEmptyIndex).ToArray()));

               bufferEmptyIndex = 0;
           } while (!cancel.IsCancellationRequested);
       }
    }
    </byte></byte></byte></clusterreadyeventargs>

    I use ffmpeg to convert the rtsp stream to vp8 WEBM byte stream and parse it to "Init Segment" (ebml head、info、tracks...) and "Media Segment" (cluster), then send it to browser via signalR

    $(function () {

       var mediaSource = new MediaSource();
       var mimeCodec = 'video/webm; codecs="vp8"';

       var video = document.getElementById('video');

       mediaSource.addEventListener('sourceopen', callback, false);
       function callback(e) {
           var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
           var queue = [];

           sourceBuffer.addEventListener('updateend', function () {
               if (queue.length === 0) {
                   return;
               }

               var base64 = queue[0];
               if (base64.length === 0) {
                   mediaSource.endOfStream();
                   queue.shift();
                   return;
               } else {
                   var buffer = new Uint8Array(atob(base64).split("").map(function (c) {
                       return c.charCodeAt(0);
                   }));
                   sourceBuffer.appendBuffer(buffer);
                   queue.shift();
               }
           }, false);

           var connection = new signalR.HubConnectionBuilder()
               .withUrl("/signalr-video")
               .configureLogging(signalR.LogLevel.Information)
               .build();
           connection.start().then(function () {
               connection.stream("InitVideoReceive")
                   .subscribe({
                       next: function(item) {
                           if (queue.length === 0 &amp;&amp; !!!sourceBuffer.updating) {
                               var buffer = new Uint8Array(atob(item).split("").map(function (c) {
                                   return c.charCodeAt(0);
                               }));
                               sourceBuffer.appendBuffer(buffer);
                               console.log(blockindex++ + " : " + buffer.byteLength);
                           } else {
                               queue.push(item);
                           }
                       },
                       complete: function () {
                           queue.push('');
                       },
                       error: function (err) {
                           console.error(err);
                       }
                   });
           });
       }
       video.src = window.URL.createObjectURL(mediaSource);
    })

    chrome just play the video for 3 5 seconds and then stop for buffering, even though there are plenty of cluster transfered and inserted into SourceBuffer.

    here’s the information in chrome ://media-internals/

    Player Properties :

    render_id: 217
    player_id: 1
    origin_url: http://localhost:52531/
    frame_url: http://localhost:52531/
    frame_title: Home Page
    url: blob:http://localhost:52531/dcb25d89-9830-40a5-ba88-33c13b5c03eb
    info: Selected FFmpegVideoDecoder for video decoding, config: codec: vp8 format: 1 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encryption scheme: Unencrypted rotation: 0°
    pipeline_state: kSuspended
    found_video_stream: true
    video_codec_name: vp8
    video_dds: false
    video_decoder: FFmpegVideoDecoder
    duration: unknown
    height: 720
    width: 1280
    video_buffering_state: BUFFERING_HAVE_NOTHING
    for_suspended_start: false
    pipeline_buffering_state: BUFFERING_HAVE_NOTHING
    event: PAUSE

    Log

    Timestamp       Property            Value
    00:00:00 00     origin_url          http://localhost:52531/
    00:00:00 00     frame_url           http://localhost:52531/
    00:00:00 00     frame_title         Home Page
    00:00:00 00     url                 blob:http://localhost:52531/dcb25d89-9830-40a5-ba88-33c13b5c03eb
    00:00:00 00     info                ChunkDemuxer: buffering by DTS
    00:00:00 35     pipeline_state      kStarting
    00:00:15 213    found_video_stream  true
    00:00:15 213    video_codec_name    vp8
    00:00:15 216    video_dds           false
    00:00:15 216    video_decoder       FFmpegVideoDecoder
    00:00:15 216    info                Selected FFmpegVideoDecoder for video decoding, config: codec: vp8 format: 1 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encryption scheme: Unencrypted rotation: 0°
    00:00:15 216    pipeline_state      kPlaying
    00:00:15 213    duration            unknown
    00:00:16 661    height              720
    00:00:16 661    width               1280
    00:00:16 665    video_buffering_state       BUFFERING_HAVE_ENOUGH
    00:00:16 665    for_suspended_start         false
    00:00:16 665    pipeline_buffering_state    BUFFERING_HAVE_ENOUGH
    00:00:16 667    pipeline_state      kSuspending
    00:00:16 670    pipeline_state      kSuspended
    00:00:52 759    info                Effective playback rate changed from 0 to 1
    00:00:52 759    event               PLAY
    00:00:52 759    pipeline_state      kResuming
    00:00:52 760    video_dds           false
    00:00:52 760    video_decoder       FFmpegVideoDecoder
    00:00:52 760    info                Selected FFmpegVideoDecoder for video decoding, config: codec: vp8 format: 1 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encryption scheme: Unencrypted rotation: 0°
    00:00:52 760    pipeline_state      kPlaying
    00:00:52 793    height              720
    00:00:52 793    width               1280
    00:00:52 798    video_buffering_state       BUFFERING_HAVE_ENOUGH
    00:00:52 798    for_suspended_start         false
    00:00:52 798    pipeline_buffering_state    BUFFERING_HAVE_ENOUGH
    00:00:56 278    video_buffering_state       BUFFERING_HAVE_NOTHING
    00:00:56 295    for_suspended_start         false
    00:00:56 295    pipeline_buffering_state    BUFFERING_HAVE_NOTHING
    00:01:20 717    event               PAUSE
    00:01:33 538    event               PLAY
    00:01:35 94     event               PAUSE
    00:01:55 561    pipeline_state      kSuspending
    00:01:55 563    pipeline_state      kSuspended

    Can someone tell me what’s wrong with my code, or dose chrome require some magic configuration to work ?

    Thanks 

    Please excuse my english :)

  • FFmpeg : How to convert vertical/horizontal video (any size) with black sides, to 1080x1350 vertical video with blurred background sides/bottom-top

    12 octobre 2023, par devweb

    i've been trying to make a ffmpeg 'filter_complex' code to make what i need but i can't, i've used some codes here on stack but non works for what i need, each is like for a different size/dimension.&#xA;I'm trying to make videos like Instagram posts (tallest allowed) : 1080 x 1350

    &#xA;

    Bassically, horizontal videos with blurred sides or bottom-top.

    &#xA;

    Any help will be awesome, thanks !

    &#xA;

    This is the principal which i tried

    &#xA;

    Something like this :

    &#xA;

    Example 1&#xA;Example 2

    &#xA;

    Here some codes i tried to worked with and changing stuff :&#xA;filter_complex=&#x27;[0:v]scale=1080*2:1350*2,boxblur=luma_radius=min(h\\,w)/20:luma_power=1:chroma_radius=min(cw\\,ch)/20:chroma_power=1[bg];[0:v]scale=-1:1080[ov];[bg][ov]overlay=(W-w)/2:(H-h)/2,crop=w=1080:h=1350&#x27;

    &#xA;

    filter_complex=&#x27;[0:v]scale=ih*5/4:-1,crop=h=iw*4/5,gblur=sigma=20[blurred];[blurred][0:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2&#x27;

    &#xA;

    filter_complex=&#x27;[0:v]scale=1080:1350,setsar=1,gblur=sigma=20[blurred];[blurred][0:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2&#x27;

    &#xA;

  • Android FFmpeg Video Player

    11 mars 2013, par Dilip

    I want to play video using FFmpeg for this have used some code,But it open file but not drawing frames thowing Unhandled page fault exception.

    Java Code :

    public class MainActivity extends Activity {
       private static native void openFile();

       private static native void drawFrame(Bitmap bitmap);

       private static native void drawFrameAt(Bitmap bitmap, int secs);

       private Bitmap mBitmap;
       private int mSecs = 0;

       static {
           System.loadLibrary("ffmpegutils");
       }

       /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           // setContentView(new VideoView(this));
           setContentView(R.layout.main);

           mBitmap = Bitmap.createBitmap(320, 240, Bitmap.Config.ARGB_8888);
           openFile();

           Button btn = (Button) findViewById(R.id.frame_adv);
           btn.setOnClickListener(new OnClickListener() {
               public void onClick(View v) {
                   try {
                       drawFrame(mBitmap);
                       ImageView i = (ImageView) findViewById(R.id.frame);
                       i.setImageBitmap(mBitmap);
                   } catch (Exception e) {
                       e.printStackTrace();
                   }
               }
           });
    }}

    Jni code :

    #include
    #include
    #include
    #include <android></android>log.h>
    #include <android></android>bitmap.h>

    #include <libavcodec></libavcodec>avcodec.h>
    #include <libavformat></libavformat>avformat.h>
    #include <libswscale></libswscale>swscale.h>

    #define  LOG_TAG    "FFMPEGSample"
    #define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
    #define  LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)

    /* Cheat to keep things simple and just use some globals. */
    AVFormatContext *pFormatCtx;
    AVCodecContext *pCodecCtx;
    AVFrame *pFrame;
    AVFrame *pFrameRGB;
    int videoStream;

    /*
    * Write a frame worth of video (in pFrame) into the Android bitmap
    * described by info using the raw pixel buffer.  It&#39;s a very inefficient
    * draw routine, but it&#39;s easy to read. Relies on the format of the
    * bitmap being 8bits per color component plus an 8bit alpha channel.
    */

    static void fill_bitmap(AndroidBitmapInfo* info, void *pixels, AVFrame *pFrame) {
       uint8_t *frameLine;

       int yy;
       for (yy = 0; yy &lt; info->height; yy++) {
           uint8_t* line = (uint8_t*) pixels;
           frameLine = (uint8_t *) pFrame->data[0] + (yy * pFrame->linesize[0]);

           int xx;
           for (xx = 0; xx &lt; info->width; xx++) {
               int out_offset = xx * 4;
               int in_offset = xx * 3;
               line[out_offset] = frameLine[in_offset];
               line[out_offset + 1] = frameLine[in_offset + 1];
               line[out_offset + 2] = frameLine[in_offset + 2];
               line[out_offset + 3] = 0;
           }
           pixels = (char*) pixels + info->stride;
       }
    }

    void Java_com_churnlabs_ffmpegsample_MainActivity_openFile(JNIEnv * env,
           jobject this) {
       int ret;
       int err;
       int i;
       AVCodec *pCodec;
       uint8_t *buffer;
       int numBytes;

       av_register_all();
       LOGE("Registered formats***********************************");
       err = av_open_input_file(&amp;pFormatCtx, "file:///mnt/sdcard/android.3gp",
               NULL, 0, NULL);
       LOGE("Called open file***************************************************");
       if (err != 0) {
           LOGE(
                   "Couldn&#39;t open file****************************************************");
           return;
       }
       LOGE(
               "Opened file***********************************************************");

       if (av_find_stream_info(pFormatCtx) &lt; 0) {
           LOGE(
                   "Unable to get stream info*****************************************");
           return;
       }

       videoStream = -1;
       for (i = 0; i &lt; pFormatCtx->nb_streams; i++) {
           if (pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) {
               videoStream = i;
               break;
           }
       }
       if (videoStream == -1) {
           LOGE("Unable to find video stream");
           return;
       }

       LOGI("Video stream is [%d]", videoStream);

       pCodecCtx = pFormatCtx->streams[videoStream]->codec;

       pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
       if (pCodec == NULL) {
           LOGE("Unsupported codec**********************************************");
           return;
       }

       if (avcodec_open(pCodecCtx, pCodec) &lt; 0) {
           LOGE("Unable to open codec***************************************");
           return;
       }

       pFrame = avcodec_alloc_frame();
       pFrameRGB = avcodec_alloc_frame();
       LOGI("Video size is [%d x %d]", pCodecCtx->width, pCodecCtx->height);

       numBytes = avpicture_get_size(PIX_FMT_RGB24, pCodecCtx->width,
               pCodecCtx->height);
       buffer = (uint8_t *) av_malloc(numBytes * sizeof(uint8_t));

       avpicture_fill((AVPicture *) pFrameRGB, buffer, PIX_FMT_RGB24,
               pCodecCtx->width, pCodecCtx->height);
    }

    void Java_com_churnlabs_ffmpegsample_MainActivity_drawFrame(JNIEnv * env,
           jobject this, jstring bitmap) {
       AndroidBitmapInfo info;
       void* pixels;
       int ret;

       int err;
       int i;
       int frameFinished = 0;
       AVPacket packet;
       static struct SwsContext *img_convert_ctx;
       int64_t seek_target;

       if ((ret = AndroidBitmap_getInfo(env, bitmap, &amp;info)) &lt; 0) {
           LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret);
           return;
       }
       LOGE(
               "Checked on the bitmap*************************************************");

       if ((ret = AndroidBitmap_lockPixels(env, bitmap, &amp;pixels)) &lt; 0) {
           LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret);
       }
       LOGE(
               "Grabbed the pixels*******************************************************");

       i = 0;
       while ((i == 0) &amp;&amp; (av_read_frame(pFormatCtx, &amp;packet) >= 0)) {
           if (packet.stream_index == videoStream) {
               avcodec_decode_video2(pCodecCtx, pFrame, &amp;frameFinished, &amp;packet);

               if (frameFinished) {
                   LOGE("packet pts %llu", packet.pts);
                   // This is much different than the tutorial, sws_scale
                   // replaces img_convert, but it&#39;s not a complete drop in.
                   // This version keeps the image the same size but swaps to
                   // RGB24 format, which works perfect for PPM output.
                   int target_width = 320;
                   int target_height = 240;
                   img_convert_ctx = sws_getContext(pCodecCtx->width,
                           pCodecCtx->height, pCodecCtx->pix_fmt, target_width,
                           target_height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL,
                           NULL);
                   if (img_convert_ctx == NULL) {
                       LOGE("could not initialize conversion context\n");
                       return;
                   }
                   sws_scale(img_convert_ctx,
                           (const uint8_t* const *) pFrame->data, pFrame->linesize,
                           0, pCodecCtx->height, pFrameRGB->data,
                           pFrameRGB->linesize);

                   // save_frame(pFrameRGB, target_width, target_height, i);
                   fill_bitmap(&amp;info, pixels, pFrameRGB);
                   i = 1;
               }
           }
           av_free_packet(&amp;packet);
       }

       AndroidBitmap_unlockPixels(env, bitmap);
    }

    int seek_frame(int tsms) {
       int64_t frame;

       frame = av_rescale(tsms, pFormatCtx->streams[videoStream]->time_base.den,
               pFormatCtx->streams[videoStream]->time_base.num);
       frame /= 1000;

       if (avformat_seek_file(pFormatCtx, videoStream, 0, frame, frame,
               AVSEEK_FLAG_FRAME) &lt; 0) {
           return 0;
       }

       avcodec_flush_buffers(pCodecCtx);

       return 1;
    }

    Log Trace

    0): &lt;6>AUO_TOUCH: ts_irqHandler: before disable_irq()
    D/PrintK  (   57): &lt;6>AUO_TOUCH: ts_irqWorkHandler: P1(313,750),P2(0,0)
    D/PrintK  (    0): &lt;6>AUO_TOUCH: ts_irqHandler: before disable_irq()
    D/PrintK  (   57): &lt;6>AUO_TOUCH: ts_irqWorkHandler: P1(0,0),P2(0,0)
    E/FFMPEGSample( 2882): Checked on the bitmap*************************************************
    E/FFMPEGSample( 2882): Grabbed the pixels*******************************************************
    E/FFMPEGSample( 2882): packet pts 0
    F/PrintK  ( 2882): &lt;2>Exception!!! bs.ffmpegsample: unhandled page fault (11) at 0x0000000c, code 0x017
    F/PrintK  ( 2882): &lt;2>Exception!!! bs.ffmpegsample: unhandled page fault (11) at 0x0000000c, code 0x017
    I/DEBUG   (   86): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    F/DEBUG   (   86): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    I/DEBUG   (   86): Build fingerprint: &#39;dell/streak/streak/8x50:2.2.2/FRG83G/eng.cmbuild.20110317.163900:user/release-keys&#39;
    I/DEBUG   (   86): Exception!!! pid: 2882, tid: 2882  >>> com.churnlabs.ffmpegsample &lt;&lt;&lt;
    F/DEBUG   (   86): Exception!!! pid: 2882, tid: 2882  >>> com.churnlabs.ffmpegsample &lt;&lt;&lt;
    I/DEBUG   (   86): signal 11 (SIGSEGV), fault addr 0000000c
    F/DEBUG   (   86): signal 11 (SIGSEGV), fault addr 0000000c
    I/DEBUG   (   86):  r0 00000070  r1 00000000  r2 0024fca8  r3 afd42328
    F/DEBUG   (   86):  r0 00000070  r1 00000000  r2 0024fca8  r3 afd42328
    I/DEBUG   (   86):  r4 00000000  r5 00000000  r6 0000062c  r7 0000a000
    F/DEBUG   (   86):  r4 00000000  r5 00000000  r6 0000062c  r7 0000a000
    I/DEBUG   (   86):  r8 be9794f0  r9 428ab9d8  10 00000003  fp be979830
    F/DEBUG   (   86):  r8 be9794f0  r9 428ab9d8  10 00000003  fp be979830
    I/DEBUG   (   86):  ip ffffff90  sp be979448  lr afd0c633  pc afd0c320  cpsr 80000030
    F/DEBUG   (   86):  ip ffffff90  sp be979448  lr afd0c633  pc afd0c320  cpsr 80000030
    I/DEBUG   (   86):  d0  6472656767756265  d1  0000000000000000
    I/DEBUG   (   86):  d2  0000000000000000  d3  0000000044480000
    I/DEBUG   (   86):  d4  8000000000000000  d5  000000003f800000
    I/DEBUG   (   86):  d6  0000000000000000  d7  4448000043f00000
    I/DEBUG   (   86):  d8  0000000000000000  d9  0000000000000000
    I/DEBUG   (   86):  d10 0000000000000000  d11 0000000000000000
    I/DEBUG   (   86):  d12 0000000000000000  d13 0000000000000000
    I/DEBUG   (   86):  d14 0000000000000000  d15 0000000000000000
    I/DEBUG   (   86):  d16 0000000000000000  d17 0000000000000000
    I/DEBUG   (   86):  d18 0000000000000000  d19 0000000000000000
    I/DEBUG   (   86):  d20 3ff0000000000000  d21 8000000000000000
    I/DEBUG   (   86):  d22 0000000000000000  d23 0000000500010004
    I/DEBUG   (   86):  d24 0101010101010101  d25 0000000000000000
    I/DEBUG   (   86):  d26 0000000000000000  d27 0000000000000000
    I/DEBUG   (   86):  d28 0000000000000000  d29 3ff0000000000000
    I/DEBUG   (   86):  d30 0000000000000000  d31 3ff0000000000000
    I/DEBUG   (   86):  scr 80000012
    I/DEBUG   (   86):
    I/DEBUG   (   86):          #00  pc 0000c320  /system/lib/libc.so
    F/DEBUG   (   86):          #00  pc 0000c320  /system/lib/libc.so
    I/DEBUG   (   86):          #01  pc 0000c62e  /system/lib/libc.so
    F/DEBUG   (   86):          #01  pc 0000c62e  /system/lib/libc.so
    I/DEBUG   (   86):          #02  pc 0000cd3e  /system/lib/libc.so
    F/DEBUG   (   86):          #02  pc 0000cd3e  /system/lib/libc.so
    I/DEBUG   (   86):          #03  pc 0002d2c4  /system/lib/libskia.so
    F/DEBUG   (   86):          #03  pc 0002d2c4  /system/lib/libskia.so
    I/DEBUG   (   86):          #04  pc 000693ec  /system/lib/libskia.so
    F/DEBUG   (   86):          #04  pc 000693ec  /system/lib/libskia.so
    I/DEBUG   (   86):          #05  pc 00064d70  /system/lib/libskia.so
    F/DEBUG   (   86):          #05  pc 00064d70  /system/lib/libskia.so
    I/DEBUG   (   86):          #06  pc 0004dea8  /system/lib/libandroid_runtime.so
    F/DEBUG   (   86):          #06  pc 0004dea8  /system/lib/libandroid_runtime.so
    I/DEBUG   (   86):          #07  pc 00016df4  /system/lib/libdvm.so
    F/DEBUG   (   86):          #07  pc 00016df4  /system/lib/libdvm.so
    I/DEBUG   (   86):          #08  pc 00042904  /system/lib/libdvm.so
    F/DEBUG   (   86):          #08  pc 00042904  /system/lib/libdvm.so
    I/DEBUG   (   86):          #09  pc 0001bd58  /system/lib/libdvm.so
    F/DEBUG   (   86):          #09  pc 0001bd58  /system/lib/libdvm.so
    I/DEBUG   (   86):          #10  pc 00022550  /system/lib/libdvm.so
    F/DEBUG   (   86):          #10  pc 00022550  /system/lib/libdvm.so
    I/DEBUG   (   86):          #11  pc 000213f0  /system/lib/libdvm.so
    F/DEBUG   (   86):          #11  pc 000213f0  /system/lib/libdvm.so
    I/DEBUG   (   86):          #12  pc 00058c4a  /system/lib/libdvm.so
    F/DEBUG   (   86):          #12  pc 00058c4a  /system/lib/libdvm.so
    I/DEBUG   (   86):          #13  pc 00060e72  /system/lib/libdvm.so
    F/DEBUG   (   86):          #13  pc 00060e72  /system/lib/libdvm.so
    I/DEBUG   (   86):          #14  pc 0001bd58  /system/lib/libdvm.so
    F/DEBUG   (   86):          #14  pc 0001bd58  /system/lib/libdvm.so
    I/DEBUG   (   86):          #15  pc 00022550  /system/lib/libdvm.so
    F/DEBUG   (   86):          #15  pc 00022550  /system/lib/libdvm.so
    I/DEBUG   (   86):          #16  pc 000213f0  /system/lib/libdvm.so
    F/DEBUG   (   86):          #16  pc 000213f0  /system/lib/libdvm.so
    I/DEBUG   (   86):          #17  pc 00058a90  /system/lib/libdvm.so
    F/DEBUG   (   86):          #17  pc 00058a90  /system/lib/libdvm.so
    I/DEBUG   (   86):          #18  pc 0004525e  /system/lib/libdvm.so
    F/DEBUG   (   86):          #18  pc 0004525e  /system/lib/libdvm.so
    I/DEBUG   (   86):          #19  pc 0002e574  /system/lib/libandroid_runtime.so
    F/DEBUG   (   86):          #19  pc 0002e574  /system/lib/libandroid_runtime.so
    I/DEBUG   (   86):          #20  pc 0002f5f6  /system/lib/libandroid_runtime.so
    F/DEBUG   (   86):          #20  pc 0002f5f6  /system/lib/libandroid_runtime.so
    I/DEBUG   (   86):          #21  pc 00008ca8  /system/bin/app_process
    F/DEBUG   (   86):          #21  pc 00008ca8  /system/bin/app_process
    I/DEBUG   (   86):          #22  pc 0000d3d0  /system/lib/libc.so
    F/DEBUG   (   86):          #22  pc 0000d3d0  /system/lib/libc.so
    I/DEBUG   (   86):
    I/DEBUG   (   86): code around pc:
    I/DEBUG   (   86): afd0c300 19d94f56 42ba690f 80a4f0c0 94001814
    I/DEBUG   (   86): afd0c310 f08042a2 68d1809f 42916994 6895d00e
    I/DEBUG   (   86): afd0c320 429668ee 8096f040 4296688e 8092f040
    I/DEBUG   (   86): afd0c330 bf2442bd 608d60e9 e08bd21b b1116951
    I/DEBUG   (   86): afd0c340 0514f102 6911e007 f102b191 e0020510
    I/DEBUG   (   86):
    I/DEBUG   (   86): code around lr:
    I/DEBUG   (   86): afd0c610 60f11008 f8c1608e 4e31c00c f10319a1
    I/DEBUG   (   86): afd0c620 608a0608 e04b614d b1b2684a f7ff4628
    I/DEBUG   (   86): afd0c630 e00ffe23 0f41f115 f04fbf88 d80c35ff
    I/DEBUG   (   86): afd0c640 350b4927 0507f025 68431860 4628b12b
    I/DEBUG   (   86): afd0c650 fc1cf7ff 28004606 4e21d132 689119a2
    I/DEBUG   (   86):
    I/DEBUG   (   86): stack:
    I/DEBUG   (   86):     be979408  000001e0  
    I/DEBUG   (   86):     be97940c  be979494  [stack]
    I/DEBUG   (   86):     be979410  be979438  [stack]
    I/DEBUG   (   86):     be979414  be979478  [stack]
    I/DEBUG   (   86):     be979418  0012f484  [heap]
    I/DEBUG   (   86):     be97941c  be979428  [stack]
    I/DEBUG   (   86):     be979420  00000000  
    I/DEBUG   (   86):     be979424  ab163cec  /system/lib/libskia.so
    I/DEBUG   (   86):     be979428  3f800000  
    I/DEBUG   (   86):     be97942c  80000000  /system/lib/libicudata.so
    I/DEBUG   (   86):     be979430  00000000  
    I/DEBUG   (   86):     be979434  80000000  /system/lib/libicudata.so
    I/DEBUG   (   86):     be979438  3f800000  
    I/DEBUG   (   86):     be97943c  00000000  
    I/DEBUG   (   86):     be979440  df002777  
    I/DEBUG   (   86):     be979444  e3a070ad  
    I/DEBUG   (   86): #00 be979448  0024fd18  [heap]
    I/DEBUG   (   86):     be97944c  afd4372c  /system/lib/libc.so
    I/DEBUG   (   86):     be979450  000000c5  
    I/DEBUG   (   86):     be979454  afd42328  /system/lib/libc.so
    I/DEBUG   (   86):     be979458  00000070  
    I/DEBUG   (   86):     be97945c  0000062c  
    I/DEBUG   (   86):     be979460  00000003  
    I/DEBUG   (   86):     be979464  afd0c633  /system/lib/libc.so
    I/DEBUG   (   86): #01 be979468  be9794c8  [stack]
    I/DEBUG   (   86):     be97946c  00000000  
    I/DEBUG   (   86):     be979470  002576bc  [heap]
    I/DEBUG   (   86):     be979474  ab163d2c  /system/lib/libskia.so
    I/DEBUG   (   86):     be979478  00000000  
    I/DEBUG   (   86):     be97947c  00000000  
    I/DEBUG   (   86):     be979480  44480000  /system/framework/framework-res.apk
    I/DEBUG   (   86):     be979484  00000068  
    I/DEBUG   (   86):     be979488  00000002  
    I/DEBUG   (   86):     be97948c  00000068  
    I/DEBUG   (   86):     be979490  00000003  
    I/DEBUG   (   86):     be979494  afd0cd41  /system/lib/libc.so
    E/Parcel  (  841): Reading a NULL string not supported here.

    Can any plz suggest me where I'm doing wrong.