custom pipeline on android

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

custom pipeline on android

Dani MR
Hi everyone,
I am trying to play a custom pipeline able to play mp4 files on android. So my first step has been checking that this pipeline works correctly by using gst-launch-1.0 in the terminal (ubuntu14.04):

gst-launch-1.0 souphttpsrc location=http://192.168.0.10/videos/test.mp4 ! qtdemux name=demux demux. ! queue ! aacparse ! faad ! autoaudiosink demux. ! queue ! h264parse ! avdec_h264 ! autovideosink
My next step has been using the tutorial5 example for android project. And the modifications that I have made are the ones I show here:

- Adding more GstElements in the struct CustomData:
typedef struct _CustomData {
    jobject app;                  /* Application instance, used to call its methods. A global reference is kept. */
    GstElement *pipeline, *src, *demux, *audio_q, *video_q,
            *aacparse, *h264parse, *faad, *avdec_h264,
            *audioconvert, *videoconvert, *audiosink, *videosink;         /* The running pipeline */
    GMainContext *context;        /* GLib context used to run the main loop */
    GMainLoop *main_loop;         /* GLib main loop */
    [...]
} CustomData;
- Adding a function in order to add dynamically pads:
static void dynamic_addpad(GstElement *src, GstPad *new_pad, CustomData *data) {
    char* pad_name = gst_pad_get_name(new_pad);
    g_print(" In dynamic ADDING PAD %s\n", pad_name);

    if (g_str_has_prefix(pad_name,"audio")) {
        GstPad *audiodemuxsink = gst_element_get_static_pad(data->audio_q,"sink");
        gst_pad_link(new_pad,audiodemuxsink );
        g_print ("Sink pad link: '%s'\n", pad_name);
    }
    else if (g_str_has_prefix(pad_name,"video")) {
        GstPad *videodemuxsink = gst_element_get_static_pad(data->video_q,"sink");
        gst_pad_link(new_pad,videodemuxsink );
        g_print ("Sink pad link: '%s'\n", pad_name);
    }
}
- In the static void *app_function (void *userdata) I have commented the instruction:
data->pipeline = gst_parse_launch("playbin", &error);
And this is what I have written instead of:
/* Build pipeline */
data->pipeline = gst_pipeline_new ("pipeline");
data->src = gst_element_factory_make ("souphttpsrc", "src");
data->demux = gst_element_factory_make ("qtdemux", "qtdemux");
data->video_q = gst_element_factory_make("queue2", "queue-video");
data->h264parse = gst_element_factory_make ("h264parse", "h264-parse");
data->avdec_h264 = gst_element_factory_make ("avdec_h264", "h264dec");
data->videoconvert = gst_element_factory_make("videoconvert", "videoconvert");
data->videosink = gst_element_factory_make ("autovideosink", "autovideosink");
data->audio_q = gst_element_factory_make ("queue2", "queue_audio");
data->aacparse = gst_element_factory_make ("aacparse", "aacparse");
data->faad = gst_element_factory_make ("faad", "faad");
data->audioconvert = gst_element_factory_make("audioconvert", "audioconvert");
data->audiosink = gst_element_factory_make ("autoaudiosink", "autoaudiosink");

g_signal_connect (data->demux, "pad-added", G_CALLBACK (dynamic_addpad), &data);

gst_bin_add_many(GST_BIN(data->pipeline), data->src, data->demux, data->video_q, data->h264parse, data->avdec_h264, data->videoconvert, data->videosink, data->audio_q, data->aacparse, data->faad, data->audioconvert, data->audiosink, NULL);

