コード例 #1
0
ファイル: check_flv.c プロジェクト: GarfieldLinux/flvmeta
END_TEST

START_TEST(test_uint24_be_to_uint32) {
    uint24_be ile;
    uint32 ibe;
    
    ile.b[2] = 0x33;
    ile.b[1] = 0x22;
    ile.b[0] = 0x11;
    ibe = uint24_be_to_uint32(ile);
    fail_if(ibe != 0x00112233);
}
コード例 #2
0
ファイル: check_flv.c プロジェクト: GarfieldLinux/flvmeta
END_TEST

START_TEST(test_flv_tag_set_timestamp_extended) {
    flv_tag tag;
    uint32 val;

    flv_tag_set_timestamp(&tag, 0x44332211);
    val = uint24_be_to_uint32(tag.timestamp);
    fail_if(val != 0x00332211,
        "expected 0x00332211, got 0x%X", val);
    fail_if(tag.timestamp_extended != 0x44,
        "expected 0x44, got 0x%hhX", tag.timestamp_extended);
}
コード例 #3
0
ファイル: check_flv.c プロジェクト: GarfieldLinux/flvmeta
END_TEST

START_TEST(test_flv_tag_set_timestamp_short) {
    flv_tag tag;
    uint32 val;

    flv_tag_set_timestamp(&tag, 0x00112233);
    val = uint24_be_to_uint32(tag.timestamp);
    fail_if(val != 0x00112233,
        "expected 0x00112233, got 0x%X", val);
    fail_if(tag.timestamp_extended != 0x00,
        "expected 0x00, got 0x%hhX", tag.timestamp_extended);
}
コード例 #4
0
ファイル: dump_json.c プロジェクト: noirotm/flvmeta
static int json_on_video_tag(flv_tag * tag, flv_video_tag vt, flv_parser * parser) {
    json_emitter * je;
    je = (json_emitter*)parser->user_data;

    json_emit_object_key_z(je, "videoData");
    json_emit_object_start(je);
    json_emit_object_key_z(je, "codecID");
    json_emit_string_z(je, dump_string_get_video_codec(vt));
    json_emit_object_key_z(je, "frameType");
    json_emit_string_z(je, dump_string_get_video_frame_type(vt));

    /* if AVC, detect frame type and composition time */
    if (flv_video_tag_codec_id(vt) == FLV_VIDEO_TAG_CODEC_AVC) {
        flv_avc_packet_type type;

        /* packet type */
        if (flv_read_tag_body(parser->stream, &type, sizeof(flv_avc_packet_type)) < sizeof(flv_avc_packet_type)) {
            return ERROR_INVALID_TAG;
        }

        json_emit_object_key_z(je, "AVCData");

        json_emit_object_start(je);
        json_emit_object_key_z(je, "packetType");
        json_emit_string_z(je, dump_string_get_avc_packet_type(type));

        /* composition time */
        if (type == FLV_AVC_PACKET_TYPE_NALU) {
            uint24_be composition_time;

            if (flv_read_tag_body(parser->stream, &composition_time, sizeof(uint24_be)) < sizeof(uint24_be)) {
                return ERROR_INVALID_TAG;
            }

            json_emit_object_key_z(je, "compositionTimeOffset");
            json_emit_integer(je, uint24_be_to_uint32(composition_time));
        }

        json_emit_object_end(je);
    }

    json_emit_object_end(je);

    return OK;
}