gst_element_link(data->src, data->demux);
gst_element_link_many(data->video_q, data->h264parse, data->avdec_h264, data->videoconvert, data->videosink, NULL);
gst_element_link_many(data->audio_q, data->aacparse, data->faad, data->audioconvert, data->audiosink, NULL);
- Finally, inside the function void gst_native_set_uri (JNIEnv* env, jobject thiz, jstring uri) I have replaced the instruction:
g_object_set(data->pipeline, "uri", char_uri, NULL);
For:
g_object_set(G_OBJECT(data->src), "location", char_uri, NULL);
I know I am missing something because if I use the playbin element it successfully plays the file. But this way the result I obtain in the device is "Unfortunately, App has stopped." And the logcat is showing the next info:
04-15 11:30:23.952 21178-21178/? E/Zygote: MountEmulatedStorage()
04-15 11:30:23.952 21178-21178/? E/Zygote: v2
04-15 11:30:23.952 21178-21178/? I/libpersona: KNOX_SDCARD checking this for 10210
04-15 11:30:23.952 21178-21178/? I/libpersona: KNOX_SDCARD not a persona
04-15 11:30:23.952 21178-21178/? I/SELinux: Function: selinux_compare_spd_ram, SPD-policy is existed. and_ver=SEPF_SM-T800_5.0.2 ver=38
04-15 11:30:23.952 21178-21178/? I/SELinux: Function: selinux_compare_spd_ram , priority [2] , priority version is VE=SEPF_SM-T800_5.0.2-1_0039
04-15 11:30:23.957 21178-21178/? E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL
04-15 11:30:23.957 21178-21178/? I/art: Late-enabling -Xcheck:jni
04-15 11:30:23.992 21178-21178/? D/TimaKeyStoreProvider: TimaSignature is unavailable
04-15 11:30:23.992 21178-21178/? D/ActivityThread: Added TimaKeyStore provider
04-15 11:30:24.082 21178-21178/com.sample.app W/ResourceType: Failure getting entry for 0x01080ac1 (t=7 e=2753) (error -75)
04-15 11:30:24.127 21178-21178/com.sample.app D/PhoneWindow: *FMB* installDecor mIsFloating : false
04-15 11:30:24.127 21178-21178/com.sample.app D/PhoneWindow: *FMB* installDecor flags : -2139029248
04-15 11:30:24.137 21178-21178/com.sample.app I/onCreate: INICIO--------------------------------------------------------
04-15 11:30:24.362 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/mpeg-L1
04-15 11:30:24.362 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/mpeg-L2
04-15 11:30:24.362 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/x-ms-wma
04-15 11:30:24.362 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/x-ima
04-15 11:30:24.367 21178-21178/com.sample.app W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
04-15 11:30:24.367 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/wvc1
04-15 11:30:24.367 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/x-ms-wmv
04-15 11:30:24.377 21178-21178/com.sample.app W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
04-15 11:30:24.377 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/wvc1
04-15 11:30:24.377 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/x-ms-wmv
04-15 11:30:24.377 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/x-ms-wmv7
04-15 11:30:24.382 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/x-ms-wmv8
04-15 11:30:24.382 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/sorenson
04-15 11:30:24.382 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/mp43
04-15 11:30:24.387 21178-21178/com.sample.app W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
04-15 11:30:24.397 21178-21178/com.sample.app I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
04-15 11:30:24.407 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/mpeg-L1
04-15 11:30:24.407 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/mpeg-L2
04-15 11:30:24.407 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/x-ms-wma
04-15 11:30:24.407 21178-21178/com.sample.app W/AudioCapabilities: Unsupported mime audio/x-ima
04-15 11:30:24.407 21178-21178/com.sample.app E/GStreamer+amc: 0:00:00.270971833 0xb397ff00 gstamc.c:1716:scan_codecs Decoder codec has unknown color formats, ignoring
04-15 11:30:24.407 21178-21178/com.sample.app W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
04-15 11:30:24.412 21178-21178/com.sample.app E/GStreamer+amc: 0:00:00.271627500 0xb397ff00 gstamc.c:1716:scan_codecs Decoder codec has unknown color formats, ignoring
04-15 11:30:24.412 21178-21178/com.sample.app E/GStreamer+amc: 0:00:00.272087542 0xb397ff00 gstamc.c:1716:scan_codecs Decoder codec has unknown color formats, ignoring
04-15 11:30:24.412 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/wvc1
04-15 11:30:24.412 21178-21178/com.sample.app E/GStreamer+amc: 0:00:00.272615958 0xb397ff00 gstamc.c:1716:scan_codecs Decoder codec has unknown color formats, ignoring
04-15 11:30:24.412 21178-21178/com.sample.app E/GStreamer+amc: 0:00:00.273042958 0xb397ff00 gstamc.c:1716:scan_codecs Decoder codec has unknown color formats, ignoring
04-15 11:30:24.412 21178-21178/com.sample.app W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
04-15 11:30:24.412 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/wvc1
04-15 11:30:24.412 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/x-ms-wmv
04-15 11:30:24.417 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/x-ms-wmv7
04-15 11:30:24.417 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/x-ms-wmv8
04-15 11:30:24.417 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/sorenson
04-15 11:30:24.417 21178-21178/com.sample.app W/VideoCapabilities: Unsupported mime video/mp43
04-15 11:30:24.417 21178-21178/com.sample.app W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
04-15 11:30:24.422 21178-21178/com.sample.app I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
04-15 11:30:24.437 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.297406250 0xb397ff00 gstamc.c:3447:gst_amc_codec_info_to_caps Unsupported mimetype 'audio/mpeg-L1'
04-15 11:30:24.437 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.298147667 0xb397ff00 gstamc.c:3447:gst_amc_codec_info_to_caps Unsupported mimetype 'audio/x-ms-wma'
04-15 11:30:24.437 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.298364167 0xb397ff00 gstamc.c:3447:gst_amc_codec_info_to_caps Unsupported mimetype 'audio/x-ima'
04-15 11:30:24.437 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.300607125 0xb397ff00 gstamc.c:3778:gst_amc_codec_info_to_caps Unsupported mimetype 'video/wvc1'
04-15 11:30:24.437 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.300711125 0xb397ff00 gstamc.c:3778:gst_amc_codec_info_to_caps Unsupported mimetype 'video/x-ms-wmv'
04-15 11:30:24.437 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.300979792 0xb397ff00 gstamc.c:3778:gst_amc_codec_info_to_caps Unsupported mimetype 'video/x-ms-wmv7'
04-15 11:30:24.437 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.301280250 0xb397ff00 gstamc.c:3778:gst_amc_codec_info_to_caps Unsupported mimetype 'video/x-ms-wmv8'
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.301639792 0xb397ff00 gstamc.c:3778:gst_amc_codec_info_to_caps Unsupported mimetype 'video/sorenson'
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.301927458 0xb397ff00 gstamc.c:3778:gst_amc_codec_info_to_caps Unsupported mimetype 'video/mp43'
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.302537750 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000011
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.302589250 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x00000010
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.302634083 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000013
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.302682000 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000789
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.302736833 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000012
04-15 11:30:24.442 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.302779750 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x0000000f
04-15 11:30:24.447 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.310212042 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000011
04-15 11:30:24.447 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.310283917 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x00000010
04-15 11:30:24.447 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.311032708 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000013
04-15 11:30:24.447 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.311095792 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000789
04-15 11:30:24.447 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.311188875 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000012
04-15 11:30:24.447 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.311235208 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x0000000f
04-15 11:30:24.452 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.312864625 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000011
04-15 11:30:24.452 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.312923208 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x00000010
04-15 11:30:24.452 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.312971750 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000013
04-15 11:30:24.452 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.313019875 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000789
04-15 11:30:24.452 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.313080333 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000012
04-15 11:30:24.452 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.313124667 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x0000000f
04-15 11:30:24.457 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.316907833 0xb397ff00 gstamc.c:3778:gst_amc_codec_info_to_caps Unsupported mimetype 'video/x-vnd.on2.vp9'
04-15 11:30:24.457 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.317210667 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000789
04-15 11:30:24.457 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.317606833 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000789
04-15 11:30:24.457 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.318413667 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000789
04-15 11:30:24.457 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.318858375 0xb397ff00 gstamc.c:3461:gst_amc_codec_info_to_caps Unknown color format 0x7f000789
04-15 11:30:24.457 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.319930542 0xb397ff00 gstamc.c:3447:gst_amc_codec_info_to_caps Unsupported mimetype 'audio/opus'
04-15 11:30:24.457 21178-21178/com.sample.app W/GStreamer+amc: 0:00:00.320162375 0xb397ff00 gstamc.c:3447:gst_amc_codec_info_to_caps Unsupported mimetype 'audio/gsm'
04-15 11:30:24.687 21178-21178/com.sample.app I/GStreamer: GStreamer initialization complete

04-15 11:30:24.737 21178-21178/com.sample.app I/GStreamer: Activity created with no saved state:
04-15 11:30:24.737 21178-21178/com.sample.app I/GStreamer:   playing:false position:0 duration: 0 uri: http://192.168.0.10/videos/test.mp4
04-15 11:30:24.742 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.601445625 0xb397ff00 src/main/jni/tutorial-5.c:461:gst_native_init Created CustomData at 0x9e30aa90
04-15 11:30:24.742 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.601510667 0xb397ff00 src/main/jni/tutorial-5.c:463:gst_native_init Created GlobalRef for app object at 0x100402
04-15 11:30:24.742 21178-21215/com.sample.app D/GStreamer+tutorial-5: 0:00:00.602217833 0x9e319720 src/main/jni/tutorial-5.c:359:app_function Creating pipeline in CustomData at 0x9e30aa90
04-15 11:30:24.752 21178-21216/com.sample.app D/OpenGLRenderer: Render dirty regions requested: true
04-15 11:30:24.752 21178-21178/com.sample.app D/Atlas: Validating map...
04-15 11:30:24.762 21178-21215/com.sample.app W/GLib+GLib-GObject: g_object_get_valist: object class 'GstPipeline' has no property named 'flags'
04-15 11:30:24.762 21178-21215/com.sample.app W/GLib+GLib-GObject: g_object_set_valist: object class 'GstPipeline' has no property named 'flags'
04-15 11:30:24.762 21178-21215/com.sample.app W/libOpenSLES: Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
04-15 11:30:24.767 21178-21178/com.sample.app D/PhoneWindow: *FMB* isFloatingMenuEnabled mFloatingMenuBtn : null
04-15 11:30:24.767 21178-21178/com.sample.app D/PhoneWindow: *FMB* isFloatingMenuEnabled return false
04-15 11:30:24.767 21178-21178/com.sample.app I/GStreamer: onMeasure called with 320x240
04-15 11:30:24.767 21178-21178/com.sample.app I/GStreamer: onMeasure called with 320x240
04-15 11:30:24.777 21178-21215/com.sample.app D/GStreamer+tutorial-5: 0:00:00.639624833 0x9e319720 src/main/jni/tutorial-5.c:431:app_function Entering main loop... (CustomData:0x9e30aa90)
04-15 11:30:24.777 21178-21215/com.sample.app D/GStreamer+tutorial-5: 0:00:00.639861000 0x9e319720 src/main/jni/tutorial-5.c:94:attach_current_thread Attaching thread 0x9e319720
04-15 11:30:24.782 21178-21215/com.sample.app D/GStreamer+tutorial-5: 0:00:00.641679875 0x9e319720 src/main/jni/tutorial-5.c:128:set_ui_message Setting message to: State changed to READY
04-15 11:30:24.787 21178-21216/com.sample.app I/OpenGLRenderer: Initialized EGL, version 1.4
04-15 11:30:24.802 21178-21216/com.sample.app I/OpenGLRenderer: HWUI protection enabled for context ,  &this =0x9e522088 ,&mEglDisplay = 1 , &mEglConfig = -1638665292
04-15 11:30:24.812 21178-21216/com.sample.app D/OpenGLRenderer: Get maximum texture size. GL_MAX_TEXTURE_SIZE is 8192
04-15 11:30:24.812 21178-21216/com.sample.app D/OpenGLRenderer: Enabling debug mode 0
04-15 11:30:24.827 21178-21178/com.sample.app I/GStreamer: onMeasure called with 320x240
04-15 11:30:24.827 21178-21178/com.sample.app I/GStreamer: onMeasure called with 320x240
04-15 11:30:24.832 21178-21178/com.sample.app D/GStreamer: Surface created: Surface(name=null)/@0x3b4e8b3c
04-15 11:30:24.832 21178-21178/com.sample.app D/GStreamer: Surface changed to format 4 width 1810 height 1357
04-15 11:30:24.832 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.696318750 0xb397ff00 src/main/jni/tutorial-5.c:552:gst_native_surface_init Received surface 0xbe916ac0 (native window 0x9e72f008)
04-15 11:30:24.832 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.696378083 0xb397ff00 src/main/jni/tutorial-5.c:94:attach_current_thread Attaching thread 0xb397ff00
04-15 11:30:24.837 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.696501458 0xb397ff00 src/main/jni/tutorial-5.c:335:check_initialization_complete Initialization complete, notifying application. native_window:0x9e72f008 main_loop:0x9e42d380
04-15 11:30:24.837 21178-21178/com.sample.app W/GLib+GLib-GObject: invalid cast from 'GstPipeline' to 'GstVideoOverlay'
04-15 11:30:24.837 21178-21178/com.sample.app E/GLib: gst_video_overlay_set_window_handle: assertion 'GST_IS_VIDEO_OVERLAY (overlay)' failed
04-15 11:30:24.837 21178-21178/com.sample.app I/GStreamer: GStreamer initialized:
04-15 11:30:24.837 21178-21178/com.sample.app I/GStreamer:   playing:true position:0 uri: http://192.168.0.10/videos/test.mp4
04-15 11:30:24.837 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.696692250 0xb397ff00 src/main/jni/tutorial-5.c:488:gst_native_set_uri Setting URI to http://192.168.0.10/videos/test.mp4
04-15 11:30:24.837 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.697475250 0xb397ff00 src/main/jni/tutorial-5.c:524:gst_native_set_position Scheduling seek to 0:00:00.000000000 for later
04-15 11:30:24.837 21178-21178/com.sample.app D/GStreamer+tutorial-5: 0:00:00.697532208 0xb397ff00 src/main/jni/tutorial-5.c:502:gst_native_play Setting state to PLAYING
04-15 11:30:24.857 21178-21178/com.sample.app W/GLib+GLib-Net: couldn't load TLS file database: Failed to open file '/data/data/com.sample.app/files/ssl/certs/ca-certificates.crt': No such file or directory
04-15 11:30:24.902 21178-21230/com.sample.app W/GStreamer+qtdemux: 0:00:00.763496960 0x9e318400 qtdemux.c:5791:gst_qtdemux_process_adapter:<qtdemux> Unknown fourcc while parsing header : free
04-15 11:30:24.932 21178-21178/com.sample.app I/GStreamer: onMeasure called with 320x240
04-15 11:30:24.932 21178-21178/com.sample.app I/GStreamer: onMeasure called with 320x240
04-15 11:30:24.937 21178-21178/com.sample.app I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@950b23f time:6247694
04-15 11:30:24.982 21178-21230/com.sample.app W/GStreamer+qtdemux: 0:00:00.842990751 0x9e318400 qtdemux.c:7953:qtdemux_parse_segments:<qtdemux> streaming; discarding edit list segments
04-15 11:30:24.982 21178-21230/com.sample.app W/GStreamer+qtdemux: 0:00:00.846336751 0x9e318400 qtdemux.c:7953:qtdemux_parse_segments:<qtdemux> streaming; discarding edit list segments
04-15 11:30:24.987 21178-21230/com.sample.app I/GLib+stdout:  In dynamic ADDING PAD video_0
04-15 11:30:24.987 21178-21230/com.sample.app A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x1 in tid 21230 (src:src)
Thanks for your help,

Dani

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: custom pipeline on android

Sebastian Dröge-3
On Fr, 2016-04-15 at 11:35 +0200, Dani wrote:
> Hi everyone, 
> I am trying to play a custom pipeline able to play mp4 files on android. So my first step has been checking that this pipeline works correctly by using gst-launch-1.0 in the terminal (ubuntu14.04):
>
> gst-launch-1.0 souphttpsrc location=http://192.168.0.10/videos/test.mp4 ! qtdemux name=demux demux. ! queue ! aacparse ! faad ! autoaudiosink demux. ! queue ! h264parse ! avdec_h264 ! autovideosink
> My next step has been using the tutorial5 example for android project. And the modifications that I have made are the ones I show here:
>
> [...]
> 04-15 11:30:24.987 21178-21230/com.sample.app I/GLib+stdout:  In dynamic ADDING PAD video_0
> 04-15 11:30:24.987 21178-21230/com.sample.app A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x1 in tid 21230 (src:src)

Run this in a native debugger (e.g. gdb) and see where exactly it
crashes and why.

Judging from your code, the problem could be here:
  g_signal_connect (data->demux, "pad-added", G_CALLBACK (dynamic_addpad), &data);

You pass a pointer to your data pointer in there, and then later use it
just like a normal pointer in the callback. That's not going to work
well, especially as &data is going to be an invalid reference on the
stack after the function where you connect the signal has returned.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (968 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: custom pipeline on android

Dani MR
Thanks for your suggestions, I have just used gdb for debugging and I am quite confident it is related to dynamically linking pads.
This is the log and the info I am getting through gdb (+attached screenshot):
DEVICE SHELL COMMAND: cat /data/local/tmp/start_lldb_server.sh | run-as com.sample.app sh -c 'cat > /data/data/com.sample.app/lldb/bin/start_lldb_server.sh; chmod 700 /data/data/com.sample.app/lldb/bin/start_lldb_server.sh'
Starting LLDB server: run-as com.sample.app /data/data/com.sample.app/lldb/bin/start_lldb_server.sh /data/data/com.sample.app/lldb /data/data/com.sample.app/lldb/tmp/platform-1460975640887.sock "lldb process:gdb-remote packets"
Now Launching Native Debug Session
Debugger attached to process 27496
Signal: SIGSEGV (signal SIGSEGV: invalid address (fault address: 0x37ea6cf7))




In the logcat I am still having the same messages as in the first post. Is there any other possible way to pass the pointer without this reference problem?

Thanks in advance

Dani

El 18/04/16 a las 09:15, Sebastian Dröge escribió:
On Fr, 2016-04-15 at 11:35 +0200, Dani wrote:
Hi everyone, 
I am trying to play a custom pipeline able to play mp4 files on android. So my first step has been checking that this pipeline works correctly by using gst-launch-1.0 in the terminal (ubuntu14.04):

gst-launch-1.0 souphttpsrc location=http://192.168.0.10/videos/test.mp4 ! qtdemux name=demux demux. ! queue ! aacparse ! faad ! autoaudiosink demux. ! queue ! h264parse ! avdec_h264 ! autovideosink
My next step has been using the tutorial5 example for android project. And the modifications that I have made are the ones I show here:

[...]
04-15 11:30:24.987 21178-21230/com.sample.app I/GLib+stdout:  In dynamic ADDING PAD video_0
04-15 11:30:24.987 21178-21230/com.sample.app A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x1 in tid 21230 (src:src)
Run this in a native debugger (e.g. gdb) and see where exactly it
crashes and why.

Judging from your code, the problem could be here:
  g_signal_connect (data->demux, "pad-added", G_CALLBACK (dynamic_addpad), &data);

You pass a pointer to your data pointer in there, and then later use it
just like a normal pointer in the callback. That's not going to work
well, especially as &data is going to be an invalid reference on the
stack after the function where you connect the signal has returned.



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: custom pipeline on android

Sebastian Dröge-3
On Mo, 2016-04-18 at 12:46 +0200, Dani wrote:
> Thanks for your suggestions, I have just used gdb for debugging and I
> am quite confident it is related to dynamically linking pads.

Did you see my comment about how you connect to the signal in the
previous mail? That is at least one problem, if there are still
problems after that we can take another look.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (968 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: custom pipeline on android

Dani MR
Thanks for your answer,
after fixing the problem you told me now the app is not stopping. What happens is that it is still unable to play the file and the logcat shows the next messages:

04-18 13:26:08.350 24062-24154/com.sample.app I/GLib+stdout:  In dynamic ADDING PAD video_0065
04-18 13:26:08.360 24062-24154/com.sample.app I/GLib+stdout: Sink pad link: 'video_0065'
04-18 13:26:08.360 24062-24154/com.sample.app I/GLib+stdout:  In dynamic ADDING PAD audio_0066
04-18 13:26:08.360 24062-24154/com.sample.app I/GLib+stdout: Sink pad link: 'audio_0066'
04-18 13:26:08.615 24062-24150/com.sample.app W/GStreamer+GST_PADS: 0:00:02.844365459 0x9e23e180 gstpad.c:3990:gst_pad_peer_query:<faad:src> could not send sticky events
04-18 13:26:08.615 24062-24151/com.sample.app W/GStreamer+libav: 0:00:02.845349917 0x9e23e1b0 gstavcodecmap.c:2431:gst_ffmpeg_caps_to_pixfmt ignoring insane framerate 1/0
04-18 13:26:08.615 24062-24154/com.sample.app W/GStreamer+basesrc: 0:00:02.845565209 0x9e23e260 gstbasesrc.c:2943:gst_base_src_loop:<http-src> error: Internal data flow error.
04-18 13:26:08.615 24062-24154/com.sample.app W/GStreamer+basesrc: 0:00:02.845637417 0x9e23e260 gstbasesrc.c:2943:gst_base_src_loop:<http-src> error: streaming task paused, reason not-negotiated (-4)
04-18 13:26:08.615 24062-24110/com.sample.app D/GStreamer+tutorial-5: 0:00:02.846137917 0x9e23f520 src/main/jni/tutorial-5.c:132:set_ui_message Setting message to: Error received from element http-src: Internal data flow error.
So it seems there is a problem with the aac decoder. I already posted a bug of the aac decoder of android (https://bugzilla.gnome.org/show_bug.cgi?id=765050), but I do not know if this time is also directly related to the same issue.

Thanks for your replies,

Dani

El 18/04/16 a las 13:31, Sebastian Dröge escribió:
On Mo, 2016-04-18 at 12:46 +0200, Dani wrote:
Thanks for your suggestions, I have just used gdb for debugging and I
am quite confident it is related to dynamically linking pads.
Did you see my comment about how you connect to the signal in the
previous mail? That is at least one problem, if there are still
problems after that we can take another look.



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: custom pipeline on android

Sebastian Dröge-3
On Mo, 2016-04-18 at 13:36 +0200, Dani wrote:

> Thanks for your answer, 
> after fixing the problem you told me now the app is not stopping. What happens is that it is still unable to play the file and the logcat shows the next messages:
>
> 04-18 13:26:08.615 24062-24154/com.sample.app W/GStreamer+basesrc:
> 0:00:02.845565209 0x9e23e260
> gstbasesrc.c:2943:gst_base_src_loop: error: Internal data
> flow error.
> 04-18 13:26:08.615 24062-24154/com.sample.app W/GStreamer+basesrc:
> 0:00:02.845637417 0x9e23e260
> gstbasesrc.c:2943:gst_base_src_loop: error: streaming task
> paused, reason not-negotiated (-4)
> 04-18 13:26:08.615 24062-24110/com.sample.app D/GStreamer+tutorial-5:
> 0:00:02.846137917 0x9e23f520 src/main/jni/tutorial-
> 5.c:132:set_ui_message Setting message to: Error received from
> element http-src: Internal data flow error.
You'll have to get a full debug log. Most likely you're missing a
converter between decoders and sink, or are linking a decoder/parser
that doesn't actually support the stream.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (968 bytes) Download Attachment